What are some best practices for validating user input in PHP forms to ensure security and prevent vulnerabilities?

When validating user input in PHP forms, it is essential to sanitize and validate the data to prevent security vulnerabilities such as SQL injection and cross-site scripting attacks. One way to achieve this is by using PHP's filter_var() function with appropriate filter flags to validate input data against predefined rules.

// Validate and sanitize user input from a form field
$user_input = $_POST['user_input'];

// Sanitize the input to remove any potentially harmful characters
$user_input = filter_var($user_input, FILTER_SANITIZE_STRING);

// Validate the input against a specific rule, such as checking for a valid email address
if (filter_var($user_input, FILTER_VALIDATE_EMAIL)) {
    // Input is valid, proceed with further processing
} else {
    // Input is invalid, display an error message to the user
    echo "Invalid email address";
}