- 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.
Aşağıdaki örneği test.php betiğine kaynak kodunu koyarak deneyin.
Aşağıdaki sonucu üretecektir:
Aşağıdaki sonucu üretecektir:
İ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:
Aşağıdaki PHP betiğini belge kök klasörüne ( htdocs ) "hello.php" olarak kaydedin.
Tarayıcı penceresine URL olarak
$_GET dizisi istekten doldurulur ve çıktı aşağıdaki gibi görüntülenir:
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.
Tarayıcınıza "
Tarayıcı penceresinde de benzer çıktıyı almalısınız.
"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.
Tarayıcınızda "
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.Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
- 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:
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.
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:
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
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
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 "
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
" URL'sini girin.
$_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 "
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
" 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 "
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
" adresini açın. Girilen veriler sunucu tarafından alınır ve önceki örnekte olduğu gibi istemciye geri gönderilir.
