Kod Dünyası

PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
PHP etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

12 Mart 2015 Perşembe

MySQL Bağlantısını Sağlamak ve Kesmek

mysql_connect( adres, kullanıcı, şifre ); - Bağlanmayı dener, başarılı olursa DOĞRU (true) değeri döndürür.

mysql_select_db( veritabanı_adı ); - İşlem yapmak üzere veritabanı seçer.

mysql_close(); - Bağlantıyı keser. Bunu yapmazsak bağlantı açık kalır, bu da ziyaretçisi yüksek bir sitede MySQL sunucusuna erişimde sıkıntıya yol açabilir.

<?php
   // Bağlantıyı sağlarız.
   $baglanti = mysql_connect( "mysql.sunucu.adresi", "user", "pass" );

   if ( !$baglanti )
 exit( "Bağlantı sağlanamadı." );

   // Bağlandıktan sonra işlem yapılacak DB adı: veritabanim.
   mysql_select_db( "veritabanim" );

   // Bağlantıyı kesiyoruz.
   mysql_close();
?>
   

MySQL Sorgusu Gerçekleştirmek

mysql_query( sorgu ); - Bir SQL komutunu çalıştırmamızı sağlar..

<?php
   mysql_query( "INSERT INTO tablo (isim, yas)
                 VALUES('Murat', 27);" );
?>
   

Veritabanı Bilgilerine Erişmek

mysql_fetch_array( sorgu ); - SQL sorgusuyla elde ettiğimiz verileri listeleme.

<?php
   $baglanti = mysql_connect( "localhost", "root", "pass" );
   mysql_select_db( "veritabanim" );

   $sorgu = mysql_query( "SELECT * FROM tablo
                          WHERE ad = 'Murat';" );

   while( $row = mysql_fetch_array( $sorgu ) ) {
      echo $row['ad'] . "'ın yaşı: " . $row['yas'];
   }

   mysql_close();
?>
   

10 Mart 2015 Salı

Bunun için mail() fonksiyonunu kullanırız.

Kullanım Şekli: mail( alıcı, başlık, mesaj, ayarlar );

<?php
   // Genel Ayarlar
   $alici = "herhangibiri@ornek.com";
   $baslik = "Merhaba!";
   $mesaj = "Uzun süredir yazmıyorsunuz, özledik sizi.";

   // Gönderen, diğer alıcılar, mail türü vb.
   $gonderen = "baskabiri@ornek.com";
   $bilgi = "From: $gonderen";

   mail( $alici, $baslik, $mesaj, $bilgi );
?>
   

9 Mart 2015 Pazartesi

Bir önceki konuda çerezlerin kullanıcı bilgisayarında saklandığını söylemiştik. Session olarak tabir edeceğimiz bu tür ise sunucuda saklanan kişisel verilerdir.

Bir php dosyasına oturum desteği vermek için o dosyanın başına session_start(); eklenmelidir.

Kullanım Şekli: $_SESSION['degisken'] = deger;

<?php
   session_start();

   $_SESSION['isim'] = "Murat";
?>
   

Bir Oturum Bilgisinin Varlığını Kontrol Etmek - isset()

Bir oturum bilgisi, sunucu tarafından işlenmeden geçerli değildir. Yani değer verilmemiş bir oturum bilgisine erişirsek hata çıkar. Bunu kontrol etmenin yolu isset() fonksiyonudur:

<?php
   session_start();

   if ( isset( $_SESSION['goruntuleme'] ) )
      $_SESSION['goruntuleme'] = $_SESSION['goruntuleme'] + 1;
   else
      $_SESSION['goruntuleme'] = 1;

   echo "Bu sayfa " . $_SESSION['goruntuleme'] . " kez
         görüntülendi.";
?>
   

Bir Oturum Bilgisini Silmek - unset()

Geçerli bir oturum bilgisini unset() fonksiyonu ile kaldırırız:

<?php

   unset( $_SESSION['goruntuleme'] );

?>
   

8 Mart 2015 Pazar

Çerezler, bir kullanıcıyı tanımak amacıyla sunucu tarafından oluşturulan bilgilerdir, bu bilgiler direkt olarak kullanıcının bilgisayarında saklanır, belli bir süre geçerlidir ve tarayıcıyla (browser) ilişkilendirilen bir yapıdır.

Kullanım Şekli: setcookie( isim, değer, geçerlilik_süresi );

<?php
   setcookie( "user", "Murat", time() + 3600 );
   // 1 saat geçerli
?>
   

NOT: 3600, saniye cinsinden süredir. 60 x 60 = 3600 den 1 saat bulunur.

Bir Çerez Değerini Elde Etmek

Sadece tanımlı bir tanesini elde etmek için:

<?php
   echo $_COOKIE['user']; // user adlı çerez
?>
   

Tamamını listeletmek için print_r() fonksiyonu ile:

<?php
   print_r( $_COOKIE ); // Kullanıcıya ait tüm veriler
?>
   

NOT: print_r( dize ) fonksiyonu bir dize içerisindeki tüm değerleri ekrana yazdırır. Tüm dize (array) tipi değişkenlerde kullanılabilir.

Bir Çerez Değerini Silmek

Geçerlilik süresini değiştirerek sileriz:

<?php
   setcookie( "user", "Murat", time() - 3600 );
   // 1 saatten fazla geçmiş olacaktır.
?>
   

7 Mart 2015 Cumartesi

fopen() ile Bir Dosya Açmak

Bu fonksiyon bir dosyanın içeriğine erişmek, dosya üzerinde işlem yapmak, veri eklemek için kullanılır.

Kullanım Şekli: fopen( dosya, özellik );

<?php
   $file = fopen( "Okubeni.txt", "r" );
?>
   

Özellik olarak nitelendirdiğimiz 2. parametre dosyanın okuma biçimidir.

r -> sadece okumak için
w -> sadece yazmak için
a -> dosya üzerine eklemek için

fopen() aynı zamanda mantıksal (bool) değer döndürür, bu değer DOĞRU (true) ise dosya açılması başarılı, YANLIŞ (false) ise dosya açılmasında hata ile karşılaşılmıştır.

<?php
   $file = fopen( "Okubeni.txt", "r" )
           or exit("Dosyaya erişilemiyor!");
?>
   

fclose() ile Açılmış Bir Dosyayı Kapatmak

<?php
   $file = fopen("test.txt","r"); // açarız

   // buraya kodlar gelecek

   fclose( $file ); // kapatırız
?>
   

feof( dosya ) ile Dosyanın Bittiği Kontrolü

Açtığımız bir dosyanın son satırında olup olmadığımızı bu değer ile öğrenebiliriz.

<?php
   if ( feof( $dosya ) )
      echo "Metin bitmiştir";
?>
   

Bir Dosyayı Satır Satır Okumak - fgets()

fgets() Fonksiyonu açtığımız dosyadan veri almamızda bize yardım eder. Bu veri tek satırlık bir veridir.

<?php
   $dosya = fopen( "Isimler.txt", "r" ) // Aç
            or exit( "Dosya bulumamadı." );

   while( !feof( $dosya ) ) // Dosya bitene kadar oku
      echo fgets( $dosya ) . "<br />";

   fclose( $dosya ); // Kapat
?>
   

6 Mart 2015 Cuma

Sunucu saatini PHP'de date( biçim, zaman ) fonksiyonu ile kullanırız. İlk parametre, tarih formatının nasıl olacağını bildirmemize yarar ve zorunludur.

d -> 01 - 31 arasında değer alan gün.
m -> 01 - 12 arasında değer alan ay.
Y -> XXXX şeklinde 4 haneli yıl değeri.
G -> 00 - 23 arasında değer alan saat değeri.
i -> 00 - 59 arasında değer alan dakika değeri.
s -> 00 - 59 arasında değer alan saniye değeri.

<?php
   echo date("d/m/Y G:i:s");
?>
   

İkinci parametre olan zamanı belirtmediğimiz için şu andaki zamanı dikkate alır ve aşağıdaki şekilde görünür:

25/07/2011 19:13:49
   

Tanımlı bir tarihi gösterirken ikinci parametreyi kullanmalıyız. PHP'de Unix saati gösterilir. Geçerli Unix saatini görmek için time() fonksiyonu kullanılabilir.

<?php

   echo time() . "<br />";
   // 1311610741 gösterir (Unix Zaman Dilimi)

   echo date("d/m/Y G:i:s", time());
   // Şu andaki tarih ve saati gösterir.

?>
   

Bir UNIX zaman dilimi tanımlamak için mktime() fonksiyonu kullanabiliriz. Örneğin geçerli güne 1 ekleyerek yarını yazdıralım:

<?php
   $yarin = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
   echo date("d/m/Y G:i:s", $yarin); // Yarın bu zamanı verir.
?>
   

5 Mart 2015 Perşembe

Bir kodu, belirttiğimiz şekillerde ve sayılarda yaptırtmak için for komutu bize yardım eder.

for( değişken, koşul, artış miktarı ) { ... } şeklinde kullanılır. Örneğin:

<?php
   for ( $i = 1; $i <= 5; $i++ ) {
      echo "Benim sayım $i!";
   }
?>
   

Yukarıda, FOR( ... ) içerisinde yazdığımız kodun anlamı: $i 1 dir, $i 5'e eşit ya da ondan küçük olduğu sürece $i'yi 1 arttır ve aynı işlemleri tekrar et. Aşağıdaki şekilde sonuç verir:

Benim sayım 1!
Benim sayım 2!
Benim sayım 3!
Benim sayım 4!
Benim sayım 5!
   

Foreach Döngüsü

Bir dize (array) içerisindeki tüm değerleri listelemek, onlar üzerinde işlem yapmak için bu komuttan yararlanabiliriz.

<?php
   $sayilar = array("Bir","Iki","Uc");

   foreach( $sayilar as $deger ) {
      echo $deger;
   }
?>
   

Aşağıdaki şekilde sonuç verir:

Bir
Iki
Uc
   

4 Mart 2015 Çarşamba

HTML ile hazırladığımız bir form PHP yardımıyla nasıl işlevsel hale getirilir? Bu başlıkta bunu öğreneceğiz.

Bir form yapısı şu şekildedir.

<html>
<body>

<form action="deneme.php" method="post">
Adınız: <input type=text" name="isim" />
Yaşınız: <input type=text" name="yas" />
<input type="submit" name="gonder" value="Gönder" />
</form>

</body>
</html>
   

Burada METHOD özelliği iki şekilde olabilir: "get" ve "post". GET verileri adres satırına ekleyerek gönderir. Örneğin deneme.php?ad=murat şeklinde olacaktır. POST metodu ise verileri aynı dosyaya adres satırına yansımadan gönderir. Yani yollanan dosya yine deneme.php adına olacaktır.

PHP bizler için form verilerini iki değişkende saklar. GET ile alınan verileri $_GET['nesne'], POST ile alınan verileri $_POST['nesne'] şeklinde. Burada nesne olarak belirtiğimiz HTML formunda INPUT'larda belirttiğimiz "name" özelliğindeki değerdir.

$_GET İşlevini Kullanmak

Bu şekilde gönderilen veriler adrese eklenirler. Yukarıdaki form method="get" olarak gönderilseydi, adresimiz deneme.php?ad=murat&yas=27 şeklinde olurdu. PHP ile bu verileri işlemek içinse $_GET['ad'] ve $_GET['yas'] nesnelerini kullanırdık.

NOT: Aşağıdaki örnekte isset() bir değişkenin tanımlı olup olmadığını kontrol etmemize yarar. Tanımlanmamış değişken kullanmak php de hata mesajları almanıza yol açar. isset() tanımlıysa TRUE değilse FALSE olarak döner.

<html>
<body>

<?php
   if ( isset( $_GET['ad'] ) && isset( $_GET['yas'] ) )
      echo $_GET['ad'] . ", " . $_GET['yas'] . " yaşındadır.";
?>

<form action="deneme.php" method="get">
Adınız: <input type=text" name="isim" />
Yaşınız: <input type=text" name="yas" />
<input type="submit" name="gonder" value="Gönder" />
</form>

</body>
</html>
   

$_POST İşlevini Kullanmak

Bu şekilde gönderilen veriler adrese eklenmez. Yukarıdaki form method="post" olarak gönderilseydi, adresimiz deneme.php?ad=murat&yas=27 şeklinde olurdu. PHP ile bu verileri işlemek içinse $_GET['ad'] ve $_GET['yas'] nesnelerini kullanırdık.

<html>
<body>

<?php
   if ( isset( $_POST['ad'] ) && isset( $_POST['yas'] ) )
      echo $_POST['ad'] . ", " . $_POST['yas'] . " yaşındadır.";
?>

<form action="deneme.php" method="post">
Adınız: <input type=text" name="isim" />
Yaşınız: <input type=text" name="yas" />
<input type="submit" name="gonder" value="Gönder" />
</form>

</body>
</html>
   

3 Mart 2015 Salı

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
   $model1 = "Mercedes";
   $model2 = "Opel";
   $model3 = "BMW";
   $model4 = "Peugeot";
?>
   

Ş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
   // 1. Yol
   $modeller = array("Mercedes","Opel","BMW","Peugeot");

   // 2. Yol
   $modeller[0] = "Mercedes";
   $modeller[1] = "Opel";
   $modeller[2] = "BMW";
   $modeller[3] = "Peugeot";
?>
   

Çağrışımsal Dizeler

Dizeleri çağırmak için kullandığımız sayıların yerini kelimeler alır.

<?php
   // 1. Yol
   $puanlar = array(
      "Ali" => 10,
      "Hasan" => 15,
      "Murat" => 22,
      "Ayse" => 32,
   );

   // 2. Yol
   $puanlar["Ali"] = 10;
   $puanlar["Hasan"] = 15;
   $puanlar["Murat"] = 22;
   $puanlar["Ayse"] = 32;

?>
   

Dize İçinde Dize (Çoklu Dizeler)

Bir arraylist içerisinde dizeler kullanabiliriz. Her bir dize için [] eklenir.

<?php

   $aileler = array(
      "Eliçalışkan" => array("Murat","Çiğdem","Esra"),
      "Keçecioğlu" => array("Yavuz","Mustafa")
   );

   echo $aileler["Eliçalışkan"][0] . ",
      Eliçalışkan ailesinin bir üyesidir.";

?>
   

2 Mart 2015 Pazartesi

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
   $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
   $islem = 2 + 2;

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

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

<?php
   $benim_sayim = 5;

   if ( $benim_sayim == 4 )
      echo "Benim sayım 4!";
   else
      echo "Benim sayım 4'ten farklı!";
?>
   

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

<?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!";
?>
   

1 Mart 2015 Pazar

Aritmetik İşlemler

OperatorAçıklama
+Toplama
-Çıkarma
*Çarpma
/Bölme
%Mod (bölümünden kalan)
++Arttırma (1 ekleme)
--Azaltma (1 eksiltme)


Görev İşlemleri

OperatorÖrnekAçıklama
=x = yEşitlik
+=x += yx, y ile toplamına eşit
-=x -= yx, y den farkına eşit
*=x *= yx, y ile çarpımıdır
/=x /= yx, y ile bölümüdür


Karşılaştırma İşlemleri

OperatorAçıklamaÖrnek
==Eşittir5 == 8 YANLIŞTIR
!=Eşit değildir5 != 8 DOĞRUDUR
<>Eşit değildir5 <> 8 DOĞRUDUR
>Büyüktür5 > 8 YANLIŞTIR
<Küçüktür5 < 8 DOĞRUDUR
>=Büyük eşittir5 >= 8 YANLIŞTIR
<=Küçük eşittir5 <= 8 DOĞRUDUR


Mantıksal İşlemler

OperatorAçıklamaÖrnek
&&VEx = 6, y = 3 ise
( x < 10 && y > 1 )
DOĞRUDUR
||VEYAx = 6, y = 3 ise
( x == 5 || y == 5 )
YANLIŞTIR
!DEĞİLSEx = 6, y = 3 ise
( !( x == y ) )
DOĞRUDUR

28 Şubat 2015 Cumartesi

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
   $kelime = "Hatasız Kul Olmaz.";

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

   echo $kelime;
?>
   

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

Hatasız Kul Olmaz.
   

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

<?php
   $adet = 7;

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

   echo $kelime;
?>
   

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

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
   $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
?>
   

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
   $kelime1 = "Hatasız Kul Olmaz.";
   $kelime2 = "Hatamla Sev Beni.";

   echo $kelime1 . " " . $kelime2;
?>
   

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

Hatasız Kul Olmaz. Hatamla Sev Beni.
   

strlen() Fonksiyonu

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

<?php
   $kelime = "Neden Ben?";

   echo strlen( $kelime );
?>
   

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

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
   $kelime = "Beni Bul!";
           // 012345678 olarak görülür

   echo strpos( $kelime, "Bul" );
?>
   

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

5
   

27 Şubat 2015 Cuma

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
   $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
   define('PI', 3.14);

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

26 Şubat 2015 Perşembe

Neye İhtiyacınız Var?



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
   phpinfo();
?>
   

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.

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