How can PHP developers ensure that their code follows secure coding practices when handling user input and database queries?

PHP developers can ensure their code follows secure coding practices by using prepared statements for database queries to prevent SQL injection attacks and by validating and sanitizing user input to prevent cross-site scripting attacks. Additionally, developers should avoid storing sensitive information in plain text and implement proper access controls to restrict unauthorized access to data.

// Example of using prepared statements for a database query
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
$stmt->execute(['username' => $username]);
$user = $stmt->fetch();

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

// Example of storing sensitive information securely
$hashed_password = password_hash($password, PASSWORD_DEFAULT);

// Example of implementing access controls
if($user['role'] === 'admin'){
    // Allow access to admin functionality
} else {
    // Restrict access to non-admin users
}