Form Kullanımı ve Örnekleri

PHP’de ziyaretçilerden ve kullanıcılardan bilgi almak için formları kullanacağız. Formlar sayesinde kodları dışarıdaki verilere ve dinamik içeriklere açarız. Mesela giriş formları, e-mail gönderme formları, hesaplama formları, yönetim panelleri gibi...

Ziyaretçilerin forma yazdıkları değerleri burada bahsettiğimiz $_GET$_POST ve $_REQUEST global dizileri aracılığyla PHP’de bir değişkene atarız.

HTML formu ile PHP scriptimize göndereceğimiz her bir form elemanı PHP de gönderdiğimiz metod türüne göre $_GET ya da $_POST içinde bir eleman olur. Yani bizi dışarıdaki hayata bağlayan ve dışarıdan bilgi almamızı sağlayan köprülerimiz, pencerelerimiz $_GET ve $_POST global değişkenleridir.

HTML Form yapımı

PHP’ye verileri göndermek için önce bir arayüz tasarlamamız gerekiyor. Verilerin gönderileceği bir form tasarlamamız gerekiyor.

Bir HTML formunu taslak şeklinde çizelim:

<form action="formun gönderileceği sayfa" method="formun verilerini gönderme metodu">
   buraya ise formun elemanları gelecek.
</form>

Temel form elemanları

Formun içerisine yerleştireceğimiz bir çok form elemanı mevcut. Metin alanları, parola alanları, çoklu onay kutucukları, radyo butonları, gönderme butonları, dosya seçim elemanları gibi çeşit çeşit form elemanı mevcuttur.

Her bir form elemanında “name” parametresi olmak zorundadır. Bu paramatre o elemanın ismini belirtir. Her form elemanının bu parametresine yazacağımız isim sayesinde PHP’de buluruz.

Aynı şekilde varsayılan form elemanı değerini belirlemek ya da radyo butonların değerini belirlemek içinde “value” parametresini kullanırız. Bu parametreye yazacağımız değerler PHP’de o elemanın değerini belirler.

İşte HTML form elemanları ve örnek kullanımları:

Hemen bunlardan yeni bir form örneği oluşturup tablodaki örnekleri uygulamalı olarak gösterelim:

<form action="index.php" method="post">
 İsim: <br/>
 <input type="text" name="isim" /><br/>
 Soyisim: <br/>
 <input type="text" name="soyisim" /><br/>
 E-mail: <br/>
 <input type="text" name="mail" /><br/>
 Cinsiyet: <br/>
 <input type="radio" name="cinsiyet" value="e" /> Erkek<br/>
 <input type="radio" name="cinsiyet" value="k" /> Kadın<br/>
 Mesaj: <br/>
 <textarea name="mesaj"></textarea><br/>
 <input type="submit" value="Formu gönder" />
</form>

Form gönderme metodları (GET ve POST) arasındaki farklar

İki tane metodumuz var, bunlar GET ve POST. İkiside formumuzdaki verileri PHP scriptimize göndermeye yarıyor. Tek farkları verileri gönderme yolları.

Eğer metod olarak GET’i seçersek formu gönderdiğimizde PHP dosyamızın adı index.php ise adres çubuğunda gönderdiğimiz değerler yazacaktır. Örneğin: http://www.siteniz.com/index.php?isim=aygn&cinsiyet=e&mesaj=merhaba şeklinde olacaktır.

POST seçtiğimizde ise GET’de olduğu gibi gönderdiğimiz veriler adres çubuğundan değilde browser üzerinden gönderilir. Yani seçtiğimzi PHP sayfasına içten gönderilir, aynı cookie ve sessionlar gibi.

Örnekler ile gösterelim:

index.php adında bir dosya oluşturalım ve içerisine aşağıdaki kodu ekleyelim.

echo $_GET['isim'];

Ve bu sayfaya index.php?isim=aygn şeklinde girelim. Xampp kullanıyorsanız http://localhost/index.php?isim=aygn şeklinde olacaktır. Sonuç olarak ekranda adres çubuğunda belirttiğimiz isim değeri yani aygn yazar.

GET metodunu kullanmak için bir forma ihtiyaç yoktur fakat POST metodu yanlızca bir form ile gönderilir.

Bir örnek daha yapalım, bu sefer bir matematik işlemi yaptıralım:

carp.php adında bir dosya oluşturuyoruz ve aşağıdaki kodları yazıyoruz:

$sayi = $_GET['x'];
$sonuc = $sayi * 5;
echo $sonuc;

carp.php?x=10 şeklinde girdiğimizde ekranda 50 yazacaktır. Adres çubuğuna yazacağımız her x değerini 5 ile çarpıp ekrana yazacaktır.

Formu kontrol etmek

Bir formun verilerini işlemeden önce bize form ile veri gönderilip gönderilmediğini ya da gönderilen değerlerinin boş olup olmadığını kontrol etmemiz gerekiyor. Bunun içinde if ifadesini, isset() ve empty() fonksiyonunu kullanacağız. Tabi bu fonksiyonları daha çok bir sayfada birden fazla post işlemi yapıyorsak kullanırız. Tek form var ise kullanmamıza gerek yok.

İlk olarak basit bir form yapalım, dosyamızın adı giris.php olsun, buradan kontrol.php ye veri göndereceğiz:

<form action="kontrol.php" method="post">
Kullanıcı:<br/>
<input type="text" name="kullanici" /><br/>
Şifre:<br/>
<input type="password" name="sifre" /><br/>
<input type="submit" value="Giriş yap" />
</form>

Şimdide kontrol.php‘nin içeriğini kodlayalım ve kontrolümüzü yapalım:

if(isset($_POST['kullanici']) && isset($_POST['sifre'])) {
   $kullanici = $_POST['kullanici'];
   $sifre = $_POST['sifre'];
 
   if(empty($kullanici) || empty($sifre)) {
      echo 'Lütfen boş bırakmayın';
   } else {
      echo 'Girilen kullanıcı adı: ' . $kullanici . ' şifre: ' . $sifre;
   }
} else {
   echo 'Lütfen formu kullanın';
}

İlk koşulda “isset($_POST[‘kullanici’]) && isset($_POST[‘sifre’])” $_POST[‘kullanici’] ve $_POST[‘sifre’] diye bir değişken tanımlanmış mı diye sorduk. Eğer ikiside tanımlanmış ise bu ifadenin kod bloğuna yazdığımız ikinci bir koşul daha devreye giriyor ve bu sefer gönderilmiş olan verilerin boş olup olmadığına bakıyor.

İkinci koşulda “empty($kullanici) || empty($sifre)” $kullanici değişkeninin değeri boşsa ya da $sifre değişkeninin değeri boşsa diye bir koşul tanımlıyoruz. Eğer ikisinden birisinin içeriği boşsa bu sefer ekrana uyarı olarak Lütfen boş bırakmayın yazdırıyoruz. Eğer ikiside boş değilse bu seferde ekrana forma yazdığımız kullanıcı adı ve şifre çıkıyor.

Bu örnekte aynı zamanda iç içe if ifadesi kullanmayıda göstermiş olduk.

Bir sonraki dersimizde Form ile kullanıcı girişine bakacağız.

Yorumlar
Yorum Yaz
Cevap Yaz