Hoşgeldin Ziyaretçi



Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
PHP Ders Arşiv / 20 Adet Yazılı Anlatımlar
#1
Php ile Yönlendirme Dersi
[b]Web yazılımda kaçınılmaz ihtiyaçlardan biri de yönlendirme. Bir işlemin olumlu veya olumsuz sonucunda, işleme göre bir sayfaya yönlendirme yapmamız gerekebilir.


Direk yönlendirmedeye bakalım

[/b]




Kod:

Kod:
header("Location: http://destek.mbtr.net/member.php?action=profile&uid=18");





Php betiğimiz bu satıra ulaştığında sayfayı direk benim profilime adresine yönlendirecektir.



Eğer bir süre sonra yönlendirme olmasını istersek benzer bi şekilde





Kod:

Kod:
header("Refresh:2; url=http://destek.mbtr.net/");




[b]Yukarıdaki betikte ise Refresh:2; ifadesinde saniye cinsinden ne zaman yönlendirmenin gerçekleşeceğini belirttik.[/b]

PHP'de Array ( Dize ) Kullanımı

Dize, birden fazla değişken barındıran veri grubudur. Bu değişkenler aynı türdedir ve tek bir ana değişken içerisinde bulunurlar.

Örneğin 4 değişkenli bir alfasayısal yapımız var:

PHP Kod:
Kod:
[align=center][/align]
[align=center]<?php[/align]
[align=center]   $model1 = "Mercedes";[/align]
[align=center]   $model2 = "Opel";[/align]
[align=center]   $model3 = "BMW";[/align]
[align=center]   $model4 = "Peugeot";[/align]
[align=center]?>[/align] [font=Ubuntu, sans-serif][/font]



Şanslıyız ki bu modeller 4 tane, ya 400 tane olsaydı? Tek tek yazacak mıydık? Elbette hayır, çünkü dize kullanarak işimizi hızlandırabiliriz.


Sayısal Dizeler


Gruba dahil her değişkenin bir numara ile belirtildiği yapıdır. 2 şekilde yapılır.

PHP'nin Kod Yapısı ve Değişkenler

[b]Basit PHP Kod Yapısı
PHP Scriptleri <?php ile başlar ve ?> ile biter. PHP Kodlarımız bu aralığa yazılır. Ayrıca çoğu sunucu <? ile başlamasına da destek verir. Buna karşın <?php olarak başlatmaya kendinizi alıştırmanız faydanıza olur.

[/b]
PHP Kod:

Kod:
<html>
<body>
<?php
   echo "Merhaba dünya!";
?>
</body>[font=Ubuntu, sans-serif][/font]
</html> [font=Ubuntu, sans-serif][/font]




Yukarıdaki örnekte görüldüğü üzere her php komut satırı noktalı virgül (Wink ile biter.

PHP'de yazı yazdırmanın iki basit kodu vardır: echo ve print, yukarıda echo ile yazı yazdırdık.

Açıklamaların Yazılımı
PHP Kodlarımız arasına satır ya da uzun bölümler halinde açıklama eklememiz mümkün. Bunlar php tarafından görülmez ve bize kolaylık sağlar:



PHP Kod:

Kod:
<html>
<body>
<?php
   // Bu bir açıklama

   /* Bu da
      bir
      açıklama */
?>
</body>[font=Ubuntu, sans-serif][/font]
</html>[font=Ubuntu, sans-serif][/font]
    [font=Ubuntu, sans-serif][/font]







PHP Değişkenleri



PHP'de kullanacağımız sayısal değer, kelime, dize gibi değişkenler dolar işareti ($) ile başlar. A-Z, a-z, 0-9 ve _ karakterlerinden oluşabilir.


PHP Kod:

Kod:
<?php
   $degisken = "Kalem"; // alfasayısal (string)

   $ad_soyad = "Murat Eliçalışkan";

   $degisken_2 = 1984; // sayısal
?>





PHP'de bir değişken önceden tanımlanmadan kullanılır. Örneğin bir değişken belirlediğimizde, o bu değeri ilk kez alıyordur. Buna bağlı türü, yapısı vb değişkenlik gösterebilir.

Bu durumun istisnası DEFINE( tanım, değer ) komutudur. Böylelikle $ işareti ile başlamayan değişmez bir değer oluşturmuş oluruz:



PHP Kod:

Kod:
<?php
   define('PI', 3.14);

   echo PI; // 3.14 yazdırır.
?>


PHP Switch Kodu

[b]Switch Kodunun Kullanımı

Bir değişkene bağlı koşullu işlem yaparken IF, ELSEIF, ELSEIF ... şeklinde uzunca bir komut kullanmak hem zamanımızı alır, hem php derleyiciyi yorar. Bu gibi durumlarda Switch kodu işimizi kolaylaştırır.


[/b]
PHP Kod:

Kod:
<?php
   $secim = 3;

   switch( $secim )
   {
      case 1:
         echo "Benim sayım 1!";
         break;
      case 2:
         echo "Benim sayım 2!";
         break;
      case 3:
         echo "Benim sayım 3!";
         break;
      default:
         echo "Benim sayım 1, 2 veya 3 değil!";
   }
?>
    [font=Ubuntu, sans-serif][/font]






Yukarıdaki örnekte görüldüğü üzere $secim değişkeninin aldığı değere göre switch komutuyla işlem yapılmasını sağladık. Burada case 1:, değişkenin hangi değerde olması durumunda işlem yapacağını bize bildirir. break; ise switch'den çıkılması gerektiğini php ye anlatmamıza yarar. default: olarak belirtilen son satır ise hiçbir koşul sağlanmadığı takdirde yapılacak işi tanımlar.

Aşağıda başka bir örnekte string (alfasayısal) bir değişkenle Switch kullandık:




PHP Kod:

Kod:
<?php
   $kimin = "Ali";

   switch( $kimin )
   {
      case "Ali":
         echo "Ali'nin";
         break;
      case "Hasan":
         echo "Hasan'ın";
         break;
      default:
         echo "Kimsenin değil!";
   }
?>


PHP Operatörleri

[b]PHP - Operatörler
[/b]




PHP Kod:

Kod:
$a = 1; 





Yukarıda 'a' değişkenine 1 değerini atadık.



Not : ' = ' işareti atama operatörüdür.



Php de bunun dışında en çok kullanılan operatörler ;





Op. Açıklama Sonuç

+ Toplama 1 + 2 = 3

- Çıkarma 2 - 1 = 1

* Çarpma 2 * 2 = 4

/ Bölme 4 / 2 = 2

% Kalan 10 / 3 = 1







Basit örnekler vermek gerekirse ;







PHP Kod:

Kod:
[align=center]<?$a = 10;[/align]
[align=center]$b = 2;[/align]
[align=center]$c = 3;[/align]
[align=center]echo $a + $b;[/align]
[align=center]echo "<br>"; // Burada <br> html kodu olarak bir alt satira geç anlamindadir. // '//' ise daha önce gördügümüz gibi açiklama satiri açar.[/align]
[align=center]echo $a - $b;[/align]
[align=center]echo "<br>";[/align]
[align=center]echo $a * $b;[/align]
[align=center]echo "<br>";[/align]
[align=center]echo $a %$c;?>[/align][font=Ubuntu, sans-serif][/font]
[align=center][/align] [font=Ubuntu, sans-serif][/font]







Yukarıdaki satırların çıktısı ;



Alıntı: Nickli Kullanıcıdan Alıntı:12
8
20
1

Php de bu operatörler dışında birleşik atama operatöleride vardır. Aşağıda bu operatölerin bir listesini görebilirsiniz.





Op. Örnek Anlamı

+= $a += 2 $a = $a + 2

-= $a -= 2 $a = $a - 2

*= $a *= 2 $a = $a * 2

/= $a /= 2 $a = $a / 2

%= $a %= 2 $a = $a % 2

.= $a .= "Ornek" $a = $a"Ornek"







Bu birleşik atamalara örnek vermek gerekirse;







PHP Kod:

Kod:
[align=center]<?$a = 2;[/align]
[align=center]echo $a +=2;[/align]
[align=center]echo "<br>";[/align]
[align=center]$b = "kelime1 ";[/align]
[align=center]$b .= "kelime2 ";[/align]
[align=center]$b .= "kelime3 ";[/align]
[align=center]echo $b;?>[/align][font=Ubuntu, sans-serif][/font]
[align=center][/align] [font=Ubuntu, sans-serif][/font]









Yukarıdaki satırların çıktısı;



Alıntı: Nickli Kullanıcıdan Alıntı:4
kelime1 kelime2 kelime3



Not : Birleşik atama işaretlerini kısaca anlatmak gerekirse herhangi bir değişkenin değerini alıp belirten bir değer ile işle olarak tanımlayabiliriz.



Bu konuyu kolayca anladığınızı düşündüğüm için fazla uzatma gereği duymuyorum gelişmiş kodlar yazdıkça vede buradaki örnekleri iyice anladığınız zaman zaten uzatmama gerekçemi anlıyacaksınız.



Php de işlenmesi gereken bir diğer operatörler ise arttırma ve azaltma operaötleridir.



$a++ : $a değişkeninin değerini 1 arttırır.



$--a : $a değişkeninin değerini 1 azaltır.



Basit bir örnek vermek gerekirse;





PHP Kod:

Kod:
[align=center][/align]
[align=center]<?$a = 2;[/align]
[align=center]$a++;[/align]
[align=center]echo $a;[/align]
[align=center]echo "<br>";[/align]
[align=center]$a = 2;[/align]
[align=center]echo --$a;?>[/align][font=Ubuntu, sans-serif][/font]
[align=center][/align] [font=Ubuntu, sans-serif][/font]









Yukarıdaki satırların çıktısı. Aşağıdaki gibidir.



Alıntı: Nickli Kullanıcıdan Alıntı:2
1

Bunların dışında php de karşılaştırma operatörleri vardır.



Op. Açıklama Örnek

== Eşitse $a == 2

!= Eşit Değilse $a != 2

=== Aynı İse $a === 2

< Küçükse $a < 2

> Büyükse $a > 2

<= Küçük veya Eşitse $a <= 2

>= Büyük veya Eşitse $a >=2

|| Veya doğru || yanlış = doğru

or Veya doğru || yanlış = doğru

&& Ve doğru && yanlış = yanlış

and Ve doğru and yanlış = yanlış

Xor Şartlı Veya ( Sadece sol veya sağ ) doğru Xor yanlış = doğru

! Değer yoksa !doğru = doğru







Fakat bu operatörler için şuan örnek vermek önemli bir konuyuda içine alıcağından bu operatörleri bahsi geçen önemli konuda ele almak daha doğru olacaktır. Php bölümünün başındada yazdığım gibi Php dili belli bir düzende ve herkesin anlıyabileceği bir şekilde ilerlemek zorundadır. Sabrınız ve ilginiz için teşekkür ederim.



Şimdi kısa bir özet yapalım.



1 - Php dilinde bir değere atama yapmak için ' = ' atama operatörü kullanılır.



2 - Birleşik atama operatörleri uygulanan değişkenin değerini alarak ve yine uygulanan birleşik operatördeki işlemi uyguladıktan sonra sonucu işleyen ve çıkaran operatörlerdir.


3 - Php de matematik işlem operatörlerinin dışında ayrıca karşılaştırma operatörleri vardır bunlar sonuçları kontrol etmemizi vs.. leri sağlarlar.

enel Bakış
PHP'de alfasayısal yani içerisinde harf, sayı vb. barındıran değişkenlerin kullanımından ve bunlara özel işaret ve fonksiyonlardan bahsedelim.

1. Bir alfasayısal değeri belirtirken tırnak işareti kullanabildiğimiz gibi (') üst ayıraç da kullanabiliriz.


PHP Kod:
Kod:
<?php
   $kelime = "Hatasız Kul Olmaz.";

   $kelime = 'Hatasız Kul Olmaz.'; // Yukarıdakinin aynısı

   echo $kelime;
?>
    [font=Ubuntu, sans-serif][/font]



Bu kodu çalıştırsaydık, sunucu bize aşağıdakini gönderecekti:


Alıntı: Nickli Kullanıcıdan Alıntı:Hatasız Kul Olmaz.


2.Tırnak işareti kullandığımız string değerlerde değişkenleri bunların içerisinde kullanabilmekteyiz.


PHP Kod:
Kod:
<?php
   $adet = 7;

   $kelime = "$adet kedi beni $adet!";

   echo $kelime;
?>
    [font=Ubuntu, sans-serif][/font]



Bu kodu çalıştırsaydık, sunucu bize aşağıdakini gönderecekti:


Alıntı: Nickli Kullanıcıdan Alıntı:7 kedi beni 7!


3.Alfasayısal değeri belirtirken tırnak ve üst ayraç kullanımına dikkat etmek gerekir. Aşağıda hata verecek ve vermeyecek kullanımlar bir arada gösterilmiştir:


PHP Kod:
Kod:
<?php
   $kelime = "İstanbul'dan kız mı alınır?"; // Doğru

   $kelime = 'İstanbul'dan kız mı alınır?'; // Yanlış, doğrusu:
   $kelime = 'İstanbul\'dan kız mı alınır?'; // Doğru

   $kelime = "İstanbul'dan "kız mı" alınır?"; // Yanlış, doğrusu:
   $kelime = "İstanbul'dan \"kız mı\" alınır?";; // Doğru
?>
    [font=Ubuntu, sans-serif][/font]



Görüldüğü üzere bir değişken hangi karakterle başladıysa, içerisinde yer alan bu tarz karakterler kaçış işareti ile (\) belirtilmelidir. Aksi takdirde hata verecektir.

Kelimeleri Birleştirme (.)

Sadece string değişkenlerde geçerli olarak değişkenler arası nokta işareti kullanarak kelimeler birleştirilebilir.


PHP Kod:
Kod:
<?php
   $kelime1 = "Hatasız Kul Olmaz.";
   $kelime2 = "Hatamla Sev Beni.";

   echo $kelime1 . " " . $kelime2;
?>
    [font=Ubuntu, sans-serif][/font]



Alıntı: Nickli Kullanıcıdan Alıntı:Hatasız Kul Olmaz. Hatamla Sev Beni.


strlen() Fonksiyonu
Değişkenin karakter uzunluğunu (harf sayısı) verir.


PHP Kod:
Kod:
<?php
   $kelime = "Neden Ben?";

   echo strlen( $kelime );
?>
    [font=Ubuntu, sans-serif][/font]



Bu kodu çalıştırsaydık, sunucu bize aşağıdakini gönderecekti:


Alıntı: Nickli Kullanıcıdan Alıntı:10


strpos() Fonksiyonu

Aranılan bir kelime ya da harfin değişkenin 1. harfine ne kadar uzaklıkta olduğunu gösterir (1. harf 0 sayılır).


PHP Kod:
Kod:
<?php
   $kelime = "Beni Bul!";
           // 012345678 olarak görülür

   echo strpos( $kelime, "Bul" );
?>
    [font=Ubuntu, sans-serif][/font]



Bu kodu çalıştırsaydık, sunucu bize aşağıdakini gönderecekti:


Alıntı: Nickli Kullanıcıdan Alıntı:5

PHP'nin Kurulumu

[b]Neye İhtiyacınız Var?
[/b]




Eğer web siteniz zaten PHP destekliyorsa bu kısmı geçebilirsiniz. Bir sunucunun php desteğini anlamak için bir not defteri açın ve aşağıdakileri yazıp uzantısını php olarak kaydedin (örneğin index.php) ve sunucunuzda bu sayfayı açmayı deneyin:

PHP Kod:

Kod:
<?php
   phpinfo();
?>
    [font=Ubuntu, sans-serif][/font]







Eğer tablolar içinde php özellikleri sıralanan bir sayfa açıldıysa PHP desteği vardır, eğer yoksa aşağıdaki adımları takip ederek olmasını sağlayabilirsiniz:



Yüklemeler
Apache yüklemek için buraya tıklayın.

MySQL yüklemek için buraya tıklayın.

PHP yüklemek için buraya tıklayın.




Evde bilgisayarınızda LOCALHOST (yerel sunucu) kurmak ve php yi çalışır hale getirmek için tüm kurulumları gerçekleştirin. Ayrıca XAMMP ve EasyPHP kurarak da kolaylıkla bahsedeceğimiz kodları çalıştırabilir ve denemeler yapabilirsiniz.


[b]UYARI: Windows 7'de PHP çalıştırmak için ZIP kurulumu yapmalısınız. EXE sorun çıkarabilir.[/b]

PHP nedir?


PHP ile artık oturup her türlü işlevselliği sahip programlar yazabilirsiniz; yani PHP başlı başına uygulama alanları bulabilecek düzeye ulaşmıştır. Başka bir deyişle PHP ile oyun programından tutun veritabanı yönetimine kadar hemen her türlü programı yazabilirsiniz. Bizi bu kitapçıkta ilgilendiren tarafıyla PHP, Web Sunucu'ya bir takım işler yaptırmak için program yazma dilidir. Tıpkı CGI/Perl veya ASP ya da ColdFusion, Java (Javascript değil!) gibi! PHP kodları, oluşturacağımız HTML sayfalarında HTML

etiketlerinin arasında kendi özel ayracı içinde yazılır:

PHP Kod:
Kod:
<html>

<?PHP

echo ("Merhaba Dünya!");

?>
[font=Ubuntu, sans-serif][/font]
</html> [font=Ubuntu, sans-serif][/font]



İster kişisel bilgisayarımızda, ister gerçek Internet ortamında olsun, bir Web Sunucu, ziyaretçinin (Internet istemci programının, Browser'ın) talep ettiği dosya adının uzatması olarak ".PHP,"  ".PHP2," ".PHP3," veya ".PHP4" görünce, kendine kendine, "Yine bana iş çıktı!" diye düşünür! Çünkü Web Server, uzatması ".htm" veya ".html" olan bir dosyayı, kendi sabit disklerinden birinde bulur ve zahmetsizce, ziyaretçinin bilgisayarına gönderir. Fakat, ".asp," .pl," ".cfm" gibi, ".PHP" uzatması, Web Sunucu'ya bu sayfayı olduğu gibi, alıp ziyaretçinin Browser'ına göndermek yerine, önce PHP yorumlayıcıyı çağırarak, ona teslim etmesi gerektiğini bildirir. PHP yorumlayıcısı (yani Windows ortamında PHP.exe veya 4'ncü sürümle gelen PHP4isapi.dll, Unix ve türevlerinde çalıştırılabilir PHP dosyası), kendisine teslim edilen bu belgede önce "<?PHP" ve "?>" ayraçları arasındaki PHP kodlarını seçerek alır ve gereği ne ise onu yapar. Bu ayraçların içinde kalan kodlar, bizim yapılmasını istediğimiz işlemin komutlarıdır. HTML ile yetinmeyip, PHP kullanmamızın sebebi, bu komutların HTML'in yapayacağı şeyleri yapmasıdır.

HTML'in yapamayacağı şeylerin başında, Web Sunucusu'nda yapılacak işler vardır. Sözgelimi HTML etiketlerini kullanarak, Web Sunucusu'ndaki bir veritabanı dosyasını açıp, içindeki verileri okuyamayız. HTML yoluyla Web Sunucusu'nun sabit disklerindeki düz yazı dosyalarını da okuyamayız ve bu disklere dosya yazamayız. HTML etiketleri ile Web ziyaretçimizden bilgi edinebilir ve bunları Sunucu'ya yollayabiliriz; ama o kadar! Bu bilgileri işe yarar şekle sokmak için bize Server'da çalışan bir program gerekir. Server'da çalışan program, EXE ve DLL veya JSP (Java Server Pages)  gibi bir "gerçek program"; veya Perl, ASP ve PHP gibi Script diliyle yazılmış bir program olabilir. (Gerçek programları yazanlar, tabiî, sizin Script diliyle yazılmış programlara "program" demenize çok kızarlar! Ama bu Script pogramlarının program olmasını hiç engellemez.)

Ne diyorduk? Web Sunucu, ".PHP" uzatmasını görünce telaşa kapılır, bu dosyayı PHP yorumlayıcısına verir ve o da "<?PHP" ve "?>" ayraçları içindeki kodları icra eder, demiştik. Bu icraatın sonunda ortaya çıkan ürün eğer ziyaretçiye gönderilecekse, HTML etiketleri içinde gönderilir; yani ziyaretçi asla PHP kodlarını göremez. Kimi zaman PHP programımızın çalışması sonucu ortaya ziyaretçiye gönderilecek bir ürün çıkmaz; elde edilen sonuç ya başka bir programa (örneğin elektronik ileti gönderen bir Sendmail progamına) hammadde olarak verilir, ya da Server'da sabit diske yazılır. Fakat her durumda, Web ziyaretçimiz bizim PHP kodlarımızı göremez; bu Web sayfalarımızda PHP kodu kullanmamız halinde, sayfalarımızın Browser tarafından tanınması veya tanınmaması gibi bir durumun ortaya çıkmaması demektir. Ziyaretçi ne tür Browser kullanırsa kullansın, kendisine Sunucu'dan daima saf HTML kodu geleceği için, sayfalarımızı rahatça görebilecektir. Tabiî bir nokta var: Sayfalarımızda herhangi bir Browser'ın arızalı yorumladığı veya hiç yorumlayamadığı HTML etiketleri bulunabilir; ya da söz gelimi ziyaretçiye giden HTML'in içinde Browser'da çalıştırılacak olan başka Script kodları bulunabilir; ve Browser bu kodları anlamayabilir. Örneğin, HTML sayfanızda VBScript kodları kullanmış iseniz, Netscape ile sitenize bağlanmış olan kişiler bu kodun oluşturmasını istediğiniz etkiyi göremeyeceklerdir; çünkü Netscape VBScript anlamaz! PHP ile yazacağınız Web programlarının (eski deyimiyle "sayfaların") oluşturacağı HTML belgesinin Browser türleri ve sürümleri ile uyarlılığını sağlamak yine Web programcısı olarak sizin sorumluluğunuzdadır.

Özetlersek, PHP bir CGI programlama dilidir; bu dille, Web Sunucusu ile Web ziyaretçisi arasındaki buluşma noktası olan CGI'da bilgi alışverişi yapılabilir; Sunucu'da bulunan başka programlar çalıştırılabilir ve böylece Web sayfalarımıza HTML'in sınırlamalarının ötesinde hareket ve ziyaretçi ile etkileşme olanağı kazandırılabilir.


PHP If-Else-Elseif Karar Yapıları

Koşullara Dayalı İşlemleri Gerçekleştirme
Kod yazarken sıklıkla kullanılan koşul belirteçleri, duruma bağlı olarak işlemler yapmamıza olanak sağlar. Genel yapıları 3 şekildedir:

1. if ( koşul ) - koşul gerçekleşirse komut uygulanır.

2. if ( koşul ) else ... - koşul gerçekleşmez ise ELSE'de belirtilenler uygulanır.

3. if ( koşul ) elseif (koşul ) else ... - İlk koşul gerçekleşmezse alternatif koşullar elseif ile belirtilebilir.

Örnekler
Aşağıdaki örnekte $islem 4 değerini alır, koşul cümlesi olarak yazdığımızda php bize bu yargının doğru olduğunu echo da belirttiğimiz cümle ile gösterir:


PHP Kod:
Kod:
<?php
   $islem = 2 + 2;

   if ( $islem == 4 ) {
      echo "2 + 2, 4 eder!";
   }
?>



NOT: Koşul gerçekleşirse yapılacaklar { ... } şeklinde belirtilir. Ancak yapılacak iş tek satırlık ise direkt altına yazarak işlem yaptırtabiliriz:


PHP Kod:
Kod:
<?php
   $islem = 2 + 2;

   if ( $islem == 4 )
      echo "2 + 2, 4 eder!";
?>
  [font=Ubuntu, sans-serif][/font]



Aşağıdaki örnekte koşul gerçekleşmezse ELSE ile php'ye ne yapacağını söylüyoruz:


PHP Kod:
Kod:
<?php
   $benim_sayim = 5;

   if ( $benim_sayim == 4 )
      echo "Benim sayım 4!";
   else
      echo "Benim sayım 4'ten farklı!";
?>
    [font=Ubuntu, sans-serif][/font]



Ve son olarak araya bir koşul daha alarak yukarıda 3. yapıda bahsettiğimiz ELSEIF kullanımına bakıyoruz:


PHP Kod:
Kod:
<?php
   $sayi_tut = 6;

   if ( $sayi_tut < 5 )
      echo "Sayım 5'den küçük!";
   elseif ( $sayi_tut > 5 )
      echo "Sayım 5'den büyük!";
   else
      echo "Sayım 5!";
?>

PHP Sabitler (Constants) Kullanımı

PHP ile değişken tanımlayıp, değişkenlere atadığımız değerleri rahatlıkla kullanabiliyoruz. Fakat, değişkenler script içinde sonradan rahatlıkla değiştirebilen yapılardır. Scriptin yapımına başlayıp sonradan değiştirelemeyen bir değer kullanmak istersek sabitler (constants) işimize yarayacaktır. Bu sabitleri PHP’nin define() fonksiyonu ile tanımlayabilmekteyiz.

Constant tanımlamak;
Kod:
Kod:
< ?PHP[font=Ubuntu, sans-serif][/font]
define('KULLANICIADI', 'admin');[font=Ubuntu, sans-serif][/font]
define('SIFRE', 123456789);[font=Ubuntu, sans-serif][/font]
?>


Sabitleri tanımladıktan sonra, kullanımına baktığımız zaman, değişken kullanımından tek fark başına $ işareti koyulmamasıdır. $ işareti olmadan sadece sabit ismi yazılmaktadır.
Kod:
Kod:
< ?PHP[font=Ubuntu, sans-serif][/font]
echo '<strong>Tanımlamış olduğumuz kullanıcı adı: '.KULLANICIADI;[font=Ubuntu, sans-serif][/font]
echo '<br />';[font=Ubuntu, sans-serif][/font]
echo '<strong>Tanımlamış olduğumuz şifre:</strong> '.SIFRE;[font=Ubuntu, sans-serif][/font]
?>

SQL Injection Güvenlik

[b]SQL injection denen method ile, veritabanınıza yetkisiz işlem yaptırılabilir. Bu yetkisiz işlemler ile, veritabanınızdaki bir tablo tamamen boşaltılabilir, veriler silinebilir veya veri eklenebilir, daha da kötüsü yazdığınız script bir yönetim paneline sahipse buraya izinsiz girişler olabilir.
[/b]




SQL injection methodları farklılık gösterebilir, URL ile yapılabilir(GET)sitedeki formlar ile yapılabilir(POST). Temel mantığı ise, sizin yazdığınız SQL sorgularını safdışı bırakarak çalıştırılmak istenen sorguların çalıştırılmasıdır. Burada bu methodları tabi ki anlatmayacağım, bunun yerine PHP’de SQL injection’a karşı nasıl önlemler alabileceğimizi anlatacağım.



Basit bir SQL sorgumuz olsun, url ile gelen id’ye sahip makaleyi veritabanından seçelim.





PHP Kod:


Kod:

Kod:
$query = mysql_query("SELECT * FROM makaleler WHERE id=$_GET['id']", $baglanti); 







Bu şekilde kullandığınızda, çok büyük bir tehlike içerisindesiniz demektir. Bu sorguyu güvenli hale getirmek için sprintf fonksiyonunu da kullanacağız(bunu sadece daha düzenli bir kod yazımı için kullanıyoruz) ve sorgumuzu aşağıdaki hale getireceğiz:





PHP Kod:


Kod:

Kod:
$id = $_GET['id'];[font=Ubuntu, sans-serif][/font]
    $id = get_magic_quotes_gpc() ? stripslashes($id) : $id;[font=Ubuntu, sans-serif][/font]
    $id= function_exists("mysql_real_escape_string") ? mysql_real_escape_string($id) : mysql_escape_string($id);[font=Ubuntu, sans-serif][/font]
    $query = mysql_query(sprintf("SELECT * FROM makaleler WHERE id='%s'", $id), $baglanti); 







Sorgumuzu buhale getirerek kimsenin SQL’imize dokunmamasını sağlamış oluyoruz.



Bir örnek daha vermek gerekirse;





PHP Kod:


Kod:

Kod:
$query = mysql_query("INSERT INTO makaleler(baslik, icerik, yazan) VALUES ($_POST['baslik'], $_POST['icerik'], $_POST['yazan'])", $baglanti); 







yerine;





PHP Kod:


Kod:

Kod:
function guvenliyap($value) { // kullandığımız kodları fonksiyon haline getirelim[font=Ubuntu, sans-serif][/font]
$value = get_magic_quotes_gpc() ? stripslashes($value) : $value;[font=Ubuntu, sans-serif][/font]
$value= function_exists("mysql_real_escape_string") ? mysql_real_escape_string($value) : mysql_escape_string($value);[font=Ubuntu, sans-serif][/font]
return $value;[font=Ubuntu, sans-serif][/font]
}[font=Ubuntu, sans-serif][/font]
[font=Ubuntu, sans-serif][/font]
$query = mysql_query(sprintf("INSERT INTO makaleler(baslik, icerik, yazan) VALUES ('%s', '%s', '%s')", guvenliyap($_POST['baslik']), guvenliyap($_POST['icerik']), guvenliyap($_POST['yazan'])), $baglanti); 







kullanarak güvenliğimizi sağlamış oluyoruz.


Kısacası, [b]URL veya POST ile gelen bütün verileri bir filtreden geçirerek, bu gelen verinin içinde bulunabilecek  işaretlerini \’ haline getiriyoruz. Böylece bu gelen verilerdeki zararlı işaretler, sorgumuzun içine karışmıyor ve SQL injection ile sitemize zarar vermek isteyen kişiler avuçlarını yalıyorlar. wink.gif[/b]

PHP İle Ekrana Yazı Yazdırma

Merhaba arkadaşialr,php iile ekrana yazı yazdırmayı anlatcam sizlere olabildiğince basit ve net bir şekilde anlattım herkes rahatlıkla yapabilir.





PHP ile ekrana yazdırmak için üç yöntem kullanılır.



1-echo

2-print

3-printf



Ancak bu yöntemlerin en çok kullanılanı echo komutudur. Yazımızda biz üç komut içinde örneklere yer vereceğiz.



1. echo Komutu ile ekrana yazdırma;





Kod:


Kod:

Kod:
<?php[font=Ubuntu, sans-serif][/font]
[font=Ubuntu, sans-serif][/font]
    echo "Deneme Ekranı";[font=Ubuntu, sans-serif][/font]
[font=Ubuntu, sans-serif][/font]
?>







2. print Komutu ile ekrana yazdırma;





Kod:


Kod:

Kod:
<?php[font=Ubuntu, sans-serif][/font]
[font=Ubuntu, sans-serif][/font]
    print "Deneme Ekranı";[font=Ubuntu, sans-serif][/font]
[font=Ubuntu, sans-serif][/font]
?>







3. printf Komutu ile ekrana yazdırma;





Kod:


Kod:

Kod:
<?php[font=Ubuntu, sans-serif][/font]
[font=Ubuntu, sans-serif][/font]
    printf ("Deneme Ekranı");[font=Ubuntu, sans-serif][/font]
[font=Ubuntu, sans-serif][/font]
?>









Komutlarda echo ve print komutu aynı şekilde yazılıyor ancak printf komutunda parantez kullanılıyor.


[b]Ancak her üç komuttada ekrana çıkacak olan yazı aynı şekilde çıkıyor.[/b]

PHP mysql_connect() Fonksiyonu


PHP'yi mükemmel yapan bir özelliği de veritabanı bağlantılarıdır.Şimdi sizlere mysql_connect() fonksiyonunu ve kullanımını anlatacağım.

mysql_connect() fonksiyonu veritabanına bağlanmamıza yarar.Bu fonksiyonu kullanabilmek için öncelikle bir mysql veritabanımızın olması gerekir.Bunun için de cpanelden yeni bir mysql veritabanı oluşturmalıyız.



mysql_connect() fonksiyonun kullanımı şu şekildedir :



PHP Kod:

Kod:
mysql_connect('hostadi', 'mysql_kullaniciadi', 'mysql_sifre'); 





Host adı bölümüne mysql hostun adını yazıcağız.Bunu da cPanel'de bulabilirsiniz.mysql kullanıcı adını ve şifresini veritabanını oluştururken şeçiyoruz.



Bu fonksiyon genelde bu şekilde kullanılmaz.Bir değişkene aktarılır.Çünkü bu fonksiyondan çıkan sonucu veritabanı seçmede ve/ya bu fonksiyonun doğru çalışmaması durumunda yapılacak işlemleri seçerken kullanırız.



Bu fonksiyonun bir de kardeşi var.Eğer bir PHP script inceleme fırsatınız olduysa veya bir script kurulumunda config.php düzenlerken mutlaka görmüşsünüzdür.Evet doğru mysql_select_db() bu fonksiyonu da diğer dersimizde inceleyeceğiz.Bir de bu fonksiyondaki parametler de değişken olarak kullanılabilir.install.php şeklinde bir kurulum scripti yazarken bunu kullanabilirsiniz.Veya daha kolay olması açısından config.php'de script kullanıcılarına değişkenleri değiştirme kolaylığı sağlayabilirsiniz.Buna da örnek verelim.



PHP Kod:

Kod:
<?php

$hostname="localhost";
$mysql_username="root";
$mysql_pw="";

$link = mysql_connect('$hostname', '$mysql_username', 'mysql_pw');
if (!$link) {
    die('Bağlantı Hatası: ' . mysql_error());
}
echo 'Başarıyla bağlandı';
mysql_close($link);
?>




Son bir not değişkenlere yazdığım değerler scripti localhost ta yazanlar için geçerlidir.Yani Easyphp gibi bir program ile kodluyorsanız bu değerlerin aynısını yapın.

PHP mysql_select_db() Fonksiyonu

u yazıda sizlere "mysql_select_db()" fonksiyonunu anlatacağım.Önceki konuda sizlere mysql_connect() fonksiyonun kardeşi olarak tanıtmıştım bu fonksiyonu.O yüzden bu fonksiyonu kullanmak için önce MySql bağlantısı gerçekleştirmeliyiz.Bu da mysql_connect() ile yapılıyor.



PHP Kod:

Kod:
<?php
$link = mysql_connect('hostadi', 'mysql_kullaniciadi', 'mysql_sifre');
if (!$link) {
    die('MySql Bağlantı Hatası : ' . mysql_error());
}
?>





Yukarıdaki kod ile MySql'e bağlandık.Şimdi hostun paneli aracığıyla yeni bir veritabanı oluşturalım.Veritabanına "veritabani" adını verdiğimizi varsayarsak veritabanına bağlanmak için şu kodu kullanmak yeterlidir.



PHP Kod:

Kod:
<?php
$vtsec = mysql_select_db('veritabani', $link);
if (!$db_selected) {
    die ('Veritabanı Bağlantı Hatası : ' . mysql_error());
}
?>





Bu kod ile yukarıdakini birleştirirsek ;



PHP Kod:

Kod:
// MySql Bağlantısı
$link = mysql_connect('hostadi', 'mysql_kullaniciadi', 'mysql_sifre');
if (!$link) {
    die('MySql Bağlantı Hatası : ' . mysql_error());
}
// Veritabanı Bağlantısı
$vtsec = mysql_select_db('veritabani', $link);
if (!$db_selected) {
    die ('Veritabanı Bağlantı Hatası : ' . mysql_error());
}
?>




Burada dikkat etmemiz gereken bir şey var.mysql_select_db() fonksiyonunda ikinci parametreye $link yazdık.Yani $link değişkenindeki MySql'in veritabanını seçtik.Başka bir MySql bağlantısı için başka bir değişken yazmamız yeterlidir.Ancak yazmazsak program hata vermez.En son tanımlanan MySql'e bağlanır.

PHP ile Beni Hatırla Yapmak

Merhaba bu dersimizde PHP kodları ile Beni Hatırla seçenek kutusu yapmayı öğreteceğim.Daha doğrusu direk kodları vereceğim.



PHP Kod:

Kod:
<?
$islem2=$_POST["islem2"];
// Burada eğer üyemiz doğru bilgiler ile giriş yapmış ise bilgilerini alıp session oluşturuyoruz ve Beni Hatırla seçeneğini seçili bırakıyoruz. Tabi paylaşacağım kodları siz kendi üye panelinize göre entegre etmelisiniz.
if (isset($_SESSION['uyeid'])){
$uyebilgisi=mysql_fetch_array(mysql_query("SELECT * FROM uyeler where uyeid='$uyeid'"));
$uyeismi=$uyebilgisi["uyead"];
if($islem2=="benikaydet"){
$benihatirlasec=$_POST["benihatirlasec"];
if($benihatirlasec=="1"){
$_SESSION["benihatirla"] = "1";
$_SESSION["ad2"] = "$ad";
}else{
$_SESSION["benihatirla"] = "";
$_SESSION["ad2"] = "";
}
}
if($benihatirla=="1"){
?>
<input type="checkbox" name="benihatirlasec" value="1" checked="checked" /> Beni hatırla[font=Ubuntu, sans-serif][/font]
<?
}else{
$_SESSION['ad2'] = null;
unset($_SESSION['ad2']);
$_SESSION['benihatirla'] = null;
unset($_SESSION['benihatirla']);
?>
<input type="checkbox" name="benihatirlasec" value="1" /> Beni hatırla[font=Ubuntu, sans-serif][/font]
<? } ?>


PHP ile Sayfa Şifreleme

Güvenlik amacıyla kullanıcı adı ve şifre girişli sayfalara ihtiyaç duyabiliriz. En basit haliyle aşağıdaki fonksiyonu kullanarak şifreli girişe sahip bir sayfa oluşturabiliriz.



PHP Kod:

Kod:
<?php
function SifreliGiris($kullanici,$sifre) {
    if(empty($_SERVER['PHP_AUTH_USER']) || empty($_SERVER['PHP_AUTH_PW']) || $_SERVER['PHP_AUTH_USER'] != "$kullanici" || $_SERVER['PHP_AUTH_PW'] != "$sifre") 
    {
        header('WWW-Authenticate: Basic realm="Lütfen kullanıcı adı ve şifreyi giriniz."');
        die(header('HTTP/1.0 401 Unauthorized'));
    }
}
        
//Giriş Bilgileri
$kullanici = 'mbtr';
$sifre = '1234';
        
//Fonksiyonu çalıştıralım
SifreliGiris($kullanici,$sifre);
?>


PHP ile Resim Genişlik ve Yükseklik Bilgilerini Öğrenme

İstediğimiz bir resmin genişlik (width) ve yükseklik (height) bilgilerini öğrenmek için getimagesize fonksiyonundan yararlanabiliriz.





Örnek bir kod bloğu yazalım;



PHP Kod:

Kod:
<?php
if($boyut = getimagesize("resim.jpg")) 
{
    echo "Genişlik: $boyut[0]<br />";
    echo "Yükseklik: $boyut[1]<br />";
}
else
{
    echo "Resim bulunamadı.";
}

?>


PHP Site Meta Bilgilerini Çekme
PHP4 ve PHP5′te bulunan get_meta_tags() fonksiyonu ile ise belirttiğimiz siteye ait belirli meta bilgilerini dizi oluşturacak şekilde çekebiliriz. Bu fonksiyonla sitenin keywords, description, author ve geo_position meta etiketlerini çekebiliriz.





Basit bir örnekle durumu göstermek gerekirse;



PHP Kod:

Kod:
<?php
$meta = get_meta_tags('http:/destek.mbtr.net/');

echo $meta['keywords']."<br>"; 
echo $meta['description']; 


?>


PHP Urlden Resim Yükleme Yapımı

Bu php dersimizde bir link olan resimi hostumuza kayıt etmeyi göreceğiz.Yani urlden resim yükleme yapacağız.Öncelikle mantığını anlatayım.







Verilen urleyi file_get_contents ile resmi oluşturan kaynak metni alıyoruz.Daha sonra aynı uzantıda kendi sitemizde bir dosya oluşturup bu aldığımız verileri file_put_contents ile içine yazıyoruz.Bu kadar basit.Kodlarımıza geçelim.



Kod:


Kod:

[code]<?php [font=U
Cevapla
Teşekkür verenler:
#2
Çok yararlı bir konu. Sabit
Cevapla
Teşekkür verenler:


Hızlı Menü:


Şu anda bu konuyu okuyanlar: 5 Ziyaretçi


10tl.net Destek Forumu -

Online Shopping App
Online Shopping - E-Commerce Platform
Online Shopping - E-Commerce Platform
Feinunze Schmuck Jewelery Online Shopping