Ankara Üniversitesi
Nallıhan Meslek Yüksekokulu
PHP formlar
NB P238 İL E R I W E B PR OGR AML AMA ÖĞR . GÖR . DR . UFUK T ANYE R I
PHP Form İşleme
PHP, Form verilerini toplamak için superglobals olarak adlandırılan $ _GET ve $ _POST kullanılır.
Aşağıdaki örnekte iki giriş alanı ve bir gönderme düğmesi bulunan basit bir HTML formu gösterilmektedir:
<form action="index.php" method="post">
Adı: <input type="text" name="name"><br>
E-posta: <input type="text" name="email"><br>
<input type="submit">
</form>
Gönderilen verileri görüntülemek için tüm değişkenleri tekrarlayabilirsiniz. "index.php" şöyle görünür:
<html>
<body>
Hoşgeldin <?php echo $_POST["name"]; ?><br>
E-posta adresin: <?php echo $_POST["email"]; ?>
</body>
</html>
Güvenlik
PHP formlarını işlerken GÜVENLİK düşünün!
Verilen örnekler herhangi bir form doğrulaması içermiyor, sadece form verilerini nasıl gönderip alabileceğinizi gösteriyor.
Form verilerinin doğru bir şekilde doğrulanması, formunuzu bilgisayar korsanlarından ve spam
göndericilerinden korumak için önemlidir!
POST'a karşılık GET
Hem GET hem de POST bir dizi oluşturur (örneğin dizi (anahtar1 => değer1, anahtar2 =>
değer2, anahtar3 => değer3, ...)). Bu dizi anahtar / değer çiftlerini içerir; burada anahtarlar form denetimlerinin adlarıdır ve değerler kullanıcıdan girdi verileridir.
Hem GET hem de POST, $ _GET ve $ _POST olarak değerlendirilir. Bunlar süper küreseller, yani kapsamdan bağımsız olarak her zaman erişilebilir oldukları anlamına gelir ve özel bir şey yapmadan herhangi bir işlev, sınıf veya dosyadan bunlara erişebilirsiniz.
$ _GET, geçerli komut dosyasına URL parametreleri aracılığıyla iletilen bir değişkenler dizisidir.
POST, GET ne zaman kullanılır?
GET yöntemiyle bir formdan gönderilen bilgiler herkes tarafından görülebilir (tüm değişken
adları ve değerler URL'de görüntülenir). GET'in gönderilecek bilgi miktarı konusunda da sınırları vardır. Sınırlama yaklaşık 2000 karakterdir. Ancak, değişkenler URL'de görüntülendiğinden
sayfaya yer işareti koymak mümkündür. Bu, bazı durumlarda yararlı olabilir.
POST yöntemiyle bir formdan gönderilen bilgiler başkaları tarafından görülemez (tüm adlar / değerler HTTP isteğinin gövdesine gömülür) ve gönderilecek bilgi miktarı üzerinde herhangi bir sınırlama yoktur. Ayrıca POST, dosyaları sunucuya yüklerken çok parçalı ikili giriş desteği gibi gelişmiş işlevleri destekler. Ancak, değişkenler URL'de gösterilmediğinden sayfaya yer imi
koymak mümkün değildir.
PHP Form Doğrulaması
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
$ _SERVER ["PHP_SELF"] şu anda yürütülen komut dosyasının dosya adını döndüren süper genel bir değişkendir.
Bu nedenle, $ _SERVER ["PHP_SELF"] gönderilen form verilerini farklı bir sayfaya atlamak yerine sayfanın kendisine gönderir. Bu şekilde, kullanıcı formla aynı sayfada hata mesajları alır.
htmlspecialchars() işlevi, özel karakterleri HTML öğelerine dönüştürür. Bu, ‘<’ ve ‘>’ gibi
HTML karakterlerinin < ve > ile değiştirileceği anlamına gelir. Bu, formlara HTML veya
Javascript kodu (Siteler Arası Komut Dosyası saldırıları) enjekte ederek saldırganların kodu
kullanmasını önler.
Üyelik Formu – sahibinden.com örneği
Açık dersin ilgili haftasında, yandaki üyelik formunun kodu bulunmaktadır.