Easy Tutorial
❮ Func Ftp Pasv Func String Convert Uuencode ❯

PHP Form - Required Fields


In this section, we will introduce how to set up required fields and error messages in forms.


PHP - Required Fields

In the previous section, we have introduced the validation rules for the form. We can see that the "Name", "E-mail", and "Gender" fields are required and must not be empty.

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

If in the previous sections, all input fields were optional.

In the following code, we have 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 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
// 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 - Displaying Error Messages

In the following HTML example form, we have added some scripts for each field. These scripts will display error messages when incorrect information is entered (if the user submits the form without filling in the information, error messages will be output):

<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>
   URL: <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
   <span class="error">* <?php echo $genderErr;?></span>
   <br><br>
<input type="submit" name="submit" value="Submit"> 
</form>

View Code »

❮ Func Ftp Pasv Func String Convert Uuencode ❯