PHP Форми - Перевірка E-mail та URL
У цьому розділі показано, як перевірити імена, електронні адреси та URL-адреси.
PHP - Перевірка імені
Наведений нижче код показує простий спосіб перевірити, чи поле імені містить лише літери, тире, апостроф і пробіли. Якщо значення поля імені недійсне, збережіть повідомлення про помилку:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Дозволені лише літери та пробіли";
}
Функція preg_match() шукає в рядку шаблон, повертаючи true, якщо шаблон існує, і false в іншому випадку.
PHP - Перевірка E-mail
Найпростіший і найбезпечніший спосіб перевірити, чи адреса електронної пошти правильно сформована, — це використати PHP функцію filter_var().
У наведеному нижче коді, якщо адреса електронної пошти неправильно сформована, збережіть повідомлення про помилку:
$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Недійсний формат електронної пошти";
}
PHP - Перевірка 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 = "Недійсний URL";
}
PHP - Перевірити Ім’я, E-mail та URL
Тепер весь скрипт виглядає так:
Приклад
<?php
// визначте змінні та встановіть порожні значення
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Імя обов’язкове";
} else {
$name = test_input($_POST["name"]);
// перевірте, чи ім’я містить лише літери та пробіли
if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
$nameErr = "Дозволені лише літери та пробіли";
}
}
if (empty($_POST["email"])) {
$emailErr = "Email обов’язковий";
} else {
$email = test_input($_POST["email"]);
// перевірте, чи правильна адреса електронної пошти
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Недійсний формат електронної пошти";
}
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
// перевірте, чи дійсний синтаксис URL-адреси (цей регулярний вираз також допускає тире в URL-адресі)
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Недійсний URL";
}
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Стать обов’язкова";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
Виконати приклад »Наступним кроком є показати, як запобігти спорожненню формою всіх полів введення, коли користувач надсилає форму.