اعتبارسنجی URL/ایمیل (Form URL/E-mail)
در فرم ها، «اعتبارسنجی URL/ایمیل» خیلی مهم است. اعتبارسنجی یعنی بررسی درستی داده. سپس اگر نادرست بود، پیام خطا بدهیم. حالا با نام، ایمیل، و URL تمرین می کنیم.
اعتبارسنجی نام (Name)
برای نام، فقط حروف، فاصله، خط تیره و آپستروف مجاز است. «عبارت منظم (RegEx)» الگوی جست وجوی متن است.
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z-' ]*$/", $name)) {
$nameErr = "Only letters and white space allowed";
}
نکته: تابع preg_match یک «الگو» را روی رشته تست می کند و نتیجه می دهد.
اعتبارسنجی ایمیل (E-mail)
ساده ترین روش، استفاده از «فیلتر (Filter)» آماده PHP است. این فیلتر ساختار ایمیل را می سنجد.
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
هشدار: ایمیل حساس است. همیشه سمت سرور بررسی کن، نه فقط جاوااسکریپت.
اعتبارسنجی URL
برای URL، از الگوی مجاز با http/https/ftp یا www استفاده می کنیم.
$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/ایمیل و نام
در این کد، فیلدهای اجباری چک می شوند. سپس نام، ایمیل و URL اعتبارسنجی می شوند.
// 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"]);
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"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
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"]);
}
}
گام های عملی
- برای ورودی ها، مقدار را با
test_inputپاکسازی کن. - برای نام از
preg_matchبا الگوی مناسب استفاده کن. - برای ایمیل از
filter_varو فیلتر ایمیل استفاده کن. - برای URL از الگوی مجاز یا فیلترهای URL استفاده کن.
- پیام خطا را کنار همان فیلد نمایش بده.
مطالب مرتبط و مسیر مطالعه
برای شروع، صفحه فیلدهای اجباری فرم را ببین. همچنین راهنمای کامل اعتبارسنجی فرم را دنبال کن تا اعتبارسنجی URL/ایمیل کامل شود. در همین صفحه نیز عبارت اعتبارسنجی URL/ایمیل به عنوان مرجع داخلی وجود دارد.
جمع بندی سریع
- نام فقط حروف و فاصله داشته باشد.
- ایمیل را با
filter_varبسنج. - URL را با الگو یا فیلتر بررسی کن.
- ورودی ها را قبل از بررسی پاکسازی کن.
- پیام خطا را واضح و کوتاه بنویس.