我正在尝试创建一个登录页面,我遇到了一些麻烦。即使我知道我的.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。
答案 0 :(得分:0)
由于unHash
是function
,因此它没有被执行(我没有看到它被调用),所以$hashedPass
没有被设置。将来,请尝试添加一些调试语句(例如,只需在$pass
之前打印$hashedPass
和return false;
。