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.