Hikayeler

Reklam vermek için turkmmo@gmail.com

PHP - GET & POST

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
Katılım
2 Mar 2015
Konular
59,185
Mesajlar
88,382
Online süresi
4ay 14g
Reaksiyon Skoru
14,227
Altın Konu
2,398
Başarım Puanı
1,051
TM Yaşı
11 Yıl 1 Ay 21 Gün
MmoLira
694,336
DevLira
234

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

PHP çoğunlukla web uygulaması geliştirme için kullanıldığından, tarayıcı istemcisi tarafından gönderilen veriler çoğunlukla HTTP istek yöntemlerinin GET ve POST türleriyledir. HTTP protokolü ayrıca isteği sunucuya göndermek için başka yöntemler de tanımlar. Bunlar PUT, DELETE, HEAD ve OPTIONS'dır (GET ve POST yöntemlerine ek olarak). Bu bölümde, PHP'nin GET ve POST yöntemlerini nasıl işlediğine yoğunlaşacağız.

GET Yöntemi

GET yöntemi, kodlanmış kullanıcı bilgilerini sayfa isteğine eklenmiş olarak gönderir. Sayfa ve kodlanmış bilgiler ? karakteri ile ayrılır.


  • GET metodu, sunucu günlüklerinizde tarayıcının Konum: kutusunda görünen uzun bir dize üretir.
  • GET metodu en fazla 1024 karakter gönderebilecek şekilde sınırlandırılmıştır.
  • Eğer sunucuya gönderilecek şifreniz veya diğer hassas bilgileriniz varsa asla GET metodunu kullanmayın.
  • GET, görüntü veya word belgeleri gibi ikili verileri sunucuya göndermek için kullanılamaz.
  • GET metodu ile gönderilen verilere QUERY_STRING ortam değişkeni kullanılarak erişilebilir.
  • PHP, GET metodunu kullanarak gönderilen tüm bilgilere erişmek için $_GET ilişkisel dizisini sağlar.

Aşağıdaki örneği test.php betiğine kaynak kodunu koyarak deneyin.

PHP:
<?php
   if( $_GET["name"] || $_GET["age"] ) {
      echo "Welcome ". $_GET['name']. "<br />";
      echo "You are ". $_GET['age']. " years old.";
      
      exit();
   }
?>
<form action = "<?php <b>$_PHP_SELF</b> ?>" method = "GET">
   Name: <input type = "text" name = "name" />
   Age: <input type = "text" name = "age" />
   <input type = "submit" />
</form>

Aşağıdaki sonucu üretecektir:

forms.jpg

POST Yöntemi

POST yöntemi bilgileri HTTP başlıkları aracılığıyla aktarır. Bilgiler GET yönteminde açıklandığı gibi kodlanır ve QUERY_STRING adlı bir başlığa konur.

  • POST metodunda gönderilecek verinin boyutu konusunda herhangi bir kısıtlama yoktur.
  • POST metodu hem ASCII hem de ikili veri göndermek için kullanılabilir.
  • POST yöntemiyle gönderilen veriler HTTP başlığından geçer, bu nedenle güvenlik HTTP protokolüne bağlıdır. Güvenli HTTP kullanarak bilgilerinizin güvenli olduğundan emin olabilirsiniz.
  • PHP, POST metodunu kullanarak gönderilen tüm bilgilere erişmek için $_POST ilişkisel dizisini sağlar.
Aşağıdaki örneği test.php betiğine kaynak kodunu koyarak deneyin.


PHP:
<?php
   if( $_POST["name"] || $_POST["age"] ) {
      if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
         die ("invalid name and name should be alpha");
      }
      echo "Welcome ". $_POST['name']. "<br />";
      echo "You are ". $_POST['age']. " years old.";
      
      exit();
   }
?>
<form action = "<?php <b>$_PHP_SELF</b> ?>" method = "POST">
   Name: <input type = "text" name = "name" />
   Age: <input type = "text" name = "age" />
   <input type = "submit" />
</form>

Aşağıdaki sonucu üretecektir:

forms.jpg

GET ve POST arasındaki fark

GET ve POST yöntemleri arasındaki temel fark, URL'ye eklenen istek parametrelerinin tarayıcının URL'sinde açığa çıkarken, POST verilerinin mesaj gövdesine dahil edilmesi ve URL'de ortaya çıkarılmamasıdır. Bu nedenle, GET yöntemi sunucuya hassas veri göndermek için kullanılmamalıdır.

İkinci olarak, GET yöntemindeki istek verileri 2048 karakteri geçemez ve yalnızca ASCII karakterlerinden oluşabilirken, POST yönteminde, ikili olarak da olabilen istek verilerinde bir sınır yoktur (POST verilerinin varsayılan maksimum boyutu, php.ini dosyasındaki post_max_size ayarıyla belirlenir)

PHP, istek parametrelerini almak ve işlemek için aşağıdaki üç süper küresel değeri sağlar:

  • $_GET − GET metodunu kullanarak gönderilen tüm bilgilere erişmek için bir ilişkisel dizi.
  • $_POST − POST metodu kullanılarak gönderilen tüm bilgilere erişmek için bir ilişkisel dizi.
  • $_REQUEST − hem GET hem de POST yöntemleriyle gönderilen form verilerinden sonuç almak için kullanılabilen ilişkisel bir dizi.

$_GET Dizisi

İstek parametrelerini doğrudan URL'ye eklenen sorgu dizesi biçiminde geçirebilirsiniz.

Aşağıdaki PHP betiğini belge kök klasörüne ( htdocs ) "hello.php" olarak kaydedin.

PHP:
<?php
   echo "First name: " . $_REQUEST['first_name'] . " " .
      "Last Name: " . $_REQUEST['last_name'] . "";
?>

Tarayıcı penceresine URL olarak adresini girin (PHP sunucusunun çalıştığından emin olun).

$_GET dizisi istekten doldurulur ve çıktı aşağıdaki gibi görüntülenir:

First name: Amar Last Name: Sharma

Ayrıca, $_GET dizisinin yöntem niteliği GET ise, onu HTML form verileriyle doldurabilirsiniz.

Verileri toplamak ve "hello.php"ye göndermek için aşağıdaki HTML formunu kullanın. Belge kökü altında, aşağıdaki betiği "hello.html" olarak kaydedin.

<form action="hello.php" method="get">
First Name: <input type="text" name="first_name"/> <br/>
Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>

Tarayıcınıza " " URL'sini girin.

php_get_post.jpg

Tarayıcı penceresinde de benzer çıktıyı almalısınız.

$_POST Dizisi

POST isteğiyle bir sunucuya veri göndermenin en kolay yolu, HTML formunun method niteliğini POST olarak belirtmektir. Tarayıcıdaki URL'nin " " olduğunu varsayarak, önceki örnekte olduğu gibi bir HTML formu olan "hello.html"de method=POST ayarlanır.

PHP:
<form action="hello.php" method="post">
   First Name: <input type="text" name="first_name"/>  <br/>
   Last Name: <input type="text" name="last_name" />
   <input type="submit" value="Submit" />
</form>

"hello.php" betiği (belge kök klasöründe) $_POST dizisindeki form verilerini alır ve bunları tarayıcıya HTTP yanıtı olarak işler.

PHP:
<?php
   echo "First name: " . $_POST['first_name'] . " " .
      "Last Name: " . $_POST['last_name'] . "";
?>

Tarayıcınızda " " adresini açın. Girilen veriler sunucu tarafından alınır ve önceki örnekte olduğu gibi istemciye geri gönderilir.
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst