PHP Форми - Обов’язкові поля
У цьому розділі показано, як зробити поля введення обов’язковими та створити повідомлення про помилки, якщо потрібно.
PHP - Обов’язкові поля
З таблиці правил валідації (перевірки) на попередній сторінці ми бачимо, що "Ім’я", "Електронна адреса" та "Стать" поля обов’язкові для заповнення. Ці поля не можуть бути порожніми та мають бути заповнені у формі HTML.
Поле | Правила валідації |
---|---|
Ім’я | Обов’язково. + Має містити лише літери та пробіли |
Обов’язково. + Має містити дійсну електронну адресу (з @ та .) | |
Вебсайт | Опціонально. Якщо присутній, це повинно містити дійсний URL |
Коментар | Опціонально. Багаторядкове поле введення (textarea) |
Стать | Обов’язково. Треба вибрати один варіант |
У попередньому розділі всі поля введення були необов’язковими.
У наступному коді ми додали кілька нових змінних: $nameErr, $emailErr, $genderErr і $websiteErr. Ці змінні помилок міститимуть повідомлення про помилки для обов’язкових полів. Ми також додали інструкцію if else
для кожної змінної $_POST. Це перевіряє, чи змінна $_POST порожня (за допомогою функції PHP empty()
). Якщо вона порожня, повідомлення про помилку зберігається в різних змінних помилки, а якщо вона не порожня, вона надсилає введені користувачем дані через функцію test_input()
:
<?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 (empty($_POST["email"])) {
$emailErr = "Email є обов’язковим";
} else {
$email = test_input($_POST["email"]);
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Стать є обов’язковим";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
PHP - Відобразити повідомлення про помилку
Потім у формі HTML ми додаємо невеликий скрипт після кожного обов’язкового поля, який за потреби генерує правильне повідомлення про помилку (тобто якщо користувач намагається надіслати форму, не заповнивши обов’язкові поля):
Приклад
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Ім’я: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Вебсайт:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Коментар: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Стать:
<input type="radio" name="gender" value="female">Жінка
<input type="radio" name="gender" value="male">Чоловік
<input type="radio" name="gender" value="other">Воно
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Надіслати">
</form>
Виконати приклад »
Наступним кроком є перевірка вхідних даних, тобто "Чи поле Name містить лише літери та пробіл?", та "Чи поле E-mail містить дійсний синтаксис e-mail адреси?", а також "Чи містить поле Website дійсну URL адресу?".