What are the best practices for handling form submissions and saving data in PHP?

When handling form submissions in PHP, it is important to sanitize and validate user input to prevent SQL injection and cross-site scripting attacks. Additionally, you should use prepared statements to interact with your database to prevent SQL injection. Finally, consider implementing CSRF tokens to protect against cross-site request forgery attacks.

// Example of handling form submission and saving data in PHP

// Sanitize and validate user input
$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);

// Prepare and execute a SQL query using PDO prepared statements
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);
$stmt->execute();

// Generate and validate CSRF token
session_start();
if ($_POST['csrf_token'] === $_SESSION['csrf_token']) {
    // Save data to database
} else {
    // Handle CSRF attack
}