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

PHP учебник

PHP HOME PHP Intro PHP Install PHP Syntax PHP Variables PHP Echo / Print PHP Data Types PHP Strings PHP Constants PHP Operators PHP If...Else...Elseif PHP Switch PHP While Loops PHP For Loops PHP Functions PHP Arrays PHP Sorting Arrays PHP Superglobals

PHP Forms

PHP Form Handling PHP Form Validation PHP Form Required PHP Form URL/E-mail PHP Form Complete

PHP Advanced

PHP Arrays Multi PHP Date and Time PHP Include PHP File Handling PHP File Open/Read PHP File Create/Write PHP File Upload PHP Cookies PHP Sessions PHP Filters PHP Filters Advanced PHP Error Handling PHP Exception

MySQL Database

MySQL Database MySQL Connect MySQL Create DB MySQL Create Table MySQL Insert Data MySQL Get Last ID MySQL Insert Multiple MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX Database AJAX XML AJAX Live Search AJAX RSS Reader AJAX Poll

PHP Examples


PHP Reference

PHP Overview PHP Array PHP Calendar PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones


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


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


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

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

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

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

В следующем коде мы добавили несколько новых переменных: $nameErr, $emailErr, $genderErr и $websiteErr. Эти переменные ошибки будут содержать сообщения об ошибках для обязательных полей. Мы также добавили инструкцию if else для каждой переменной $ _пост. Это проверяет, если переменная $ _пост пуста (с функцией PHP empty() ). Если он пуст, сообщение об ошибке хранится в различных переменных ошибки, и если он не пуст, он отправляет входные данные пользователя через test_input() функцию:

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

  if (empty($_POST["email"])) {
    $emailErr = "Email is required";
  } 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 = "Gender is required";
  } 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>

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