We can create and use forms in PHP. To get form data, we have to use PHP superglobals $_GET and $_POST.
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
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
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 🙂
There is a reason big-name companies like CNN use WordPress. WordPress is a popular content…
In this tutorial, I'm going to show you how to install MySQL on your computer.…
Download Turbo C++ for windows 10 in just 7 Mb and run your first C++…
We can redirect any webpage to any other or redirect the whole domain or website…
There are lots of methods to redirect pages, like refresh-redirect from META tag, redirect from…
Include files in PHP are used in appending various global or config files. We can…