What are the best practices for handling user input in PHP to prevent vulnerabilities like SQL injection or cross-site scripting?

To prevent vulnerabilities like SQL injection or cross-site scripting in PHP, it is important to sanitize and validate user input before using it in any database queries or outputting it to the browser. This can be done by using functions like mysqli_real_escape_string() for database queries and htmlspecialchars() for outputting to the browser.

// Sanitize user input before using in a database query
$user_input = mysqli_real_escape_string($connection, $_POST['user_input']);

// Validate and sanitize user input before outputting to the browser
$user_input = htmlspecialchars($_POST['user_input']);
echo $user_input;