What are some common mistakes made when writing PHP login scripts?

One common mistake when writing PHP login scripts is not properly sanitizing user input, which can leave the application vulnerable to SQL injection attacks. To solve this issue, always use prepared statements or parameterized queries when interacting with the database to prevent SQL injection.

// Example of using prepared statements to prevent SQL injection
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = :password');
$stmt->execute(['username' => $username, 'password' => $password]);
$user = $stmt->fetch();