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


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


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

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

Поле Правила проверки
Name Обязательно. + Может содержать только буквы и пробелы
E-mail Обязательно. + Должен содержать действительный адрес электронной почты (содержит "@" и ".")
URL Необязательно. Если присутствует, должен содержать действительный 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 = "邮箱是必需的。";
  } 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">男
   <span class="error">* <?php echo $genderErr;?></span>
   <br><br>
   <input type="submit" name="submit" value="Submit"> 
</form>

Другие расширения