PHP Formu Doğrulama - E-posta ve URL doğrulama

Bu bölüm, ad, e-posta ve URL'yi nasıl doğrulayacağınızı gösterir.

PHP - Ad doğrulama

Aşağıdaki kod, name alanının harfler ve boşluk içerip içermediğini kontrol eder. Eğer name alanı geçersizse, bir hata mesajı saklar:

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $nameErr = "Sadece harfler ve boşluk izin verilir!"; 
}

Açıklama:preg_match() fonksiyonu, bir dizenin modelini arar ve model varsa true döner, yoksa false döner.

PHP - E-posta doğrulama

Aşağıdaki kod, e-posta adresi dilbilgisi geçerli mi kontrol eder. Eğer geçersizse, bir hata mesajı saklar:

$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
  $emailErr = "Geçersiz e-posta biçimi!"; 
}

PHP - URL doğrulama

Aşağıdaki kod, URL adresi dilbilgisi geçerli mi kontrol eder (bu regular expression URL'deki tırnak işaretlerini de izin verir). Eğer URL adresi dilbilgisi geçersizse, bir hata mesajı saklar:

$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%",
=~_|]/i,$website)) {
  $websiteErr = "Geçersiz URL"; 
}

PHP - Ad, E-posta ve URL doğrulama

Şu anda, betik şu şekilde:

Örnek

<?php
// Değişkenleri tanımla ve boş değerlerle ayarla
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Ad gereklidir";
  }
    $name = test_input($_POST["name"]);
    // Adın harfler ve boşluk içerip içermediğini kontrol et
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $nameErr = "Sadece harfler ve boşluk izin verilir"; 
    }
  }
  if (empty($_POST["email"])) {
    $emailErr = "E-posta gereklidir";
  }
    $email = test_input($_POST["email"]);
    // E-posta adresi dilbilgisi geçerli mi kontrol et
    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
      $emailErr = "Geçersiz e-posta formatı"; 
    }
  }
  if (empty($_POST["website"])) {
    $website = "";
  }
    $website = test_input($_POST["website"]);
    // URL adresi dilinin geçerli olup olmadığını kontrol et (bu regulatuar ifade URL içinde alt çizgiyi de izin verir)
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%",
    =~_|]/i,$website)) {
      $websiteErr = "Geçersiz URL"; 
    }
  }
  if (empty($_POST["comment"])) {
    $comment = "";
  }
    $comment = test_input($_POST["comment"]);
  }
  if (empty($_POST["gender"])) {
    $genderErr = "Cinsiyet gereklidir";
  }
    $gender = test_input($_POST["gender"]);
  }
}
?>

Uygulama Örneği Çalıştır

Önümüzdeki adımda, formun kullanıcı formu sunduktan sonra tüm girdi alanlarını temizlemesini nasıl önleyeceğinizi açıklayacağım.