PHP Formları
PHP Formları, web uygulamalarında kullanıcıdan veri almak, işlemek ve güvenli bir şekilde saklamak için kullanılan temel bir yapı taşını temsil eder. Formlar, kayıt işlemleri, giriş ekranları, yorumlar, anketler ve diğer kullanıcı etkileşimli sistemler için vazgeçilmezdir. PHP, $_POST, $_GET ve $_REQUEST gibi süper global diziler aracılığıyla form verilerini yakalamayı kolaylaştırır ve verilerin doğrulanması, temizlenmesi ve işlenmesi için güçlü fonksiyonlar sunar.
Gelişmiş PHP uygulamalarında form yönetimi sadece veri toplamakla sınırlı değildir; aynı zamanda veri doğrulama algoritmaları, uygun veri yapıları kullanımı ve OOP prensipleri ile kodun modüler ve sürdürülebilir olmasını sağlar. Form güvenliği kritik bir konudur; SQL enjeksiyonları, XSS ve CSRF gibi saldırılara karşı önlem almak gerekir. Bu eğitimde, PHP Formları kullanarak güvenli, optimize ve yeniden kullanılabilir formlar oluşturmayı öğreneceksiniz.
Okuyucu, form verilerini yakalama, doğrulama, sanitizasyon, OOP ile form yönetimi ve hata yönetimi gibi ileri seviye konuları öğrenerek, gerçek dünya PHP projelerinde form işlemlerini güvenli ve etkili bir şekilde uygulayabilecek seviyeye ulaşacaktır.
Temel Örnek
php<?php
// Temel bir PHP Formu örneği
$isim = $email = "";
$isimHata = $emailHata = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// İsim doğrulaması
if (empty($_POST["isim"])) {
$isimHata = "İsim zorunludur";
} else {
$isim = htmlspecialchars(trim($_POST["isim"]));
}
// Email doğrulaması
if (empty($_POST["email"])) {
$emailHata = "E-mail zorunludur";
} elseif (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) {
$emailHata = "Geçersiz e-mail formatı";
} else {
$email = htmlspecialchars(trim($_POST["email"]));
}
// Hata yoksa verileri göster
if (empty($isimHata) && empty($emailHata)) {
echo "Form başarıyla gönderildi.<br>";
echo "İsim: $isim<br>E-mail: $email";
}
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
İsim: <input type="text" name="isim" value="<?php echo $isim; ?>">
<span><?php echo $isimHata; ?></span><br><br>
E-mail: <input type="text" name="email" value="<?php echo $email; ?>">
<span><?php echo $emailHata; ?></span><br><br>
<input type="submit" value="Gönder">
</form>
Bu temel örnekte $isim ve $email değişkenleri kullanıcı girdisini tutar, $isimHata ve $emailHata ise hata mesajlarını içerir. $_SERVER["REQUEST_METHOD"] ile formun POST ile gönderildiği kontrol edilir. trim fonksiyonu boşlukları temizlerken, htmlspecialchars fonksiyonu XSS saldırılarına karşı koruma sağlar. filter_var fonksiyonu ise e-mail formatını doğrular. Bu yapı, form verilerini yakalama, doğrulama, sanitizasyon ve hata yönetimi konularını kapsamlı bir şekilde gösterir.
Pratik Örnek
php<?php
// OOP ile gelişmiş form yönetimi
class Form {
private $veri = [];
private $hatalar = [];
public function __construct($postData) {
$this->veri = $postData;
}
public function temizle($alan) {
return htmlspecialchars(trim($this->veri[$alan] ?? ""));
}
public function dogrulaIsim() {
$isim = $this->temizle("isim");
if (empty($isim)) {
$this->hatalar["isim"] = "İsim zorunludur";
}
return $isim;
}
public function dogrulaEmail() {
$email = $this->temizle("email");
if (empty($email)) {
$this->hatalar["email"] = "E-mail zorunludur";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$this->hatalar["email"] = "Geçersiz e-mail formatı";
}
return $email;
}
public function gecerliMi() {
return empty($this->hatalar);
}
public function hatalariAl() {
return $this->hatalar;
}
}
$form = new Form($_POST ?? []);
$isim = $email = "";
$hatalar = [];
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$isim = $form->dogrulaIsim();
$email = $form->dogrulaEmail();
$hatalar = $form->hatalariAl();
if ($form->gecerliMi()) {
echo "Form başarıyla gönderildi.<br>";
echo "İsim: $isim<br>E-mail: $email";
}
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
İsim: <input type="text" name="isim" value="<?php echo $isim; ?>">
<span><?php echo $hatalar["isim"] ?? ""; ?></span><br><br>
E-mail: <input type="text" name="email" value="<?php echo $email; ?>">
<span><?php echo $hatalar["email"] ?? ""; ?></span><br><br>
<input type="submit" value="Gönder">
</form>
Bu pratik örnek, OOP kullanarak form yönetimini gösterir. Form sınıfı, temizleme, doğrulama ve hata yönetimini kapsüller. temizle metodu XSS koruması sağlar, dogrulaIsim ve dogrulaEmail doğrulama kurallarını uygular, gecerliMi metodu hata olup olmadığını kontrol eder ve hatalariAl metodu hata mesajlarını döndürür. Bu yaklaşım, kodun yeniden kullanılabilirliğini, bakımını ve güvenliğini artırır.
PHP Formlarında en iyi uygulamalar; kodun temiz ve yapılandırılmış olması, veri doğrulama ve sanitizasyon, OOP kullanımı ve algoritmaların verimli olmasıdır. Kaçınılması gereken hatalar; bellek sızıntıları, yetersiz hata yönetimi ve gereksiz döngülerdir. Hata ayıklama için logging ve error_reporting aktif edilmeli; performans için gereksiz veri tabanı sorguları ve tekrar eden işlemler azaltılmalıdır. Güvenlik için giriş verileri her zaman temizlenmeli, prepared statements kullanılmalı ve CSRF koruması sağlanmalıdır. Bu uygulamalar sayesinde form işlemleri güvenli ve verimli olur.
📊 Referans Tablosu
PHP Element/Concept | Description | Usage Example |
---|---|---|
$_POST | POST ile gönderilen verileri tutan süper global | $isim = $_POST['isim']; |
$_GET | GET ile gönderilen verileri tutan süper global | $id = $_GET['id']; |
htmlspecialchars() | Veriyi sanitize ederek XSS engeller | $güvenli = htmlspecialchars($input); |
filter_var() | Veri doğrulama | if(filter_var($email, FILTER_VALIDATE_EMAIL)) {...} |
trim() | Boşlukları temizler | $temiz = trim($input); |
Form Sınıfı | OOP ile form yönetimi | $form = new Form($_POST); |
PHP Formları konusunda uzmanlaşmak, kullanıcı verilerini güvenli ve verimli bir şekilde işleme yeteneği kazandırır. Önemli noktalar; doğrulama, sanitizasyon, OOP kullanımı ve en iyi uygulamalardır. Bir sonraki adım olarak veri tabanı entegrasyonu, çok adımlı formlar, dosya yükleme ve gelişmiş doğrulama tekniklerini öğrenmek faydalı olacaktır. Sürekli pratik yapmak ve PHP resmi dökümantasyonuna başvurmak, form geliştirme becerilerini artıracaktır.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek