没有SQL数据库的PHP登录问题

时间:2015-04-25 19:21:00

标签: php login

我正在尝试创建一个登录页面,我遇到了一些麻烦。即使我知道我的.txt文档中有正确的密码,但我也不能让这段代码返回false(尽管它只是哈希)。

这是我的PHP文件,我不能停止不返回False:

<?php
$file1 = 'userlist.txt';
$file2 = 'passlist.txt';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $user = trim($_POST["usermail"]);
    $pass = trim($_POST["password"]);
}

$hashedPass = "";

$arr1 = file($file1);
$arr2 = file($file2);
$userKey = array_search($user, $arr1);


if ($userKey != false) {
    reset($arr2);
    for ($x = 0; $x <= $userKey; $x++) {
        next($arr2);
        if ($x == $userKey) {
            $hashedPass = current($arr2);
        }
    }
    echo $hashedPass;
}

if (password_verify($pass, $hashedPass)) {
    header("Location: worked.html"); //change this to direct user to market
}
else {
    /*header("Location: index.html"); //change this to direct user back to login page with error prompt*/
    print $pass;
    print $hashedPass;
    echo '<br>Invalid pass.';
    return false; 
}
?>

另外,如果你能想到我的代码中应该有的任何内容,请告诉我。

非常感谢。

编辑:立即更新了我的代码。仍然返回False。

1 个答案:

答案 0 :(得分:0)

由于unHashfunction,因此它没有被执行(我没有看到它被调用),所以$hashedPass没有被设置。将来,请尝试添加一些调试语句(例如,只需在$pass之前打印$hashedPassreturn false;