What are common mistakes to avoid when creating a login system in PHP?

One common mistake to avoid when creating a login system in PHP is storing passwords in plain text. Instead, passwords should be securely hashed using functions like password_hash() and password_verify(). Another mistake is not sanitizing user input, which can lead to SQL injection attacks. It's important to use prepared statements with parameterized queries to prevent this vulnerability.

// Example of securely hashing passwords using password_hash() and password_verify()

// Registering a new user
$password = "secretPassword123";
$hashed_password = password_hash($password, PASSWORD_DEFAULT);

// Storing $hashed_password in the database

// Validating login credentials
$user_input_password = "secretPassword123";

if (password_verify($user_input_password, $hashed_password)) {
    // Passwords match, login successful
} else {
    // Passwords do not match, login failed
}