PHP’de Form ($_GET, $_POST) Kullanımı

2 Mart 2015 - 1889 Okunma
PHP’de Form ($_GET, $_POST) Kullanımı
PHP’de sitemize giren ziyaretçilerden bilgi almak için Formları kullanırız. Formlarla birlikte sitemize gelen ziyaretçilerin siteye katkıda bulunmasını, üye olmasını sağlayabiliriz. Formlara örnek vermek gerekirse; kullanıcı giriş / kayıt formları, e-mail üyeliği formları, hesaplama formları, yönetim panelleri örnek gösterilebilir. Formlar <form></form> etiketleri arasına yazılır. Girilen bilgilerin hangi adrese gideceği action özelliği ile belirtilir. Bu bilgilerin gönderilme yöntemi de method özelliği […]

PHP’de sitemize giren ziyaretçilerden bilgi almak için Formları kullanırız. Formlarla birlikte sitemize gelen ziyaretçilerin siteye katkıda bulunmasını, üye olmasını sağlayabiliriz. Formlara örnek vermek gerekirse; kullanıcı giriş / kayıt formları, e-mail üyeliği formları, hesaplama formları, yönetim panelleri örnek gösterilebilir.

Formlar <form></form> etiketleri arasına yazılır. Girilen bilgilerin hangi adrese gideceği action özelliği ile belirtilir.

Bu bilgilerin gönderilme yöntemi de method özelliği ile belirlenir. Method özelliği GET veya POST değerlerinden birini alır.

GET ve POST’un arasındaki farklar

GET ve POST‘un arasındaki fark;

  • GET yöntemi ile gönderilen verilere adres çubuğundan erişilebilir (http://www.site.com/index.php?isim=ahmet&cinsiyet=1 şeklinde);
  • POST yöntemindeyse verilere adres çubuğundan erişilemez. O yüzden daha çok POST tercih edilir.
  • Bazı durumlarda GET kullanmakta gerekebilir.
  • POST ve GET, $_POST ve $_GET olarak yazılır ve Global değişkenlerdir.

HTML Form Yapımı ve Kullanımı

HTML Form Kullanımı konusunda bilgi sahibi olmak istiyorsanız HTML Form Kullanımı ve HTML’de Form Etiketleri yazılarını okuyabilirsiniz.

PHP’ye verileri göndermek için bir arayüz oluşturmamız gerekir. HTML’in Form etiketiyle bir arayüz oluşturabiliriz.

<form action="Formun gönderileceği / işleneceği sayfa" method="form veri gönderme Methodu">
   (Form elemanları buraya )
</form>

Form oluşturmayı öğrendik şimdi işin PHP kısmına dönelim. GET metodunu kullanmak için bir forma ihtiyaç yoktur fakat POST metodu yanlızca bir form ile gönderilir.

Örnekle verirsek;

Bir index.php oluşturun ve içine kodu ekleyin.

echo $_GET['isim'];

index.php?isim=ahmet yazdığımızda GET metodu form olmasa da Ekrana Ahmet ismini yazdıracaktır.

POST ile Form oluşturun

Bu sefer POST methodunu kullanarak bir Form oluşturup bunu kontrol edeceğiz.

Şimdi index.php isimli bir dosya oluşturun ve içine form ve PHP kodlarımızı yazalım;

<div id="uyelikform">
<h2>ÜYELİK FORMU</h2>
<form action="index.php" method="post">
 Ad: <br/>
 <input type="text" name="ad" /><br/>
 Soyad: <br/>
 <input type="text" name="soyad" /><br/>
 E-Posta: <br/>
 <input type="text" name="eposta" /><br/>
 <input type="submit" value="Gönder" />
</form>
</div>

Yukarıdaki örnekle POST kullanan basit bir üyelik formu oluşturduk. Şimdi Üyelik formumuzun başına PHP kodlarımızı ekleyelim:

Form’dan gelen verileri kontrol etmek

Form’un düzgün işlemesi için bir Kontrol mekanizması oluşturmak gerekir. Form değerleri kullanıcı tarafından girilmiş mi? Boş alan var mı gibi basit bir Form kontrol mekanizması kodlayalım;

<?php
if ($_POST){
$ad = $_POST["ad"];
$soyad = $_POST["soyad"];
$eposta = $_POST["eposta"];

if (empty($ad)){
echo "İsim Alanı Boş";
}
if (empty($soyad)){
echo "Soyad Alanı Boş";
}
if (empty($eposta)){
echo "Eposta Alanı Boş";
}
}
?>

Bu kodu çalıştırdığımızda boş bıraktığımız alanlar için ilgili yazı ekrana yazılacaktır.

Şimdi kodun son halini yazalım ve bir kaç kontrol daha ekleyelim.

<?php
if ($_POST){
$ad = $_POST["ad"];
$soyad = $_POST["soyad"];
$eposta = $_POST["eposta"];

if (empty($ad)){
echo "İsim Alanı Boş<br>";
}
if (empty($soyad)){
echo "Soyad Alanı Boş<br>";
}
if (empty($eposta)){
echo "Eposta Alanı Boş<br>";
}
if (!empty($ad) && !empty($soyad) && !empty($eposta)){
$message = "Form Başarıyla Gönderildi<br>";
echo $message;
}
}
?>
<div id="uyelikform" style="<?php if ($_POST && $message){ echo "display:none;"; } ?>">
<h2>ÜYELİK FORMU</h2>
<form action="index.php" method="post">
 Ad: <br/>
 <input type="text" name="ad" value="<?php echo $ad; ?>" /><br/>
 Soyad: <br/>
 <input type="text" name="soyad" value="<?php echo $soyad; ?>" /><br/>
 E-Posta: <br/>
 <input type="text" name="eposta"  value="<?php echo $eposta; ?>" /><br/>
 <input type="submit" value="Gönder" />
</form>
</div>

Kodu anlamak istersek ilk baştan anlatmaya başlayalım. İlk önce if $_POST diyerek eğer Form POST edilirse yapılacakları sıralıyoruz. İsim, Soyad veya Eposta boşsa bize uyarı yazıyor.

if ($_POST) { yapılacak işlemler } veya if ($_GET) { yapılacak işlemler }

Bu iki kodu Formlarla uğraşırken fazlasıyla kullanacağız. Bu kod Eğer POST edilmişse veya GET edilmişse yani Gönder tuşuna basılmışsa neler yapılacağını yazmanız gereken bölümdür

 

En sonda da eğer değişken Boş değilse şunları yap diyoruz

!empty() boş kontrol fonksiyonunun önüne ünlem işareti koyarsak Boş değilse oluyor.

Eğer bu 3 form alanı boş değilse uyelik formunun görünümünü kapatıp, bize Form Gönderildi uyarısı veriyor.

İşte POST ile Form oluşturup kontrol etmek bu kadar.

DEMO

Eğer bu işi GET ile yapmak istiyorsanız, kodları aşağıdaki gibi yazmanız gerekmektedir.

<?php
if ($_GET){
$ad = $_GET["ad"];
$soyad = $_GET["soyad"];
$eposta = $_GET["eposta"];

if (empty($ad)){
echo "İsim Alanı Boş<br>";
}
if (empty($soyad)){
echo "Soyad Alanı Boş<br>";
}
if (empty($eposta)){
echo "Eposta Alanı Boş<br>";
}
if (!empty($ad) && !empty($soyad) && !empty($eposta)){
$message = "Form Başarıyla Gönderildi<br>";
echo $message;
}
}
?>
<div id="uyelikform" style="<?php if ($_GET && $message){ echo "display:none;"; } ?>">
<h2>ÜYELİK FORMU</h2>
<form action="index.php" method="GET">
 Ad: <br/>
 <input type="text" name="ad" value="<?php echo $ad; ?>" /><br/>
 Soyad: <br/>
 <input type="text" name="soyad" value="<?php echo $soyad; ?>" /><br/>
 E-Posta: <br/>
 <input type="text" name="eposta"  value="<?php echo $eposta; ?>" /><br/>
 <input type="submit" value="Gönder" />
</form>
</div>

Bu kodun demosunu deneyerek aradaki farkı da daha iyi anlayabilirsiniz.

DEMO

Örnek yaptıkça Form konusunda da kendinizi geliştireceksiniz. Şimdilik Sağlıcakla Kalın.

ITC | İlkteknoloji