What best practices should be followed when handling user input in PHP code?

When handling user input in PHP code, it is essential to validate and sanitize the input to prevent security vulnerabilities such as SQL injection or cross-site scripting attacks. Best practices include using functions like filter_input() or htmlentities() to sanitize input, validating input against expected formats, and using prepared statements for database queries.

// Example of validating and sanitizing user input in PHP
$userInput = $_POST['user_input'];

// Validate input against expected format
if (!filter_var($userInput, FILTER_VALIDATE_EMAIL)) {
    echo "Invalid email format";
    exit;
}

// Sanitize input to prevent SQL injection
$userInput = htmlentities($userInput);

// Use prepared statement for database query
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->bindParam(':email', $userInput);
$stmt->execute();