В системе входа в систему, как вы можете определить, правильно ли пользователь ввел пароль?Выполняете ли вы два SQL-запроса, один для поиска имени пользователя, а затем другой для поиска имени пользователя и соответствующего (salted + hashed и т. Д.) Пароля?Я спрашиваю об этом, потому что если пользователь ввел пароль неправильно, я хочу обновить имеющийся у меня столбец failed_login_attempts.
Если вы выполните два запроса, это не увеличит накладные расходы?
Если вы сделали такой запрос, как бы вы узнали, был ли введен правильный пароль или нет, или имя пользователя не существует:
SELECT * FROM author
WHERE username = '$username'
AND password = '$password'
LIMIT 1
(^ NB: IЯ сохраняю это простым, буду использовать хеш и соль и очистит входные данные в реальном.)
Примерно так:
$user = perform_Query() // get username and password?
if ($user['username'] == $username && $user['password'] == $password)
{
return $user;
}
elseif($user['username'] == $username && $user['password'] !== $password)
{ // here the password doesn't match
// update failed_login_attemps += 1
}