Selamlar..
Bu derste Php ile form verilerini nasıl alabiliriz ona bakalım... Bildiğiniz gibi form verileri iki şekilde gönderilebilir.. POST ve GET metodları.. Daha güvenli olduğu için , form verilerini gönderirken POST metodunu tercih ediyoruz.
Formu nereye göndereceğimiz konusunda ise bir kaç yolumuz var...
Aynı sayfada işlemleri yapmak ekstra bir sayfa hazırlamadığımız için biraz daha pratik bir yol olacaktır. Tabi nasıl bir uygulama hazırladığımız ile ilgili olarak tercih değişebilir. Burada sadece basitçe form verilerini alacağımız için aynı sayfada işemin yapılmasını göstereceğim.
Öncelikle formumuzu hazırlayalım vs sayfayı phpform.php ismiyle kaydedelim..
<form action="" method="post">
Adınız Soyadınız
<input type="text" name="adsoyad"> <br>
Mail adresiniz
<input type="mail" name="mail"> <br>
Cİnsiyet
<input type="radio" name="cinsiyet" value="bay">Bay
<input type="radio" name="cinsiyet" value="bayan"> Bayan <br>
Şehir
<select name="sehir">
<option value="izmir">İzmir</option>
<option value="istanbul">İstanbul</option>
<option value="ankara">Ankara</option>
</select><br>
İlgi Alanı
<input type="checkbox" name="html" value="html"> Html
<input type="checkbox" name="css" value="css"> Css
<input type="checkbox" name="js" value="js"> Javascript
<input type="checkbox" name="php" value="php"> Php
<br><br>
<button type="submit"> Gönder</button> <br><br>
</form>
Formu hazırlarken tüm elemanların "name" parametrelerini belirtiyoruz. Çünkü, Php ile verileri alabilmemiz için , hangi verinin nereden geldiğni bilmemiz ve belirtmemiz gerekiyor. Ayrıca Form verilerinin gönderilmesi için kullanılacak metodu POST olarak belirledik. Böylece veriler gönderilirken tarayıcı adres çubuğunda görünmeyecektir.
Formun "action" parametresini ise dikkat ederseniz "" boş bıraktık. Action parametresinde , eğer herhangi bir sayfa belirtilmez ise form aynı sayfaya yönlendirilmiş olur. Dolayısıyla Php ile sayfa başında POST işleminin gerçekleşip gerçekleşmediğini kontrol ederek formdaki verileri alabilriiz..
Hadi bakalım..
<?php
if($_POST) { // "POST" işlemi var mı, olmuş mu?
echo "<h3> BİLGİLER GELDİ </h3>";
// verilerin alınması
$adsoyad=$_POST["adsoyad"]; // formdan gelen adsoyad değeri
$mail=$_POST["mail"]; // formdan gelen mail değeri
$cinsiyet=$_POST["cinsiyet"]; // formdan gelen cinsiyet değeri
$sehir=$_POST["sehir"]; // formdan gelen sehir değeri
$ilgi=""; //ilgi alanlarıiçin ilk değer
// checkbox kontrolleri
if ( isset($_POST["html"]) ) { $ilgi.=$_POST["html"]." "; }
if ( isset($_POST["css"]) ) { $ilgi.=$_POST["css"]." "; }
if ( isset($_POST["js"]) ) { $ilgi.=$_POST["js"]." "; }
if ( isset($_POST["php"]) ) { $ilgi.=$_POST["php"]." ";}
/*seçilen ilgi aanı varsa , değeri bir boşlukla beraber
ilgi değişkenine ekleniyor*/
// bilgilerin yazdırılması
echo "<b>Girilen Ad Soyad : </b>".$adsoyad."<br>";
echo "<b>Girilen Mail : </b>".$mail."<br>";
echo "<b>Seçilen cinsiyet : </b>".$cinsiyet."<br>";
echo "<b>Seçilen sehir : </b>".$sehir."<br>";
echo "<b>Seçilen İlgi Alanları : </b>".$ilgi."<br>";
}
else {
echo "<h3> HENÜZ GÖNDERİLEN BİLGİ YOK! </h3>";
}
?>
Öncelikle yukarıdada belirttiğim gibi , POST işleminin olup olmadığını kontrol ediyoruz. Tabi sayfada tek bir formumuz olduğu için tek bir yerden POST işlemi olabiliyor. Birden fazla formumuz olduğnda o formuda belirtmek zorunda olacağız. Bu arada bu kodları nereye ekleyeceğiz diye endişelenmeyin. Yukarıdaki önizlemeden de belli olduğu gibi form'dan hemen sonra ekleyebilirsiniz.
if($_POST) { // "POST" işlemi var mı, olmuş mu?
.
.
.
.
}
else {
echo "<h3> HENÜZ GÖNDERİLEN BİLGİ YOK! </h3>";
}
POST işlemi var ise php kodlarının çalışması için if bloğu kullandık. POST var ise bilgiler gösteriliyor, yok ise gönderilen bilgi yok mesajı veriliyor. Daha sonra form verilerini, tek tek form elemanlarının name parametrelerini kullanarak aldık. Örneğin ad ve soyadın yazıldığı textbox'ın name değeri adsoyad olduğu için POST ön eki ile bu değeri $adsoyad değişkenine aktardık.
// verilerin alınması
$adsoyad=$_POST["adsoyad"]; // formdan gelen adsoyad değeri
$mail=$_POST["mail"]; // formdan gelen mail değeri
$cinsiyet=$_POST["cinsiyet"]; // formdan gelen cinsiyet değeri
$sehir=$_POST["sehir"]; // formdan gelen sehir değeri
$ilgi=""; //ilgi alanlarıiçin ilk değer
Benzer işlemi , mail,cinsiyet ve şehir içinde kendi değişkenlerine alarak uyguladık.
İlgi alanları için ise bir kontrol kullanmamız gerekiyor. Eğer checkbox seçili ise o ceheck box'ın POST işlemi gerçekleşmiş olur. Dolayısıyla bunu kontrol ederek işaretlenen check box değerini, (HTML,CSS,JS,PHP) ilgi değişkenine ".=" operatörü ile ekledik. Eğer herhangi bir ilgi alanı seçilmez ise , ilgi değişkeninin boş kalmasi ve scriptin hata vermemesi için ,ilk değerini "" boş olarak atadık Sonuçta ilgi alanları seçildikçe, ilgi değişkeninde aralarında bir boşluk olacak şekilde yazılmış oldu.
if ( isset($_POST["html"]) ) { $ilgi.=$_POST["html"]." "; }
if ( isset($_POST["css"]) ) { $ilgi.=$_POST["css"]." "; }
if ( isset($_POST["js"]) ) { $ilgi.=$_POST["js"]." "; }
if ( isset($_POST["php"]) ) { $ilgi.=$_POST["php"]." ";}
Seçilen ilgi alanlarını da aldığımıza göre artık gelen verileri ekranda yazdırabiliriz.. Bunun için echo komutu içerisnde "<br>" satır atlayıcı işaretleri de ekleyerek metin.değişken birleşimini kullanabiliriz.
echo "<b>Girilen Ad Soyad : </b>".$adsoyad."<br>";
echo "<b>Girilen Mail : </b>".$mail."<br>";
echo "<b>Seçilen cinsiyet : </b>".$cinsiyet."<br>";
echo "<b>Seçilen sehir : </b>".$sehir."<br>";
echo "<b>Seçilen İlgi Alanları : </b>".$ilgi."<br>";
Böylece form verilerini PHP alıp ekranda yazdırmış olduk. Verileri alabildikten sonra , istersek veri tabanına kayıt ettirebilir istersek üzerlerinde dilediğimiz işlemleri gerçekleştirebiliriz. Ben burada başta da dediğim gbi aynı sayfada verileri almayı gösterdim. Ancak PHP kodlarını bir başka sayfada yazıp , aşağıdaki gibi formu orayada gönderebilirdik...
<form action="goster.php" method="post">
Yapmamız gereken burada yazdığımız PHP kodlarını goster.php sayfası içerisinde yazmamız olacaktı..
Görüşmek üzere..
Toplam 33 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.