Categories: PHP Forms

PHP Complete Form Validation

We can create and use forms in PHP. To get form data, we have to use PHP superglobals $_GET and $_POST.

PHP Form Validation With Example

In this unit, we see a complete PHP Form with validations.

Form validation is one of the major aspects of web development in PHP. There are many vulnerabilities and threats that can put a user’s sensitive information at risk. Therefore, it is important to validate a PHP form before submitting it.

Must Read: PHP Form Email Validation

Simple PHP Registration Form Validation

Here, we will create a simple general-purpose registration form in PHP and MySQL with essential validations.

Example

<!DOCTYPE html>  

<html>  

<head>  

<style>  

.error {color: #FF0001;}  

</style>  

</head>  

<body> 

<?php  

// define variables to empty values  

$nameErr = $emailErr = $mobilenoErr = $genderErr = $websiteErr = $hobbyErr = "";  

$name = $email = $mobileno = $gender = $website = $hobby = "";  

//Input fields validation  

if ($_SERVER["REQUEST_METHOD"] == "POST") 
{  
   //String Validation  
   if (empty($_POST["name"]))
   {  
      $nameErr = "Name is required";  
   } 
   else 
   {  
      $name = input_data($_POST["name"]);  
      // check if name only contains letters and whitespace  
      if (!preg_match("/^[a-zA-Z ]*$/",$name)) 
      { 
     $nameErr = "Only alphabets and white space are allowed";  
      }  
    }  
   //Email Validation   
   if (empty($_POST["email"])) 
   {  
      $emailErr = "Email is required";  
   } 
   else 
   {
    $email = input_data($_POST["email"]);  
           // check that the e-mail address is well-formed  
           if (!filter_var($email, FILTER_VALIDATE_EMAIL)) 
           { 
         $emailErr = "Invalid email format";  
     } 

   }  

   //Number Validation  
   if (empty($_POST["mobileno"])) 
   {
     $mobilenoErr = "Mobile no is required";  
   } 
   else 
   {
     $mobileno = input_data($_POST["mobileno"]); 
            // check if mobile no is well-formed  
     if (!preg_match ("/^[0-9]*$/", $mobileno) ) 
            { 
         $mobilenoErr = "Only numeric value is allowed.";  
     } 

     //check mobile no length should not be less and greator than 10  
            if (strlen ($mobileno) != 10) 
            {  
                $mobilenoErr = "Mobile no must contain 10 digits.";  
            }
 }  
      
        //URL Validation      
        if (empty($_POST["website"]))
        {
            $website = "";  
        }
        else
        {  
           $website = input_data($_POST["website"]); 
           // check if URL address syntax is valid  
           if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)){
           $websiteErr = "Invalid URL";
        }
        }

 //Empty Field Validation  
        if (empty ($_POST["gender"]))
        {
           $genderErr = "Gender is required";

        }
        else
        {
           $gender = input_data($_POST["gender"]);  
        }
        //Checkbox Validation  
        if (!isset($_POST['hobbies']))
        {  
          $hobbyErr = "You must select hobby.";  
        }
        else
        {
          $hobby = input_data($_POST["hobbies"]); 
        }  

}  

function input_data($data){

 $data = trim($data);  

 $data = stripslashes($data);  

 $data = htmlspecialchars($data);  

 return $data;

}  

?>  

<h2>Registration Form</h2>  

<span class = "error">* required field </span>  

<br><br>  

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

 Mobile No:  

 <input type="text" name="mobileno">  

 <span class="error">* <?php echo $mobilenoErr; ?> </span> 

 <br><br>  

 Website:  

 <input type="text" name="website">  

 <span class="error"><?php echo $websiteErr; ?> </span>  

 <br><br>  

 Gender: 

 <input type="radio" name="gender" value="male"> Male  

 <input type="radio" name="gender" value="female"> Female  

 <input type="radio" name="gender" value="other"> Other  

 <span class="error">* <?php echo $genderErr; ?> </span> 

 <br><br>  

 Hobbies: 

 <input type="checkbox" name="hobbies" value="Reading"> Reading 

 <input type="checkbox" name="hobbies" value="Writing"> Writing 

 <input type="checkbox" name="hobbies" value="Playing"> Playing 

 <span class="error">* <?php echo $hobbyErr; ?> </span> 

 <br><br>

 <input type="submit" name="submit" value="Submit">

 <br><br>                             

</form>  

<?php  

 if(isset($_POST['submit'])) {

  if($nameErr == "" && $emailErr == "" && $mobilenoErr == "" && $genderErr == "" && $websiteErr == "" && $hobbyErr == ""){

   echo "<h3 color = #FF0001> <b>You have sucessfully registered.</b> </h3>";  

   echo "<h2>Your Input:</h2>";  

   echo "Name: " .$name;  

   echo "<br>";  

   echo "Email: " .$email;  

   echo "<br>";  

   echo "Mobile No: " .$mobileno;  

   echo "<br>";  

   echo "Website: " .$website;  

   echo "<br>";  

   echo "Gender: " .$gender;  

   echo "<br>"; 

   echo "Hobby: " .$hobby;
         } 
                       else 
                       {  
                        echo "<h3> <b>You didn't filled up the form correctly.</b> </h3>";  

  }

 }  

?>  

</body>  

</html>

Output

Registration form before submission

Registration form after submission

Conclusion

In this article, we have implemented all the steps of validating a PHP form.  We learnt how to apply the different validation on input fields using PHP. We hope you have gained a complete understanding of how a PHP form works. 

If you want to understand the other concepts of PHP programming, do refer to our PHP Tutorial and PHP MySQL sections. Happy Learning 🙂

 

Sahil Jani

Share
Published by
Sahil Jani

Recent Posts

5 Important Things To Know About WordPress Before You Use It

There is a reason big-name companies like CNN use WordPress. WordPress is a popular content…

3 years ago

How to Install MySQL on Your PC in 3 Easy Steps

In this tutorial, I'm going to show you how to install MySQL on your computer.…

5 years ago

Download and Install Turbo C++ for Windows 10 (Full Installation Guide)

Download Turbo C++ for windows 10 in just 7 Mb and run your first C++…

5 years ago

PHP .HTACCESS Redirects

We can redirect any webpage to any other or redirect the whole domain or website…

5 years ago

PHP Redirect Pages

There are lots of methods to redirect pages, like refresh-redirect from META tag, redirect from…

5 years ago

PHP Include & Required

Include files in PHP are used in appending various global or config files. We can…

5 years ago