0

我正在使用 Phpass 对我的用户的密码进行哈希处理。密码的创建和散列 - 很好。登录时检查密码 - 很好。

但是,在将旧密码更改为新密码时检查旧密码 - 总是返回错误!

它基本上是相同的代码,但它永远不会返回 true,即使密码正确也是如此。我尝试通过输入密码并将其哈希值粘贴到函数中来直接检查密码,而不是从数据库和输入表单中调用它,但仍然返回 false。

这是有效的登录代码:

$user = $query->fetch(PDO::FETCH_ASSOC);

$t_hasher = new PasswordHash(8, FALSE);
$check = $t_hasher->CheckPassword($password, $user['password']);

if (!$check) { die("failed"); }
else { ... log them in etc.

这是更改密码检查,它不起作用:

$user = $query->fetch(PDO::FETCH_ASSOC);

$t_hasher = new PasswordHash(8, FALSE);
$check = $t_hasher->CheckPassword($oldpass, $user['password']);

if (!$check) { showMessage("Incorrect Password","Your password was not changed.","icon-lock", "warning"); }
else { ... change the password etc.

我很茫然,据我所知,没有任何可以想象的理由为什么这不起作用。

4

1 回答 1

1

原来我是个大白痴,忘记执行数据库查询以获取更改密码。

于 2013-05-23T14:00:58.370 回答