登录页面哈希问题更新

时间:2015-12-27 03:01:37

标签: hash login passwords

我的登录页面出现问题,正在阅读登录功能

在我的注册页面上,我很自豪地说这是完美的

这是我的密码哈希码

  $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

2 个答案:

答案 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;
        }