PHP ile Form İşlemi Örneği

PHP ile Form İşlemi Örneği

Web uygulamalarında form kullanımı oldukça yaygındır ve PHP ile güvenli ve kullanışlı formlar oluşturmak büyük önem taşır.

Bu yazıda sizlere PHP kullanarak form doğrulama ve güvenli veri işleme yöntemlerini örnekle göstermeye çalışacağım.

1. Basit Bir HTML Formu

Bir form oluşturalım ve kullanıcıdan ad, e-posta ve mesaj bilgilerini alalım:

session_start();
if (empty($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
<form action="process.php" method="post">
    <input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
    
    <label for="name">Ad:</label>
    <input type="text" name="name" id="name" required>
    
    <label for="email">E-posta:</label>
    <input type="email" name="email" id="email" required>
    
    <label for="message">Mesaj:</label>
    <textarea name="message" id="message" required></textarea>
    
    <button type="submit">Gönder</button>
</form>

2. PHP ile Form Verisini İşleme

Aşağıdaki PHP kodu, formdan gelen verileri işleyerek güvenli bir şekilde saklayacaktır:

session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] !== $_SESSION['csrf_token']) {
        die("Geçersiz CSRF token!");
    }
    
    $name = htmlspecialchars(trim($_POST['name']));
    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
    $message = htmlspecialchars(trim($_POST['message']));

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Geçersiz e-posta adresi!";
    } else {
        echo "Teşekkürler, mesajınız alındı.";
        // Burada veritabanına kaydedebilir veya e-posta gönderebilirsiniz.
    }
}

3. Güvenlik Önlemleri

  1. CSRF Koruması: Formlara bir CSRF token ekleyerek sahte istekleri önleyin.
  2. XSS Koruması: Kullanıcı girdilerini htmlspecialchars() fonksiyonu ile temizleyin.
  3. SQL Enjeksiyonuna Karşı Koruma: PDO kullanarak parametreli sorgularla veri işleyin.

Yorum gönder

This site uses Akismet to reduce spam. Learn how your comment data is processed.