Hash 登录页面哈希问题更新

Hash 登录页面哈希问题更新,hash,login,passwords,Hash,Login,Passwords,我的登录页面读取要登录的函数时出现问题 在我的注册页面上,我很自豪地说它非常完美 这是我的密码哈希码 $password = password_hash($password, PASSWORD_BCRYPT); 我的登录页面有两个字段 电子邮件& 密码 我重新清理了我的代码,解决了一些什么问题 功能正在发挥作用 当我输入电子邮件和密码时,它会触发 警告!电子邮件或密码不正确 加上顶部的一个错误 注意:第249行C:\Program Files(x86)\Zend\Apache2\htdoc

我的登录页面读取要登录的函数时出现问题

在我的注册页面上,我很自豪地说它非常完美

这是我的密码哈希码

  $password = password_hash($password, PASSWORD_BCRYPT);
我的登录页面有两个字段

电子邮件& 密码

我重新清理了我的代码,解决了一些什么问题

功能正在发挥作用

当我输入电子邮件和密码时,它会触发

警告!电子邮件或密码不正确

加上顶部的一个错误

注意:第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

看起来您的
validate\u login()
函数缺少一个结束括号,因此它仅在调用第一个函数后定义
login\u user()
函数。因此,在执行
validate\u login()
函数时,在创建
login\u user()
函数之前调用该函数,因为它是在if语句完成后创建的。

好,我刚刚解决了问题

if (hash_algos($password) == $db_password) {

            return true;
        } else {

            return false;
        }
改成这个

if(password_verify($password, $db_password)){

            return true;
        } else {

            return false;
        }