وباکا

آموزش تخصصی برنامه نویسی وب

گام هجدهم – بررسی اعتبار نام ها، ایمیل و URL در فرم های پی اچ پی

در این بخش نشان می دهیم که چگونه اعتبار اسامی، ایمیل ها و URL ها را بررسی کنید.

پی اچ پی – اعتبار نام

کد زیر یک روش ساده برای بررسی اینکه آیا فیلد نام فقط حروف و فضای سفید را دارد، نشان داده می شود. اگر مقدار فیلد نام معتبر نیست، یک پیام خطا ذخیره می شود:

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "Only letters and white space allowed";
}

تابع preg_match یک رشته را برای الگویی جستجو می کند، اگر  الگوی وجود دارد نتیجه true و در غیر این صورت نتیجه false را برمی گرداند.

پی اچ پی – بررسی اعتبار ایمیل

ساده ترین و مطمئن ترین راه برای بررسی اینکه آیا آدرس ایمیل درست تشکیل شده است استفاده از تابع filter_var در PHP است.

در کد زیر، اگر آدرس ایمیل درست تشکیل نشده باشد، یک پیام خطا را ذخیره می کند:

$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}

پی اچ پی – بررسی اعتبار URL

کد زیر یک روش برای بررسی اینکه آیا نحوه ی URL آدرس معتبر است را نشان می دهد (این عبارت منظم همچنین اجازه داشاتن خط تیره در URL را می دهد ). اگر ساختار URL آدرس معتبر نیست، یک پیام خطا را ذخیره می کند:

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

پی اچ پی – بررسی اعتبار نام، ایمیل و URL

در ادامه ، اسکریپت کامل را ارائه می کنیم که برای بررسی اعتبار نام، ایمیل و url استفاده شده است:

<?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"]);
}
}
?>

در گام بعدی، چگونگی جلوگیری از خالی بودن تمام فیلدهای ورودی هنگام استفاده از فرم کاربر را نشان خواهیم داد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب