PHP Form - Required Fields


In this chapter, we will introduce how to set required form fields and error messages.


PHP - Required Fields

In the previous chapter we introduced the form validation rules. We can see that the "Name", "E-mail", and "Gender" fields are required, and each field cannot be empty.

Field Validation Rules
Name Required. + Can only contain letters and spaces
E-mail Required. + Must contain a valid email address (contains "@" and ".")
URL Optional. If present, it must contain a valid URL
Remarks Optional. Multi-line field (textarea).
Gender Required. Must select one.

In the previous chapters, all input fields were optional.

In the following code we added some new variables: $nameErr, $emailErr, $genderErr, and $websiteErr. These error variables will be displayed on the required fields. We also added an if else statement for each $_POST variable. These statements will check whether the $_POST variable is empty (using PHP's empty() function). If it is empty, the corresponding error message will be displayed. If it is not empty, the data will be passed to the test_input() function:

<?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 - Display Error Messages

In the following HTML example form, we added some scripts for each field. Each script will display an error message when the entered information is incorrect. (If the user submits the form without filling in the information, an error message will be output):

<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>

View Code »

Other Extensions