PHP Formları - E-postayı ve URL'yi Doğrulayın
Bu bölüm adların, e-postaların ve URL'lerin nasıl doğrulanacağını gösterir.
PHP - Adı Doğrula
Aşağıdaki kod, ad alanının yalnızca harfler, kısa çizgiler, kesme işaretleri ve boşluklar içerip içermediğini kontrol etmenin basit bir yolunu gösterir. Ad alanının değeri geçerli değilse, bir hata mesajı kaydedin:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
preg_match() işlevi , kalıp için bir dize arar, kalıp varsa true, aksi takdirde false döndürür.
PHP - E-postayı Doğrula
Bir e-posta adresinin düzgün biçimli olup olmadığını kontrol etmenin en kolay ve en güvenli yolu PHP'nin filter_var() işlevini kullanmaktır.
Aşağıdaki kodda, e-posta adresi iyi biçimlendirilmemişse bir hata mesajı kaydedin:
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
PHP - URL'yi doğrula
Aşağıdaki kod, bir URL adresi sözdiziminin geçerli olup olmadığını kontrol etmenin bir yolunu gösterir (bu normal ifade, URL'de tirelere de izin verir). URL adresi sözdizimi geçerli değilse bir hata mesajı saklayın:
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
PHP - Adı, E-postayı ve URL'yi Doğrulayın
Şimdi, komut dosyası şöyle görünür:
Örnek
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
// check if URL address syntax is valid (this regular expression also allows dashes in the URL)
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
Sonraki adım, kullanıcı formu gönderdiğinde formun tüm giriş alanlarını boşaltmasının nasıl önleneceğini göstermektir.