ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

PHP Учебник

PHP СТАРТ PHP Введение PHP Установка PHP Синтаксис PHP Комментарии PHP Переменные PHP Echo / Print PHP Типы данных PHP Строки PHP Числа PHP Константы PHP Операторы PHP If...Else...Elseif PHP Switch PHP Циклы PHP Функции PHP Массивы PHP Глобальные переменные

PHP Формы

PHP Обработка форм PHP Проверка формы PHP Обязательные поля формы PHP Форма URL/E-mail PHP Полная форма

PHP Продвинутый

PHP Дата и время PHP Подключение файлов PHP Обработка файлов PHP Файл Открыть/Читать PHP Файл Создать/Записать PHP Загрузка файлов PHP Cookies PHP Сессии PHP Фильтры PHP Расширенные фильтры PHP JSON

PHP OOP

PHP Что такое OOP PHP Классы/Объекты PHP Конструктор PHP Деструктор PHP Модификаторы доступа PHP Наследование PHP Константы PHP Абстрактные классы PHP Черты PHP Статические Методы PHP Статические свойства

MySQL База данных

MySQL База данных MySQL Коннект MySQL Создать DB MySQL Создать таблицы MySQL Вставить данные MySQL Получить последний ID MySQL Вставить несколько MySQL Подготовленный MySQL Выбрать данные MySQL Where MySQL Сортировать MySQL Удалить данные MySQL Обновить данные MySQL Ограничить данные

PHP XML

PHP XML Парсеры PHP SimpleXML Парсер PHP SimpleXML - Получить PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Введение AJAX PHP AJAX База данных AJAX XML AJAX Живой поиск AJAX Опрос

PHP Примеры

PHP Примеры PHP Викторина PHP Упражнения PHP Сертификация

PHP Справочник

PHP Обзор PHP Массив PHP Календарь PHP Данные PHP Каталог PHP Ошибка PHP Файловая система PHP Фильтр PHP FTP PHP JSON PHP Libxml PHP Mail PHP Математический PHP Разное PHP MySQLi PHP Сеть PHP SimpleXML PHP Поток PHP Строка PHP Обработка переменных PHP XML Парсер PHP Zip PHP Часовые пояса

PHP. Уроки для начинающих

PHP Формы - обязательные поля


В этой главе показано, как сделать обязательные поля ввода и, при необходимости, создать сообщения об ошибках.


PHP - Обязательные поля

Из таблицы правил проверки формы на предыдущей странице видно, что "Имя", "E-mail", и "Пол" - обязательные поля. Эти поля не могут быть пустыми и должны быть заполнены в HTML форме.

Поле Правила проверки
Имя Обязательно. + Должно содержать только буквы и пробелы
E-mail Обязательно. + Должен содержать действительный адрес электронной почты (с использованием @ and .)
Веб-сайт Не обязательно. Если поле присутствует, оно должно содержать действительный URL
Комментарий Не обязательно. Многострочное поле ввода (текстовое поле)
Пол Обязательно. Должен быть выбран один вариант

В предыдущей главе все поля ввода были необязательными.

В следующем коде мы добавили несколько новых переменных: $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"]);?>">

Name: <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>
Website:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<input type="radio" name="gender" value="other">Other
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">

</form>
Попробуйте сами »

Следующим шагом является проверка входных данных, а именно: "Содержит ли поле Имя только буквы и пробелы?", и "Содержит ли поле E-mail валидный синтаксис адреса электронной почты?", и, если заполнено поле Веб-сайт, "содержит ли оно действительный URL-адрес?"