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.