PHP ile dinamik web siteleri oluştururken form işlemleri büyük bir öneme sahiptir. Kullanıcılardan veri almak, bu verileri işlemek ve gerektiğinde saklamak için HTML formları ile PHP’nin GET ve POST metodları kullanılır.
Bu yazıda, PHP ile form verilerini nasıl alabileceğinizi ve nasıl işleyeceğinizi detaylı bir şekilde öğreneceksiniz.
1. HTML Formları ve PHP ile Veri Gönderme
Bir form, kullanıcının girdiği bilgileri sunucuya göndermek için kullanılır. Form elemanları, kullanıcıdan alınan verileri işler ve PHP’ye gönderir.
📌 Örnek Temel Form
Aşağıdaki formda kullanıcıdan bir isim bilgisi alınıyor ve islem.php sayfasına gönderiliyor.
<form action="islem.php" method="POST">
<label>Adınız:</label>
<input type="text" name="ad"><br><br>
<input type="submit" value="Gönder">
</form>
🔹 action="islem.php"
→ Form verileri islem.php sayfasına gönderilir.
🔹 method="POST"
→ Form verisi POST metodu ile gönderilir.
2. PHP ile Formdan Gelen Veriyi Alma
a) POST Metodu ile Veri Alma
POST metodu, kullanıcının girdiği verileri gizli bir şekilde sunucuya gönderir. URL’de görünmez ve büyük boyutlu veriler için uygundur.
📌 PHP ile POST Verisini İşleme (islem.php)
<?php
echo "Adınız: " . $_POST["ad"];
?>
🚀 Sonuç: Kullanıcı formu doldurup gönderdiğinde, girilen isim ekranda gösterilir.
Önemli Not: Kullanıcı formu boş gönderirse veya doğrudan bu sayfaya erişirse hata alabilirsiniz. Bunu önlemek için
isset
ile kontrol yapmalısınız.
b) GET Metodu ile Veri Alma
GET metodu, verileri URL üzerinden gönderir. Bu yüzden hassas bilgileri GET ile göndermek güvenli değildir. Ancak arama işlemleri, filtreleme gibi durumlarda kullanılabilir.
📌 GET Metodu ile Form Verisi Gönderme
<form action="islem.php" method="GET">
<label>Adınız:</label>
<input type="text" name="ad"><br><br>
<input type="submit" value="Gönder">
</form>
📌 GET Verisini PHP ile Alma (islem.php)
<?php
echo "Adınız: " . $_GET["ad"];
?>
🚀 Sonuç: Kullanıcı formu doldurduğunda, isim bilgisi URL’de görünür şekilde gönderilir.
Örneğin, kullanıcı “Ali” ismini girdiğinde, URL şu şekilde olur:
islem.php?ad=Ali
GET Metodunun Avantajları ve Dezavantajları
✅ Avantajlar:
✔ URL üzerinden veri taşındığı için sayfa yenilendiğinde veri kaybolmaz.
✔ Kullanıcılar, URL’yi kopyalayarak doğrudan belirli sayfalara yönlendirebilir.
❌ Dezavantajlar:
✖ Veriler URL’de göründüğü için güvenli değildir.
✖ Sadece kısa veriler gönderilebilir.
3. PHP’de Form Verilerini Kontrol Etmek ve Güvenli Kullanım
Formlardan gelen veriler doğrudan kullanılmamalıdır. Kullanıcılar yanlış veya zararlı veri gönderebilir. Bunun önüne geçmek için kontroller eklemeliyiz.
📌 Daha Güvenli Veri Kontrolü
<?php
if (isset($_POST["ad"]) && !empty($_POST["ad"])) {
echo "Adınız: " . $_POST["ad"];
} else {
echo "Lütfen isminizi girin!";
}
?>
📌 Önerilen Güvenlik Önlemleri
🔹 Boş veri kontrolü: empty($_POST["ad"])
🔹 HTML etiketlerini engellemek: htmlspecialchars($_POST["ad"])
🔹 Boşlukları temizlemek: trim($_POST["ad"])
Daha güvenli bir kullanım için şu kodu uygulayabilirsiniz:
<?php
if (isset($_POST["ad"]) && !empty($_POST["ad"])) {
$ad = trim(htmlspecialchars($_POST["ad"]));
echo "Adınız: " . $ad;
} else {
echo "Lütfen isminizi girin!";
}
?>
🚀 Bunun Faydaları:
✅ Boş bırakılan alanları kontrol eder.
✅ Kötü amaçlı HTML ve JavaScript kodlarını filtreler.
✅ Başında veya sonunda gereksiz boşlukları temizler.
4. POST ve GET Arasındaki Farklar
Özellik | POST | GET |
---|---|---|
Veri gönderme şekli | Arka planda (gizli) | URL üzerinden (açık) |
Güvenlik | Daha güvenli | Hassas veriler için güvenli değil |
Veri boyutu | Büyük veriler için uygun | Küçük veriler için uygun |
Sayfa yenileme sonrası | Veri kaybolur | Veri URL’de kaldığı için korunur |
Kullanım alanları | Form verileri, giriş işlemleri | Arama sorguları, sayfa filtreleme |