PHP Form İşleme
PHP süper küreselleri $_GET ve $_POST, form verilerini toplamak için kullanılır.
PHP - Basit Bir HTML Formu
Aşağıdaki örnek, iki giriş alanı ve bir gönder düğmesi içeren basit bir HTML formu görüntüler:
Örnek
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Kullanıcı yukarıdaki formu doldurup gönder düğmesine tıkladığında, form verileri işlenmek üzere "welcome.php" adlı bir PHP dosyasına gönderilir. Form verileri HTTP POST yöntemiyle gönderilir.
Gönderilen verileri görüntülemek için tüm değişkenleri yankılayabilirsiniz. "welcome.php" şöyle görünür:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Çıktı şöyle bir şey olabilir:
Welcome John
Your email address is [email protected]
Aynı sonuç, HTTP GET yöntemi kullanılarak da elde edilebilir:
Örnek
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
ve "welcome_get.php" şöyle görünür:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
Yukarıdaki kod oldukça basittir. Ancak, en önemli şey eksik. Komut dosyanızı kötü amaçlı kodlardan korumak için form verilerini doğrulamanız gerekir.
PHP formlarını işlerken GÜVENLİK düşünün!
Bu sayfa herhangi bir form doğrulaması içermez, sadece form verilerini nasıl gönderip alabileceğinizi gösterir.
Ancak sonraki sayfalar, PHP formlarının güvenlik göz önünde bulundurularak nasıl işleneceğini gösterecek! Form verilerinin doğru şekilde doğrulanması, formunuzu bilgisayar korsanlarından ve spam göndericilerden korumak için önemlidir!
GET ve POST
Hem GET hem de POST bir dizi oluşturur (örn. dizi( anahtar1 => değer1, anahtar2 => değer2, anahtar3 => değer3, ...)). Bu dizi, anahtar/değer çiftlerini tutar; burada anahtarlar, form kontrollerinin adlarıdır ve değerler, kullanıcıdan gelen girdi verileridir.
Hem GET hem de POST, $_GET ve $_POST olarak değerlendirilir. Bunlar süper küresellerdir, yani kapsamdan bağımsız olarak her zaman erişilebilir durumdadırlar - ve bunlara herhangi bir işlev, sınıf veya dosyadan özel bir şey yapmanıza gerek kalmadan erişebilirsiniz.
$_GET, URL parametreleri aracılığıyla geçerli komut dosyasına iletilen bir değişkenler dizisidir.
$_POST, HTTP POST yöntemi aracılığıyla geçerli komut dosyasına iletilen bir değişkenler dizisidir.
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ğerleri URL'de görüntülenir). GET'in ayrıca 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 faydalı olabilir.
GET, hassas olmayan verileri göndermek için kullanılabilir.
Not: GET, şifreleri veya diğer hassas bilgileri göndermek için ASLA kullanılmamalıdır!
POST ne zaman kullanılır?
POST yöntemiyle bir formdan gönderilen bilgiler başkaları tarafından görülmez (tüm adlar/değerler HTTP isteğinin gövdesine gömülüdür) ve gönderilecek bilgi miktarında 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örüntülenmediği için sayfaya yer işareti koymak mümkün değildir.
Geliştiriciler, form verilerini göndermek için POST'u tercih eder.
Şimdi PHP formlarını güvenli bir şekilde nasıl işleyebileceğimizi görelim!