PHP dilinin HTML ile birlikte kullanıldığını belirtmiştik. Şimdi HTML formlarının PHP ile nasıl gönderilip alındığını inceleyelim.
Bu dersimizde aşağıdaki form elementlerinin gönderilip alınmasını inceleyeceğiz.
Daha önceki derslerimizde input ve fileupload işlemini ele almıştık. Bu dersimizde ise bu form öğelerini daha detaylı inceleyeceğiz.
Bilindiği üzere HTML formlar <form> etiketi ile açılır ve </form> etiketi ile kapatılır. Bu iki etiket arasına metin kutusu, liste ve chechbox gibi öğeler yerleştirilebilir. Ve yine bu form etiketleri içerisinde formu göndermek için bir de buton bulunur. Form etiketinin alabileceği 3 temel değer vardır. Bunlar formun gönderilme biçimi olan METHOD özelliği, formun gönderileceği sayfayı belirten ACTION özelliği ve formda dosya transfer edeceksek ENCTYPE özelliğidir.
Aşağıda örnek bir HTML form verilmiştir;
1 2 3 4 |
<form action="" method="post"> <input type="text" name="metinKutusu"/> <input type="button" name="gonder" value="GÖNDER"/> </form> |
İnput formumuz adından da anlaşılacağı üzere girdi kutucuğudur. Bu formumuz ile text (metin), password (şifre), e-mail, sayı ve buton girdisi oluşturabiliriz.
1 |
<input type="text" name="girdi"/> |
Yukarıda görüldüğü üzere PHP’de kullanılacak input formlarının iki ana özelliği vardır. Bunlardan birincisi arka plan kodlarında forma ulaşacağımız “name” özelliğidir. İkincisi ise ön yüzde formun girdi özelliğini belirleyen “type” özelliğidir.
Formun “name” özelliğine dilediğimiz ismi verebiliriz ve bu isim ile gönderilen formu PHP üzerinden çağırırız. Formun type özelliğine ise yazı için “text”, parola için “password”, e-mail için “mail”, sayı için “number” ve buton için ise “button” ya da “submit” özelliğini atayabiliriz. “button” özelliği yalnızca form elementinin buton olarak kullanılmasını sağlar ancak “submit” özelliği formun bu buton aracılığı ile gönderileceğini belirtir.
Bir sayfada POST metodu ile gönderilen veriler $_POST süper global değişkenine aktarılır. Form elementlerini alırken $_POST süper global değişkeninin ilgili “name” değerli elemanlarına erişilerek alınır.
Şimdi örnek olarak form oluşturalım;
1 2 3 4 5 6 7 8 9 |
<form action="" method="POST"> <form action="" method="POST"> Metin <input type="text" name="metinKutusu"/><br/> Parola <input type="password" name="parolaKutusu"/><br/> E-Mail <input type="mail" name="mailKutusu"/><br/> URL Adresi<input type="url" name="urlKutusu"/><br/> Sayı <input type="number" name="sayiKutusu"/><br/> <input type="submit" name="gonder" value="GÖNDER"/> </form> |
Görüldüğü üzere formumuzda sırasıyla metin kutusu, parola kutusu, mail adresi kutusu, url kutusu, sayı kutusu ve son alarak bir de form göndermek için “submit” type değerine sahip butonumuz var. Formumuzu aynı sayfadan alacağımız için formun action özelliğini boş buraktık. Gönderme metodunu ise POST olarak belirledik.
Şimdi form ile gönderdiğimiz verileri almak için PHP kodlarımızı yazalım;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
if($_POST['gonder']){ // Eğer gönder butonuna tıklandıysa /* * name özelliği metinKutusu olan * form elementinin değerini $metin değişkenine aktar */ $metin = $_POST['metinKutusu']; $password = $_POST['parolaKutusu']; $mail = $_POST['mailKutusu']; $url = $_POST['urlKutusu']; $sayi = $_POST['sayiKutusu']; echo $metin; // $metin değişkeni değerini ekrana yazdır echo "<br/>"; // Bir satır aşağı geç echo $password; echo "<br/>"; echo $mail; echo "<br/>"; echo $url; echo "<br/>"; echo $sayi; } |
Yukarıdaki kodlarda görüldüğü üzere gonderilen form elementi değerini $_POST[‘nameDeğeri’] kodu ile aldık ve echo ile ekrana bastırdık.
Bu form ile aşağı açılır listeden seçilen elemanı alacağız. Bu formun kullanım şekli “select” etiketi ile başlar ve etiketin “name” özelliği ile çağrılır. Ardından bu etiket içerisinde “option” etiketleri ile seçenekler sıralanır. Seçilen options seçeneğinin value özelliği değer olarak alınır.
Örnek olarak kullanıcıdan bir şehir seçmesini isteyelim ve seçilen şehiri ekrana yazdıralım:
Select menüsü HTML kodları aşağıdaki gibi olacak;
1 2 3 4 5 6 7 8 9 10 11 12 |
<form action="" method="POST"> Şehir Seçiniz: <select name="dropDown"> <option value="İstanbul">İstanbul</option> <option value="İzmir">İzmir</option> <option value="Antalya">Antalya</option> <option value="Samsun">Samsun</option> <option value="Ankara">Ankara</option> <option value="Giresun">Giresun</option> </select> <input type="submit" name="gonder" value="GÖNDER"/> </form> |
Şimdi kullanıcı tarafından seçilen şehiri alalım ve PHP ile ekrana yazdıralım;
1 2 3 4 |
if($_POST['gonder']){ // Eğer gönder butonuna tıklandıysa $secilen = $_POST['dropDown']; // Seçilen şehiri değişkene ata echo "Seçilen Şehir: ".$secilen; // Değişkeni ekrana yazdır } |
CheckBox (Onay Kutusu) formu ile kullanıcıya tek seçenekli bir onay formu oluşturabiliriz. CheckBox formu input etiketinin type özelliğine “checkbox” değeri verilerek oluşturulur. Form değeri “name” özelliği ile çağırılır. Dönüş değeri “true” ya da “false”dir.
Örnek kullanım:
1 2 3 4 5 6 7 |
<form action="" method="POST"> <form action="" method="POST"> <input type="checkbox" name="secenek1"/> Birinci Seçenek <br/> <input type="checkbox" name="secenek2"/> İkinci Seçenek <br/> <input type="checkbox" name="secenek3" checked="true" /> Üçüncü Seçenek <br/> <input type="submit" name="gonder" value="GÖNDER"/> </form> |
PHP ile gönderilen değeri aşağıdaki gibi alabiliriz;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$secenek1 = $_POST['secenek1']; $secenek2 = $_POST['secenek2']; $secenek3 = $_POST['secenek3']; echo "Birinci Secenek: ".$secenek1; echo "<br/>"; if($secenek2 == true){ echo "İkinci Seçenek Aktif"; } else { echo "İkinci Seçenek Pasif"; } echo "<br/>"; echo "Üçüncü Secenek: ".$secenek3; |
Yukarıda görüldüğü üzere ikinci checkbox değerini if sorgusu ile kontrol ettik. Çünkü checkbox formu bize true ya da false değer döndürür.
Bu form birden fazla seçenek sunulmasına karşın sadece bir seçeneğin seçilmesine izin verir. Yine “input” etiketinin “type” değerine “radio” özelliği atayarak kullanılır.
Örneğin kullanıcının cinsiyetini öğrenmek için bir form oluşturalım;
1 2 3 4 5 6 7 |
<form action="" method="POST"> Cinsiyet Seçiniz <br/> <input type="radio" name="secenek" value="Erkek"/> Erkek <br/> // tüm radio formlarının name özelliği aynı <input type="radio" name="secenek" value="Kadın"/> Kadın <br/> <input type="radio" name="secenek" value="Belirtilmedi" checked="true" /> Belirtilmedi <br/> <input type="submit" name="gonder" value="GÖNDER"/> </form> |
Yukarıdaki HTML kodunda görüldüğü üzere, birbirine bağımlı tüm “radio” özelliğine sahip form elementleri aynı “name” değerini alır.
PHP ile seçilen radio değerini alma;
1 2 |
$secenek = $_POST['secenek']; // seçilen değeri secenek değişkenine ata echo "Seçilen Cinsiyet: ".$secenek; // secenek değişkeni değerini ekrana yazdır |
Teztarea formu çok satırlı metin girdisi formu oluşturmak için kullanılır. Bu form diğerlerinin aksine kendi içerisinde kapanmaz. kapatmak için ayrıca kapatma etiketi kullanılır. Textarea formu da diğer formlar gibi girilen değer “name” özelliğine göre çekilir;
1 2 3 4 5 |
<form action="" method="POST"> Mesaj Girin <br/> <textarea name="girdi"></textarea><br/> <input type="submit" name="gonder" value="GÖNDER"/> </form> |
Textarea form ile gönderilen değeri PHP ile alma;
1 2 |
$metin = $_POST['girdi']; echo $metin; |
Bu dersimizde PHP form elementlerinin basitçe kullanımını ele aldık. Görüldüğü üzere tüm formların içeriklerine “name” özelliği ile eriştik. Yani PHP ile erişilecek HTML formlarının name özelliği kesinlikle girilmelidir. Eğer tüm bu form işlemlerini JavaScript dilinde yapsaydık, tüm formlara “name” özelliği yerine “id” özelliği ile erişecektik.
Yukarıdaki tüm form işlemlerini aynı zamanda GET metodu ile de yapabiliriz.