What are the best practices for handling form data and variables in PHP to avoid security risks?

When handling form data and variables in PHP, it is important to sanitize and validate user input to prevent security risks such as SQL injection and cross-site scripting (XSS) attacks. One way to achieve this is by using PHP's built-in functions like filter_var() and htmlentities() to sanitize input data before processing it.

// Sanitize and validate form data
$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

// Insert sanitized data into database
$stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (:username, :email, :password)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':password', $password);
$stmt->execute();