Form Kullanımı

PHP'nin en güçlü özelliklerinden biri HTML formlarına yaklaşım biçimidir. Bilinmesi gereken ilk önemli durum, form içindeki tüm elemanların PHP tarafından otomatik olarak kullanılabilir olacağıdır. PHP ile formların kullanımı ve daha ayrıntılı bilgi için Dış kaynaklı değişkenler bölümü okunabilir. Örnek HTML formu:

Örnek 1 - Örnek HTML formu

<form action="action.php" method="post"> <label for="name">İsminiz:</label> <input name="name" id="name" type="text"> <label for="age">Yaşınız:</label> <input name="age" id="age" type="number"> <button type="submit">Gönder</button> </form>

Bu formda özel hiçbir şey yoktur. Hiçbir özel etiket içermeyen düz bir HTML formudur. Kullanıcı formu doldurup 'Gönder' tuşuna bastığında, action.php sayfası çağrılır. Bu dosyaya aşağıdakiler yazılabilir:

Örnek 2 - Formdan veri yazdırmak

Merhaba <?php echo htmlspecialchars($_POST['name']); ?>.
Siz <?php echo (int)$_POST['age']; ?> yaşındasınız.

Bu betikten elde edilecek örnek çıktı:

 Merhaba Ahmet. Siz 22 yaşındasınız. 

htmlspecialchars() ve (int) kısımları haricinde yapılan iş oldukça açıktır. htmlspecialchars() işlevi HTML'ye özel karakterlerin doğru şekilde kodlandığından emin olunmasını sağlar, dolayısıyla başkaları sayfanıza dışardan HTML etiketleri veya Javascript yerleştiremez. Yaş alanınında ise değerin bir tamsayı olması gerektiği bilindiğinden değerin int türüne dönüştürülmesiyle otomatik olarak bu alana girilmesi olası başı boş karakterlerden de kurtulmuş olunmaktadır. Ayrıca, bunun PHP'de otomatik olarak yapılmasını sağlamak için süzgeç eklentisi de kullanılabilirdi. $_POST['isim'] değişkeni ve $_POST['yaş'] değişkenleri PHP tarafından otomatik olarak oluşturulur. Daha önce $_SERVER süper küresel değişkeni kullanılmıştı, yukarıda ise tüm POST verisini içeren $_POST süper küresel değişkeni tanıtıldı. Formda tanımlı yöntemin POST oluşuna dikkat edilmelidir. GET yöntemi kullanılmış olsaydı, form bilgileri $_GET süper küresel değişkenine atanmış olacaktı. Bunların haricinde, istemciden gelen verinin hangi kaynaktan geldiği önemli değilse $_REQUEST süper küreseli de kullanılabilirdi. Bu değişken GET, POST ve COOKIE verilerinin birleşiminden oluşur.

PHP içinde XForms öğeleri de kullanılabilir, ancak başlangıç aşamasında çok iyi desteklenen HTML formları iş görecektir. XForms ile çalışmak yeni başlayanlar için uygun olmasa da, ilginç olabilir. XForms ile çalışmak belgesinde bu konu ile ilgili daha fazla bilgi bulunabilir.

To Top