What are the best practices for handling form submissions in PHP to ensure they function correctly?

When handling form submissions in PHP, it is important to sanitize and validate user input to prevent security vulnerabilities such as SQL injection and cross-site scripting attacks. Additionally, always use prepared statements when interacting with a database to prevent SQL injection. Lastly, make sure to handle form validation errors gracefully and provide clear error messages to the user.

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Sanitize and validate user input
    $name = htmlspecialchars($_POST["name"]);
    $email = filter_var($_POST["email"], FILTER_VALIDATE_EMAIL);
    
    // Check for form validation errors
    if (empty($name) || empty($email)) {
        echo "Please fill out all required fields.";
    } else {
        // Use prepared statements to interact with the database
        $stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
        $stmt->execute([$name, $email]);
        
        echo "Form submitted successfully!";
    }
}
?>