【发布时间】:2010-12-25 15:57:12
【问题描述】:
在登录系统中,如何判断用户是否输入了错误的密码?您是否执行两个 SQL 查询,一个查找用户名,然后一个查找用户名和匹配的(加盐+散列等)密码?我问这个是因为如果用户输入的密码不正确,我想更新我的 failed_login_attempts 列。
如果您执行两个查询,这不会增加开销吗?
如果您进行这样的查询,您将如何判断输入的密码是否正确,或者用户名是否不存在:
SELECT * FROM author
WHERE username = '$username'
AND password = '$password'
LIMIT 1
( ^ NB:我保持简单,将使用哈希和盐,并将在真实的输入中清理输入。)
类似这样的:
$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
}
【问题讨论】: