Yükleniyor

PHP'den istemciden veri almak için $_GET ve $_POST yöntemi kullanılır. Web site ve projelerinde ki HTTP (Hypertext Transfer Protocol - Köprü Metin Aktarım Protokolü) ve HTTPS durumu burada anlam kazanmaktadır. Bir site HTTP ile başlıyorsa ssl sertifikası olmayan onaylanmayan haberleşmeler sağlar ancak HTTPS ile başlıyorsa tamamen güvenilirdir.

Php $_GET ve $_POST Arasındaki Fark

Kullanım ve mantık olarak tamamen birbirleri ile aynıdır;

  • $_POST methodu, işlenen verileri dizi olarak gönderir. Erişilebilir (functionlarda, class yapılarında, işlev vb.) olması kolaydır.Kullanımı kolaydır.
  • $_GET methodu, işlenen verileri dizi olarak gönderir. Erişilebilir (functionlarda, class yapılarında, işlev vb.) olması kolaydır.Kullanımı kolaydır.

  • $_POST yönteminde sorgular gizli bir şekilde gönderilir. MIME ile şifrelenir, tarayıcının adres çubuğunda gözükmez, istemcinin tarayıcı geçmişine ve sunucunun URL loglarına kaydedilmez. Güvenilirdir, $_GET komutuna göre yavaştır. Kullanıcı adı ve şifre, kart bilgileri gibi özel bilgilerin bu yöntemle gönderilmesi gerekir.
  • $_GET yönteminde sorgular şifrelenmeden, URL üzerinden sunucuya gönderilir. $_POST yönteminden daha güvensizdir; sorgular sunucuda ve istemcinin tarayıcısında kaydedilir, $_POST komutuna göre hızlıdır. İstemci sorgular, URL üzerinden gönderildiği için sayfaya daha kolay bir şekilde erişebilir. Genelde E-ticaret sitelerinde filtreleme bölümünde (vb. alanlarda) kullanılır. Kayıt edildiği için SEO açısından büyük bir anlam taşır. Kullanıcı bilgileri, şifre ve kart bilgileri gibi özel bilgilerde bu yöntem KESİNLİKLE KULLANILAMAZ.

  • $_POST form ile kullanılır.
  • $_GET form ve normal linkler (html a taglarında, jquery ve javascript yönlendirmelerinde, php yönlendirmelerinde vb.) ile kullanılabilir.

Php $_GET Kullanımı

Php get isteklerinde ilk olarak değerlerin gönderileceği URL yazılır. Daha sonra ? (soru) işareti ile değerleri göndermeye başlayacağımızı belirtiriz ardından değişken isimlerini yazar ve değerlerini atarız. Php de değer atamak ile aynı şey sadece URL üzerinden tanımlama yapıyoruz.

http://www.siteadresiniz.com/değerlerin_gonderilecegi_sayfa.php?degisken=atanan_deger


Birden fazla değer göndermek mümkündür. & işareti ile değişkenler birbirinden ayırt edilir.

http://www.siteadresiniz.com/değerlerin_gonderilecegi_sayfa.php?degisken1=atanan_deger&degisken2=atanan_deger&degisken3=atanan_deger


$_GET komutunun gönderilen sayfada çağırılma şekli aşağıdaki gibidir.

<?php
//$_GET["urlde_tanimladigimiz_degisken_adi"];
echo $_GET["degisken1"];
echo $_GET["degisken2"];
echo $_GET["degisken3"];
?>

Php $_GET Link Örneği

sayfa1.php olarak kayıt edin.
<!doctype html>
<html>
  <head>
    <title>Sayfa 1 Get Kullanımı</title>
  </head>
  <body>
    <p>2. Sayfaya değerler gönder;</p>
    <a href="sayfa2.php?deger1=deger1in_degeri°er2=deger2in_degeri">Tıkla 2. Sayfaya git</a>
    <!-- Göndereceğimiz sayfayı ve değişkenleri yazdık.-->
    <!-- Diğer sayfada değişkenleri çekerken buraya yazmış olduğumuz değişken isimleri ile çekeceğiz -->
  </body>
</html>
sayfa2.php olarak kayıt edin.
<!doctype html>
<html>

<head>
  <title>Sayfa 2 Get Kullanımı</title>
</head>

<body>
  <?php
  if ($_GET) { //Eğer get işlemi olduysa, tanımlandıysa, bir get değeri dönüyorsa
    var_dump($_GET);
    //Dizi olarak geldiği için var_dump ile yazdırabiliriz.
    /* Çıktı:
      array (size=2)
        'deger1' => string 'deger1in_degeri' (length=15)
        'deger2' => string 'deger2in_degeri' (length=15)
      */
    
    /*************************** */
    
    //URL üzerinden değişkene verdiğiniz isim ile aşağıdaki gibi çağırabiliyoruz.
    echo "Değer 1 = " . $_GET["deger1"] . "<br>"; // Çıktı: Değer 1 = deger1in_degeri
    echo "Değer 2 = " . $_GET["deger2"] . "<br>"; // Çıktı: Değer 2 = deger2in_degeri
  }
  else echo 'get işlemi gerçekleşmedi.';
  ?>
</body>

</html>

Php $_GET Form Örneği

sayfa1.php olarak kayıt edin.
<!doctype html>
<html>

<head>
  <title>Sayfa 1 Get Kullanımı</title>
</head>

<body>
  <form action="sayfa2.php" method="GET">
    <!-- get ile formu göndereceğimizi belirttik. -->
    Aradığınız Kelime:<br />
    <input type="text" name="kelime" />
    <!-- inputların name bölümüne hangi ismi tanımlarsak değişken adı o olur. Türkçe karakter kullanılmaz ve boşluk bırakılmaz.-->
    <br /><br />
    Aradığınız İl:<br />
    <input type="text" name="il" />
    <!-- inputların name bölümüne hangi ismi tanımlarsak değişken adı o olur. Türkçe karakter kullanılmaz ve boşluk bırakılmaz. -->
    <br /><br />
    <button type="submit">ARA</button>
  </form>
</body>

</html>
sayfa2.php olarak kayıt edin.
<!doctype html>
<html>

<head>
  <title>Sayfa 2 Get Kullanımı</title>
</head>

<body>
  <?php
  //BU SAYFADAYKEN URL BÖLÜMÜNÜZÜ KONTROL EDİN.
  
  if ($_GET) { //Eğer get işlemi olduysa, tanımlandıysa, bir get değeri dönüyorsa
    echo $_GET["kelime"] . "<br />"; //name="kelime" olan inputtan gönderilen değeri yazacaktır.
    echo $_GET["il"];//name="il" olan inputtan gönderilen değeri yazacaktır.
  } else echo 'get işlemi gerçekleşmedi.';
  ?>
</body>
</html>

Php $_POST Kullanımı ve Örneği

Kullanımı $_GET ile tamamen aynıdır. Dediğimiz gibi $_POST methodunu sadece form üzerinde kullanabilirsiniz. Örnek ile daha iyi anlayabilirsiniz.

sayfa1.php olarak kayıt edin.
<!doctype html>
<html>

<head>
  <title>Sayfa 1 Post Kullanımı</title>
</head>

<body>
  <form action="sayfa2.php" method="POST">
    <!-- post ile formu göndereceğimizi belirttik. -->
    Adınız :<br />
    <input type="text" name="adi" />
    <!-- inputların name bölümüne hangi ismi tanımlarsak değişken adı o olur. Türkçe karakter kullanılmaz ve boşluk bırakılmaz.-->
    <br /><br />
    Soyadınız:<br />
    <input type="text" name="soyadi" />
    <!-- inputların name bölümüne hangi ismi tanımlarsak değişken adı o olur. Türkçe karakter kullanılmaz ve boşluk bırakılmaz. -->
    <br /><br />
    Kullanıcı Adınız:<br />
    <input type="text" name="kullanici_adi" />
    <!-- inputların name bölümüne hangi ismi tanımlarsak değişken adı o olur. Türkçe karakter kullanılmaz ve boşluk bırakılmaz. -->
    <br /><br />
    Şifreniz:<br />
    <input type="text" name="sifre" />
    <!-- inputların name bölümüne hangi ismi tanımlarsak değişken adı o olur. Türkçe karakter kullanılmaz ve boşluk bırakılmaz. -->
    <br /><br />
    <button type="submit">KAYIT OL</button>
  </form>
</body>

</html>
sayfa2.php olarak kayıt edin.
<!doctype html>
<html>

<head>
  <title>Sayfa 2 Post Kullanımı</title>
</head>

<body>
  <?php
  //BU SAYFADAYKEN URL BÖLÜMÜNÜZÜ KONTROL EDİN. GET DEKİ GİBİ HERŞEYİN YAZMADIĞINI GÖRECEKSİNİZ.
  
  if ($_POST) { //Eğer post işlemi olduysa, tanımlandıysa, bir post değeri dönüyorsa
    echo $_POST["adi"] . "<br />"; //name="adi" olan inputtan gönderilen değeri yazacaktır.
    echo $_POST["soyadi"] . "<br />"; //name="soyadi" olan inputtan gönderilen değeri yazacaktır.
    echo $_POST["kullanici_adi"] . "<br />"; //name="kullanici_adi" olan inputtan gönderilen değeri yazacaktır.
    echo $_POST["sifre"]; //name="sifre" olan inputtan gönderilen değeri yazacaktır.
  } else echo 'POST işlemi gerçekleşmedi.';
  ?>
</body>

</html>