What are common mistakes to avoid when working with user input and variables in PHP?

Common mistakes to avoid when working with user input and variables in PHP include not sanitizing user input, not validating input data, and not properly escaping output to prevent XSS attacks. To solve these issues, always sanitize and validate user input before using it in your code, and escape output data when displaying it to the user.

// Example of sanitizing user input
$input = $_POST['username'];
$clean_input = filter_var($input, FILTER_SANITIZE_STRING);

// Example of validating input data
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // Valid email address
} else {
    // Invalid email address
}

// Example of escaping output to prevent XSS attacks
$output = "<script>alert('XSS attack!')</script>";
echo htmlspecialchars($output);