我的登录页面出现问题,正在阅读登录功能
在我的注册页面上,我很自豪地说这是完美的
这是我的密码哈希码
$password = password_hash($password, PASSWORD_BCRYPT);
我的登录页面有2个字段
电子邮件& 密码
我已经清理了我的代码并解决了一些问题
功能正在运作
当我输入电子邮件和密码时会触发
警告!电子邮件或密码不正确
在顶部加上错误
注意:未定义的索引:第249行的C:\ Program Files(x86)\ Zend \ Apache2 \ htdocs \ CMS \ functions \ functions.php中的密码
这是第249行 $ db_password = $ row ['password'];
/* Validate Login */
function validate_login()
{
$errors = [];
if ($_SERVER['REQUEST_METHOD'] == "POST") {
$email = clean($_POST['email']);
$password = clean($_POST['password']);
if (empty($email)) {
$errors[] = "Email Required";
}
if (empty($password)) {
$errors[] = "Password Required";
}
if (! empty($errors)) {
foreach ($errors as $error) {
echo validation_errors($error);
}
} else {
if (login_user($email, $password)) {
redirect("../account/profile.php");
} else {
echo validation_errors("Email or Password Incorrect");
}
}
}
} // End Function
/* User Login */
function login_user($email, $password)
{
$sql = "SELECT user_pwd, uid FROM userss WHERE user_email = '" . escape($email) . "'";
$result = query($sql);
if (row_count($result) == 1) {
$row = fetch_array($result);
$db_password = $row['password'];
if (hash_algos($password) == $db_password) {
return true;
} else {
return false;
}
}
}// End Function
答案 0 :(得分:0)
看起来您缺少validate_login()
函数的右括号,因此只有在调用第一个函数后才定义login_user()
函数。因此,当您在validate_login()
函数中进行操作时,在创建它之前调用login_user()
函数,因为它是在if语句完成之后创建的。
答案 1 :(得分:0)
好的,我刚刚发现了问题
if (hash_algos($password) == $db_password) {
return true;
} else {
return false;
}
将其更改为此
if(password_verify($password, $db_password)){
return true;
} else {
return false;
}