Form Validation in PHP

Hello dear readers! welcome back to another edition of our tutorial on PHP. In this tutorial guide, we will be discussing about PHP Form Validation.

What is a Required Field?

A required field will checks if the field is filled or not in the proper manner. In most cases we make use of the asterisk (*) symbol for required field.

What is Form Validation?

A form validation is the process of checking the input submitted by the user. There are two types of validations made available in PHP. They are as follows -

  • Client-side Validation - This type of validation is carried out on the client browser.
  • Server-side Validation - This type of validation is carried out on the PHP server.


Validation Rules for Field

The following below are some of the validation rules for field in PhP -

FieldValidation Rules
NameShould required letters and white-spaces
EmailShould required @ and .
WebsiteShould required a valid URL
RadioMust be selectable at least once
Check BoxMust be checkable at least once
Drop Down menuMust be selectable at least once

Valid URL

Following code below illustrates the validation of URL -

$website = input($_POST["site"]);

if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
   $websiteErr = "Invalid URL"; 

Above code will verify if a given URL is valid or not. It should allow some keywords as https, www, ftp, a-z, 0-9, and so on.

Valid Email

Following code below illustrates the validation of Email address -

$email = input($_POST["email"]);

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
   $emailErr = "Invalid format and please re-enter valid email"; 

Above code will verify if a given Email address is well formatted or not. If it is not, then it is going to display an error message.

Following example displays the PHP form with the required field validation -

         .error {color: #FF0000;}
         // 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"]);
               // check if e-mail address is well-formed
               if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                  $emailErr = "Invalid email format"; 
            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"]);
         function test_input($data) {
            $data = trim($data);
            $data = stripslashes($data);
            $data = htmlspecialchars($data);
            return $data;
      <h2>Web Design Tutorialz course registration form</h2>
      <p><span class = "error">* required field.</span></p>
      <form method = "post" action = "<?php 
         echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
               <td><input type = "text" name = "name">
                  <span class = "error">* <?php echo $nameErr;?></span>
               <td>E-mail: </td>
               <td><input type = "text" name = "email">
                  <span class = "error">* <?php echo $emailErr;?></span>
               <td> <input type = "text" name = "website">
                  <span class = "error"><?php echo $websiteErr;?></span>
               <td> <textarea name = "comment" rows = "5" cols = "40"></textarea></td>
                  <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"> 
         echo "<h2>Your given values are as:</h2>";
         echo $name;
         echo "<br>";
         echo $email;
         echo "<br>";
         echo $website;
         echo "<br>";
         echo $comment;
         echo "<br>";
         echo $gender;

When the above code is executed, it will produce the following result -

Alright guys! This is where we are rounding up for this tutorial post. In our next tutorial guide, we are going to be discussing about PHP Complete Form.

Feel free to ask your questions where necessary and i will attend to them as soon as possible. If this tutorial was helpful to you, you can use the share button to share this tutorial.

Follow us on our various social media platforms to stay updated with our latest tutorials. You can also subscribe to our newsletter in order to get our tutorials delivered directly to your emails.

Thanks for reading and bye for now.