我目前对以下 php 代码有疑问:
if ($result['username'] == $_POST["name"]) {
$bcrypt = new Bcrypt(10);
$password = $_POST["password"];
$hashdb = $result['password'];
$hash = $bcrypt->hash($password);
$isGood = $bcrypt->verify($password, $hashdb);
if ($isGood == 1) {
if($result['active'] == 1) {
$_SESSION["login"] = $result['firstname']." ".$result['lastname'];
$_SESSION["functionlevel"] = $result['functionlevel'];
header("location:startpagina.php");
} else {
echo 'Account blocked or not activated';
}
} else {
echo 'Password not correct';
}
} else {
echo 'Username not correct';
}
我正在使用Andrew Moore bcrypt 类来散列和验证密码。由于某种原因,我的 if 语句似乎失败并在第二个if
语句之后突然停止。如果此失败,则显示密码不正确选项。但如果它是真的它不会继续到第三if
。
我在第二个中尝试了不同的选项,if
例如:
if ($isGood){
if ($isGood == true){
if ($isGood !== false){
if ($isGood !== 0){
但不知何故,如果满足该声明,这些似乎都不会继续。它只是再次显示登录页面,而不是继续startpagina.php
。登录页面在没有 bcrypt 实现的情况下运行良好,并且只需检查两个 md5 哈希值。
有人可以帮我找出问题吗?