PHP 5 Forms - Required Fields

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

PHP-required fields

In the previous chapter we have introduced the table validation rules, we can see "name", "E-mail", and The "Gender" field is required and the fields cannot be empty.

field Validation rules
name Required. + Can only contain letters and spaces
E-mail Required. + Must include a valid email address (including "@" and ".")
URL Optional. If present, it must contain a valid URL
Remarks Optional. Multiline field (text field).
Gender Required. You must choose one.

If in the previous section, all input fields are 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 if the $ _POST variable is empty (using php's empty () function). If empty, the corresponding error message will be displayed. If not empty, the data will be passed to the test_input () function:

//Define a variable and set it to null by default
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

  if (empty($_POST["name"])) {
    $nameErr = "The 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-display error message

In the following HTML example form, we have added some scripts to each field, Each script displays an error message if the information is entered incorrectly. (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']);?>"> 
   first name: <input type="text" name="name">
   <span class="error">* <?php echo $nameErr;?></span>
   E-mail: <input type="text" name="email">
   <span class="error">* <?php echo $emailErr;?></span>
   URL: <input type="text" name="website">
   <span class="error"><?php echo $websiteErr;?></span>
   Note: <textarea name="comment" rows="5" cols="40"></textarea>
   <input type="radio" name="gender" value="female">Female
   <input type="radio" name="gender" value="male">male
   <span class="error">* <?php echo $genderErr;?></span>
   <input type="submit" name="submit" value="Submit">