What are some best practices for handling user rights validation in PHP code to avoid similar issues in the future?

Issue: To avoid similar user rights validation issues in the future, it is important to implement proper input validation and authorization checks in PHP code. This includes validating user input, checking user permissions before performing any sensitive actions, and using prepared statements to prevent SQL injection attacks. Code snippet:

// Validate user input
$user_id = $_POST['user_id'];
if (!is_numeric($user_id)) {
    // Handle invalid input error
}

// Check user permissions before performing action
if ($_SESSION['user_role'] !== 'admin') {
    // Handle unauthorized access error
}

// Use prepared statements to prevent SQL injection
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :user_id");
$stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$stmt->execute();
$user = $stmt->fetch();