Bilgi/Açıklama

Parametreler ve Form

Bu bölümde örün (web) sayfaları için parametre (parameter) ve form (form) konuları işlenmektedir.
Bir örün sitesinde durağan (static) HTML sayfaları her çağrıldığında aynı içeriği gösterirler. Ancak bu durum, her içerik için ayrı bir sayfa yapılmasını gerekli kılar. Örneğin binlerce yazı veya ürün için binlerce sayfa yapılmalıdır. Ancak PHP sayfaları parametre (parameter) alarak ayrı bir içerik gösterebilirler. Örneğin bir yazıyı gösteren tek bir PHP sayfası yapılır ve gösterilecek yazı için ilgili kimlik (identity) bilgisi verilir. Kod içerisinde verilen kimlik değerine uygun yazı, genellikle bir veritabanından alınarak bulunur ve ekrana getirilir. Böylelikle tüm yazıları gösterecek tek bir PHP sayfası yapılmış olur.

GET & POST

Yöntem (Method)

HTTP protokolünde çeşitli yöntem (method) tanımları bulunmaktadır. Burada yöntem, yapılabilecek iş anlamına gelir. En çok iki yöntem kullanılmaktadır: GET ve POST. Bunlardan GET (Edin), istemcinin bir bilgiyi sunucudan istemesi anlamına gelir. POST (Gönder) ise istemcinin sunucuya bilgi göndermesidir.
Her ne kadar GET yöntemi okuma, POST yöntemi de yazma gibi dursa da iki durumda da bir adres olması, parametreler alınabilmesi ve sonuç olarak bir HTML üretilmesi gibi bir durum olduğu için; uygulamada GET ile POST arasındaki ayrım okuma veya yazma değildir. GET ile az sayıda veya küçük parametreler gönderme veya hiç göndermeme, POST ile çok sayıda veya büyük parametreler gönderme gibi bir durum söz konusudur.
GET ile POST arasında bir ayrım da, GET yönteminde parametrelerin , adresin dolayısıyla başlık bölümünün bir parçası olması; POST yönteminde ise parametrelerin girdi olarak gönderilen iletinin gövde bölümünde yer almasıdır.

Parametresiz Sayfa

Aşağıda bir işlemi sabit değerlerle, parametresiz gerçekleştiren bir örnek bulunmaktadır:
<html>
<body>
<h1> Parametresiz </h1>
<?php
	$left=3;
	$right=5;
	$sum=$left+$right;
?>
Toplam: <b><?=sum?></b>
</body>
</html>
Örnekte $left (sol) ve $right (sağ) adındaki değişkenler, tümsayı değerler verilerek tanımlamıştır. Daha sonda bu değişkenler toplanarak değerleri $sum (toplam) değişkenine atanmaktadır. En sonda da toplam sonuç ekranda gösterilmektedir.
Bu örnek kaç kere çalıştırılırsa çalıştırılsın aynı sonucu döner. Çünkü toplam yapılacak değerler kod içerisinde verilmiştir ve değişmesine olanak yoktur.
Ekran çıktısı:

GET

Bir sayfayı çağırırken ona parametre aktarmak için sorgu sicimi (query string) adı verilen parametreler kümesi verilebilir. Bunun için sayfanın adından sonra soru işareti (question mark) imi '?' konur ve sonrasına parametreler verilir. Her parametre, adı ve değeri arasında eşittir işareti (equals sign) imi '=' konur. Birden çok parametre bulunması durumunda ise parametreler arasında ve işareti (ampersand) imi '&' konur. Örneğin bir sayfa çağrısı aşağıdaki gibi yapılabilir:
Get.php?left=3&right=4
Burada left ve right parametre adları iken, 3 ve 4 ise parametre değerleridir.
Adresi oluşturan sayfa adı, parametreler ve sorgu sicimini oluşturan karakterler arasına, eğer değerlerde yoksa, boşluk konmaz. Öte yandan parametrenin değerinde boşluk varsa '%20' veya '+' gibi karakterler konur. Örnek:
MyPage.php?param=Godoro%20Education
MyPage.php?param=Godoro+Publisihg
PHP kodu içerisinde GET yöntemiyle gönderilen parametreleri almak için $_GET adlı bir küre değişkeni (global variable) bulunmaktadır. Buna göre
$value = $_GET["name"]
biçiminde parametrenin değeri alınabilir. Burada name parametrenin adıdır ve _GET değişkeni bir dizi veya eşlem gibi çalışır.
Bir işlemi, istekten aldığı parametreye göre gerçekleştiren bir örnek aşağıdaki gibi yapılabilir:
<html>
<body>
<h1> GET Parametreleri </h1>
<?php
	$left=$_GET["left"];
	$right=$_GET["right"];
	$sum=$left+$right;
?>
Toplam: <b><?=$sum?></b>
</body>
</html>
Yukarıdaki örnekte $left (sol) ve $right (sağ) değişkenleri tanımlanmakta ve değerleri $_GET küre değişkeninden alınmaktadır. Daha sonra bu değişkenler toplanarak $sum değişkenine atanmakta ve ekrana basılmaktadır.
Bu örnek tarayıcının adres satırında
http://localhost/Get.php?left=3&right=5
şeklinde çağrılabilir. Sonuç aşağıdaki gibi ekrana getirilir: Eğer parametreler verilmeden sayfa çağrılırsa yanlışlık bildirimli bir sayfa gelir. Örneğin
http://localhost/Get.php
biçiminde bir parametresiz çağrınca ekrana aşağıdaki gibi bir pencere getirir: Burada bildirilen yanlışlık, $_GET değişkeni içerisinde left ve right anahtarlı bir değer bulunmadığıdır. Tarayıcının adres satırında veya başka bir biçimde bu parametreler verilmezse elbette $_GET içerisinde bu değerler bulunmaz.

POST

Aşağıda parametreleri POST (Gönder) yöntemiyle alan bir örnek bulunmaktadır:
<html>
<body>
<h1> POST Parametereleri </h1>
<?php
	$left=$_POST["left"];
	$right=$_POST["right"];
	$sum=$left+$right;
?>
Toplam : <b><?=$sum?></b>
</body>
</html>
Yukarıdaki örnekte $left (sol) ve $right (sağ) değişkenleri tanımlanmakta ve değeleri $_POST küre değişkeninden alınmaktadır. Daha sonra bu değişkenler toplanarak $sum değişkenine atanmakta ve ekrana basılmaktadır.
Yukarıdaki sayfa, tarayıcının adres alanında doğru parametrelerle çağrılsa da parametrelerin $_POST değişkeni içerisinde olmadığını bildiren bir yanlışlıkla karşılaşılır. Çünkü tarayıcıda girilen adres her zaman GET isteği yollar. POST yönteminde istek bir form (form) bileşeninden gelmelidir.

Request (İstek)

Kimi durumlarda bir sayfanın hem GET hem de POST yöntemleri için çalışması istenebilir. Bu durumda $_REQUEST adlı bir küre değişkeni (global variable) kullanılır. Bu, $_GET (Edin) , $_POST (Gönder) ve $COOKIE (Çerez) gibi değişkenlerin birleşimi gibi düşünülebilir. Kullanımı bunlarla aynıdır. Örnek:
$value=$_REQUEST["name"];

Form

Parametreleri adres alanından almak, çoğu kullanıcının gerçekleştiremeyeceği ölçüde karmaşık bir işlem gerektirdiğinden doğrudan hiç kullanılmaz. Genellikle çalışan sayfalarda parametre yine başka bir sayfa tarafından oluşturulur ve bir bağa konur. Kullanıcı yalnızca bunu tıklar.

Form Bileşeni

Form Etiketi

Kullanıcıdan parametre veya girdi alabilmek için HTML dilinde form (form) etiketi bulunmaktadır. Buna göre
<form action="MyPage">
  // Çeşitli bileşenler
</form>
biçiminde bir formla parametre girişi sağlanabilir. Burada action (eylem) niteliği formun gönderileceği sayfayı belirtir. Bu nitelik bildirilmezse form form içerisinde bulunduğu sayfaya gönderilir.

Yöntem (Method)

Form etiketine yöntem (method) bildirimi yapılabilir. Tersi söylenmedikçe formlar GET yöntemiyle çalışırlar. GET yöntemiyle çalışan bir sayfa adres alanından da form içerisinden de çalışabilir. Ancak POST için bir form kullanımı zorunludur. Form içerisinden GET kullanılması durumunda parametreler adres satırında görünür. Bu durum kimi zaman güvenlik açığı veya kafa karışıklığı oluşturabileceğinden formlarla daha çok POST kullanılır.
Bir formun POST yöntemi ile çalışmasını sağlamak için method (yöntem) niteliğine POST değerini vermek gerekir:
<form method="POST">
  // Çeşitli bileşenler
</form>

Girdi Bileşeni

Girdi (Input)

Bir form içerisinde bir çok bileşen bulunabilir. Bunların en çok kullanılanlarından biri input (girdi) bileşenidir. Kullanımı aşağıdaki gibidir:
<input type="text" name="myname" />
Girdi türü olarak text (yazı) verilirse ekrana yazma yapılabilecek bir bileşen gelir.

Gönderme Türü Girdi

Bir formun sunucu yakasına gönderilmesini sağlamak için type (tür) özelliği submit (yolla) olan bir bileşen kullanılır. Örneğin:
<input type="submit" value="Yap"/>
biçimindeki bir HTML kodu, üzerinde Yap yazan, basıldığında formu sunucuya gönderen bir düğme ekrana getirir.

Örnek Sayfa

Aşağıda parametreleri formdan alan bir bir örnek bulunmaktadır:
<html>
<body>
<h1> Form </h1>
<form action="Post.php" method="POST">
	Sol Sayı :  
	<input type="text" name="left" /><br/>
	Sağ Sayı :  
	<input type="text" name="right" /><br/>
	<input type="submit" value="Topla"/>
</form>
</body>
</html>
Yukarıdaki sayfada HTML bölümünde left (sol) ve right (sağ) biçiminde iki girdi bileşeni tanımlanmıştır. Girilen değerleri submit türünde tanımlanan düğmeye basılınca formdaki action niteliğiyle bildirilen sayfaya gitmesi sağlanmıştır.
Ekran çıktısı: Açılan formda girdilere veri girilir ve düğmeye basılırsa ekran aşağıdaki gibi bir sonuç gelir: .
tekzaf tarafından 06.11.2018 tarihinde eklenmiş/güncellenmiştir.

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir

Misafir Yorumları




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et:

Her Hakkı Saklıdır
Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir.
Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir