PHP Programlama

PHP Uygulamalar

Php ve MySQL

PHP Form İşlemleri

► Detaylı anlatım

HTML formları aracılığı ile, kullanıcılar bilgisayarlarındaki tarayıcıda açtıkları bir web sayfası üzerinden yaptıkları veri girişlerini bir sunucuya gönderebilirler. Farklı bir ifade ile; web sayfasında yapılan işlemler kullanıcı tarafından girilen verileri esas alır. Örneğin, e-posta göndermek gibi.

Bir HTML form üzerinde kullanıcının veri girişi yapabilmesi için gerekli olan text, checkbox, radio, textarea, select, file gibi veri giriş alanları ile formu göndermeye yarayan submit butonu yer alır.

Form veri giriş alanları <form> ve </form> etiketleri arasında yer alır.

HTML formları aracılığı ile bir bilgi gönderebilmek ve işlem yapabilmek için, bu formun içinde yer aldığı bir dosya ile gönderilen formda yer alan bilgilere işlem yapacak bir dosya gerekir.

Aşağıdaki örnekte, form.php adlı dosyada, bir form içinde bir metin veri giriş alanı ile bir submit butonu bulunmaktadır.

form.php

<html>
<body>

<form method="post" action="formislem.php">
  Adı: <input type="text" id="adi" name="adi">
  <input type="submit" value="Gönder">
</form>

</body>
</html>

method : Formdaki verilerin kullanma yöntemi (post veya get)

action : Formdaki verilerin gönderileceği dosya

type : Veri giriş alanının türünü belirler.

name : Veri giriş alanının adı (Mutlaka tanımlanmalıdır, çünkü $_POST dizini içindeki değişken adını oluşturur.)

Yukarıdaki dosyayı tarayıcınızda çalıştırdığınızda karşınıza aşağıdaki görüntü gelir:

Adı:

Veri giriş alanına "Ahmet" yazıp butona tıkladığınızda, form içindeki veriler post yöntemi ile formislem.php dosyası otomatik olarak açılır ve bilgiler dosyaya gönderilir.

formislem.php (Aktarılan dosya)

<html>
<body>

<?php
   echo 'Adı: ' . htmlspecialchars($_POST['adi']);
?>

</body>
</html>

Yukarıdaki form.php dosyasında veri giriş alanına "Ahmet" değerini girip submit butonuna bastığınızda, formislem.php dosyası çağrılır ve web tarayıcınızda aşağıdaki ifadeler karşınıza çıkar:

Adı: Ahmet

formislem.php dosyasında kullanılan htmlspecialchars() fonksiyonu HTML'de kullanılan özel karakterleri uygun bir şekilde çevirerek, HTML etiketleri veya Javascript yoluyla PHP sayfasına yapılabilecek muhtemel güvenlik saldırılarını önler.

Dosya içindeki $_POST['adi'] değişken değeri PHP tarafından otomatik olarak atanır. Aynı değişken değerine $_REQUEST['adi'] yoluyla da erişmek mümkündür.

Form işlemlerinde tek dosya kullanma

Eğer, aynı dosyada hem form bilgilerini koymak hem de form bilgilerine işlem yapmak istersek, çalışmakta olan PHP dosyasının yol tanımlamasını veren $_SERVER['PHP_SELF'] değişkenini kullanabiliriz.

form.php

<html>
<body>

<?php
   if (!empty($_POST['adi'])) {
       echo 'Adı: ' . htmlspecialchars($_POST['adi']);
   }	   
   else {
      echo '<form method="post" action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '">
      Adı: <input type="text" id="adi" name="adi">
      <input type="submit" value="Gönder">
      </form>';
   }  
?>

</body>
</html>

Veri giriş alanına "Ahmet" yazıp butona tıkladığınızda, bu kez form içindeki verileri dosya post yöntemi ile kendi kendine gönderir.

Form verilerinin gönderilmesinde $_GET değişkenini kullanma

Form verilerini göndermek için POST yöntemini kullandığınızda, forma işlem yapacak dosyaya gönderilecek değişken değerleri HTTP POST yöntemi ile $_POST değişken dizisine aktarılır. GET yöntemini kullandığınızda ise, URL parameterleri ile $_GET değişken dizisine aktarılır.

POST yöntemini kullandığınızda, tüm veriler dosyanın içinde gönderildiğinden, kullanıcılar verileri göremezler ve veri boyutu ile ilgili herhangi bir sınırlama yoktur.

GET yöntemini kullandığınızda, gönderilen değişken adları ve değerleri adres satırında URL'nin bir parçası olarak görünür. Ayrıca, bu yöntemde göderilebilecek karakter sayısı sınırlıdır. Kullanıcılar tarafından görülmesini istemediğiniz veya büyük boyutlu verileri aktarırken GET yöntemini kullanmamanız önerilir.

form.php

<html>
<body>

<form method="get" action="formislem.php">
  Adı: <input type="text" id="adi" name="adi">
  <input type="submit" value="Gönder">
</form>

</body>
</html>

method : Formdaki verilerin kullanma yöntemi (Burada get kullanılıyor.)

Yukarıdaki dosyayı tarayıcınızda çalıştırdığınızda karşınıza aşağıdaki görüntü gelir:

Adı:

Veri giriş alanına "Ahmet" yazıp butona tıkladığınızda, form içindeki veriler get yöntemi ile formislem.php dosyası otomatik olarak açılır ve bilgiler dosyaya gönderilir.

formislem.php (Aktarılan dosya)

<html>
<body>

<?php
   echo 'Adı: ' . htmlspecialchars($_GET['adi']);
?>

</body>
</html>

Yukarıdaki form.php dosyasında veri giriş alanına "Ahmet" değerini girip submit butonuna bastığınızda, formislem.php dosyası çağrılır ve web tarayıcınızda aşağıdaki ifadeler karşınıza çıkar:

Adı: Ahmet

GET yöntemi kullanıldığında, formislem dosyası otomatik olarak çağrıldığında, tarayıcının adres satırında aşağıdaki ifadeler görülecektir:

/formislem.php?adi=Ahmet

Dosya içindeki $_GET['adi'] değişken değeri PHP tarafından otomatik olarak atanır. Aynı değişken değerine $_REQUEST['adi'] yoluyla da erişmek mümkündür.