7 Mayıs 2015 Perşembe

PHP ile HTML Formlarından Gelen Bilgileri Almak

PHP vb. internet tabanlı programlama dillerinin en güçlü yanı kullanıcıların bir web formuna girdikleri değerleri elde edip kullanabilmeleridir. Örneğin yapacağınız bir siteye kullanıcıların üye formunu doldurması gerekmektedir veya kullanıcı sitenizden belirli bir ürünü satın almak için ödeme ve teslimat bilgilerini girmelidir. ASP.Net’in aksine PHP’nin kendi form kontrolleri bulunmamakta fakat bu bir eksi yön değil tam tersi biz programcılara web tasarım için daha geniş bir alan bırakıyor böylece HTML ve CSS ile çok daha zengin ve işlevsel formlar oluşturabiliriz.

Bu yazının amacı HTML ile form oluşturmak değil bu konuda çok sayıda bilgi bulabilirsiniz. Ben bu yazıda bir HTML formdan gelen bilgileri elde etmeyi anlatacağım.


Kullanıcıdan ad, soyad, yaş ve cinsiyet bilgilerini alıp görüntüleyen bir formu form.html ismiyle oluşturalım.
Bir HTML form oluştururken öncelikle formumuzu <form> ... </form> etiketleri arasında oluşturmalıyız. <form> etiketinin name(isim), action(eylem) ve method(metot) olmak üzere üç önemli parametresi bulunmaktadır. Name forum adıdır bazı web sayfalarında birden fazla form bulunabilir bu durumda hangi formdan değer aldığınızı kontrol edebilirsiniz. Action yeni eylem kullanıcı formu doldurup kaydet/onayla vb. butona bastığında bu formda girilen verilerin hangi dosya tarafından işleneceğini belirtir ve bu bizim PHP sayfamız olacaktır. Method tüm HTML sayfalarda GET veya POST olmak üzere iki değerden birisidir.

GET: GET metoduyla veriler URL adresi üzerinden taşınır güvenlik nedeniyle pek tercih edilmez.

POST: Güvenlik sebebiyle daha çok tercih edilen yöntemdir.

Biz öncelikle get metodunu kullanacağız.

Formu oluştururken her nesnenin (text, radio) özel bir ismi olduğuna dikkat edin çünkü değerleri alırken nesne isimlerini kullanacağız.

Kullanıcı formu doldurup Kaydet başlıklı submit butonuna bastığında form girilen verilerle birlikte işlemlerin yapılması için action parametresiyle belirtilen php/asp/aspnet vb. ile yazılmış sayfaya yönlendirilir.
Resimde de görüldüğü gibi get metodu ile HTML formdan formisle.php sayfasına değer taşırken URL adresi kullanılıyor.

Aslında get metodu ile veri taşımada kullanılan yöntem bellidir:

Sayfa_adi.php?nesne1=değer1& nesne2=değer2& nesne3=değer3&…

Şeklinde bir URL adresi oluşur. Bu yöntem pratik olmasına rağmen kullanıcı adı ve şifre gibi kritik değerlerin taşınması için tercih edilmeyen bir yöntemdir. Mutlaka get metodu kullanılacaksa da kritik değerlerin şifrelenip kullanılması daha doğru olur!

Şimdi formisle.php sayfamızı oluşturalım ve örneğimizi tamamlayalım.
Formdan gelen verileri değişkenlere aktarırken get metodunu kullandığımız için $_GET[“nesne adı”] ile gelen değeri elde ediyoruz. Eğer post metodunu kullanmış olsaydık $_POST[“nesne adı“] şeklinde kullanacaktık.

Burada belirtmek istediğim bir diğer nokta if ile yaptığımız kontroldür. Acaba kullanıcı formu doldurup Kaydet butonuna basarak mı formisle.php sayfasına gitti yoksa tarayıcının adres satırına formisle.php sayfasının yolunu yazarak mı sayfaya ulaştı! Eğer ikinci yöntem yapıldıysa formdan gelen bir değer olmayacaktır ve sayfamız hata verecektir! Bunun önüne geçmek için if (isset($_GET["ad"])) ifadesi ile ad alanının değerinin olup olmadığına bakıyoruz eğer ad alanının değeri varsa form doldurulmuş gibi düşünüyoruz.