Open In App

How to Validate Form Data in PHP?

Last Updated : 19 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

To validate form data in PHP, we can utilize a combination of sanitization and validation techniques. By accessing form input through PHP’s superglobal arrays like $_POST or $_GET‘, we can sanitize the data using functions like filter_var( ) to remove malicious characters. Subsequently, we validate the input against specific formats or constraints, ensuring accuracy and security in web applications.

Approach:

  • Accessing Form Data: Retrieve form input using PHP’s $_POST superglobal array.
  • Sanitizing Name and Email: Use filter_var() with FILTER_SANITIZE_STRING to remove unwanted characters from the name. Sanitize the email using filter_var() with FILTER_SANITIZE_EMAIL.
  • Validating Name and Email: Check if the name contains only letters and whitespace using a regular expression. Validate the email format using FILTER_VALIDATE_EMAIL.
  • Validating Gender: Ensure that the gender is selected by checking if it’s set using isset().
  • Validating Mobile Number: Use a regular expression (\d{10}) to validate the mobile number, ensuring it has 10 digits.
  • Error Handling: Display error messages if any validation fails, guiding users on correct input formats.
  • Improving Usability: Enhance the user experience by providing clear and informative error messages for each validation failure.
  • Validation: Validate each input according to the specified rules:
    • Name: Make the field as required. It must contain only letters and whitespace.
    • E-mail: Make the field as required, It must contain a valid email address.
    • Gender: Make the field as required, It must select one option.
    • Mobile Number: Make the field as required, It must contain a valid mobile number format (e.g., 10 digits).
$name = $_POST["name"];
$email = $_POST["email"];
$gender = $_POST["gender"];
$mobileNumber = $_POST["mobile"];

// Sanitize and validate name
$sanitized_name = filter_var($name, FILTER_SANITIZE_STRING);
if (!preg_match("/^[a-zA-Z\s]+$/", $sanitized_name)) {
// Invalid name
}

// Sanitize and validate email
$sanitized_email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (!filter_var($sanitized_email, FILTER_VALIDATE_EMAIL)) {
// Invalid email
}

// Validate gender
if (!isset($gender)) {
// Gender not selected
}

// Validate mobile number
if (!preg_match("/^\d{10}$/", $mobileNumber)) {
// Invalid mobile number
}

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads