What are the best practices for handling form submissions in PHP to prevent errors like empty pages or SQL injection?

To prevent errors like empty pages or SQL injection when handling form submissions in PHP, it is important to properly sanitize and validate user input. This can be done by using functions like htmlspecialchars() to prevent XSS attacks and prepared statements to prevent SQL injection. Additionally, checking for empty fields before processing the form data can help prevent errors.

// Sanitize and validate user input
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);

// Check for empty fields
if(empty($name) || empty($email)) {
    // Handle empty fields error
    echo "Please fill out all fields";
} else {
    // Process form data using prepared statements
    $stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':email', $email);
    $stmt->execute();
    
    // Success message
    echo "Form submitted successfully";
}