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

When validating user input in PHP forms, it is important to sanitize and validate the data to prevent security vulnerabilities such as SQL injection, cross-site scripting (XSS), and CSRF attacks. One way to achieve this is by using PHP functions like htmlentities() to sanitize user input and regular expressions to validate input against expected patterns.

// Sanitize user input using htmlentities()
$username = htmlentities($_POST['username']);
$email = htmlentities($_POST['email']);

// Validate email format using regular expression
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Invalid email format";
}

// Validate username format using regular expression
if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) {
    echo "Invalid username format";
}