webmaster
 
Konu Kilitli
30-11-2007 18:54:12
 

PHP ve Formlar

PHP ve Formlar


Hepimiz değilse bile çoğumuz önce Frontpage veya Dreamweaver benzeri bir editor kullandık, herşey iyi güzel giderken iş form koyma, form ile ziyaretçiden bilgi alma işlemine gelince takılıp kalmışızdır. Çünkü statik HTML sayfaları ile formu oluşturabilir fakat daha ilerisine gidemezsiniz. Artık buradan sonrasını server taraflı bir script diline teslim etmemiz gerekiyor. Mesela PHP.
Bir HTML formuna göz atalım;


<form action=form.php method=GET>Adınız : <input type="text" name=ad size=10><br>Soyadınız : <input type="text" name=soyad size=10><br><input type="submit" value=" Gönder "></form>

Basitçe sadece ad ve soyad girilen bu form aslında temel form özelliklerinin hepsini kullanıyor. Form etiketine dikkat edelim :
"action=form.php" : Evet bahsettiğimiz gibi artık HTML devredışı kalacak ve form içeriği işlenmek için server taraflı bir programa gönderilecek. İşte form içinde ki action özelliği gönderilecek progamın yerini belirtmeye yarar. Mesela şu da geçerli bir atamadır: action="http://www.ceviz.net/form.php" veya action="../form.php" gibi...



"method=GET" : Burada formun hangi metod kullanılarak gönderileceği belirtiliyor. İki seçeneğiniz var -aslında iki değil ama genelde sadece ikisi kullanılıyor- : GET veya POST. Bunlardan herhangi birisini seçebilirsiniz, GET veya POST ile veri göndermenin farklarını yazmak uzun olacağından ve bu yazının ötesinde bi şey olduğundan sadece şunu diyelim :
GET ile gönderilen form verileri, adres satırına eklenir. POST ile gönderilenler ise adres satırında görünmez. GET, POST yöntemine göre biraz daha kısıtlı bir metoddur. Herneyse...

Form içinde bilgileri göndermemize yarayan etiketler ise input etiketleridir. Input'lar dışında select etiketleride bu işe yararlar. input etiketi tanımlarken dikkat etmemiz gereken nokta name özelliğidir. input veya select için name özelliği , formu işleyecek olan PHP scriptinde ziyaretçinin girdiği değerleri almak için otomatik oluşacak değişkenleri belirlediği için önemlidir. Neyse fazla soyut tutmadan bir örnekle daha iyi anlayalım :
Form.html dosyamız da şu kodlar olsun :



<html><body><form action=form.php method=GET>Adınız : <input type="text" name=ad size=10><br>Soyadınız : <input type="text" name=soyad size=10><br><input type="submit" value=" Gönder "></form> </body></html>



Bu da formu işleyecek olan form.php dosyamız :


<?$ad = $HTTP_GET_VARS["ad"];$soyad = $HTTP_GET_VARS["soyad"];echo "Adınız : $ad <br> Soyadınız : $soyad"; ?>


Ne? Çok mu kısa? Evet çok kısa, çünkü sadece formdan gelen değerleri aldık, ama onları işlemedik, sadece ekrana yazdırdık. Formdan gelen verileri aldıktan sonra artık onları ister veritabanına yazdırır, ister e-mail olarak gönderir, isterseniz hiç umursamazsınız, seçim sizin. Herneyse eğer form POST ile gönderilseydi :



<?$ad = $HTTP_POST_VARS["ad"];$soyad = $HTTP_POST_VARS["soyad"];?>


Oldukça basit değil mi? Buraya kadar formdan verileri almanın PHP ile ne kadar kolay olduğunu gördük, şimdi bir iki noktaya dikkat ederek, bu işi hatasız ve mükemmel bir hale getirebilirsiniz.
1- PHP'nin en güzel, güzel olduğu kadar dikkat gerektiren özelliklerinden birisi de 'track_vars' dır. Yani POST, GET ile gönderilen veriler, COOKIE değişkenleri, SESSION değişkenleri oluşturulduğunda PHP motoru bunların her birisi için aynı isimde bir değişkeni otomatik oluşturur. Mesela;



<?//formda <input type=text name=ad"gt; şeklinde gönderilen bir veri için //$ad değişkeni otomatik olarak oluşturulur.echo "Adınız : $ad";//veya echo "Soyadınız : $soyad";?>


Ama bu kullanım biraz dikkat gerektirdiği ve güvenlik açıkları verebilme ihtimalinden dolayı birinci yol daha kullanışlıdır.

2- Ziyaretçi formun gönder tuşuna tıkladığında elbette form üzerinde boş alanlar bırakılmış olabilir(veya bilerek yapmış olabilir). Bu durumda;



<?$ad = $HTTP_GET_VARS["ad"];?>

kod parçası hata verecektir. PHP size HTTP_GET_VARS dizisinde ad isimli bir indisin olmadığını söyler. Çünkü formda ad isimli input boş bırakıldığı zaman PHP sayfasına bu değişken aktarılmaz ve dolayısıyla olmayan indis hatası verilir. Bunu engellemek için PHP ile kontroller koyabilirsiniz.



<?// @ işareti bu satırda hata varsa, gözardı edilmesini sağlar $ad = @$HTTP_GET_VARS["ad"];if ($ad=="") {die ("Form alanlarından birisi boş bırakılmış...");}?>



Şimdilik formlar üzerine söyleyeceklerim bu kadar, tabii ki daha çok şeyler var ama siz kendi formlarınızı oluşturup deneyerek bunların hepsinin üstesinden gelebilirsiniz.

Bir önceki yazı Döngüler(asp) hakkında bilgi vermektedir.

Konu Kilitli

"PHP ve Formlar" konusu hakkında etiketler
action alanlar alma artik bilgi birakildiginda bos cekme degeri degerlerini degisken diziye dreamweaver editor for form formda formdaki formdan formlar formunda geldiginde gelen get girilen gonderileni gonderme gorunmeden hata ile ine input kodlari konusu koyma koymadan kullanilmiyor method ozgi ozkleri php post program sayfaya ses session siteye textbox textboxtan tutma vars veren veri verileri verilerin veriyi versin yazdirmak

Döngüler(asp) Önceki | Sonraki Standart :: PHP konusunda temel bilgiler




Saat: 09:13 - Webmaster Forumu - Rss - Arşiv
İletişim Bilgileri, Contact Us, Kullanım Sözleşmesi, Gizlilik