PHP-password_verify始终返回false

时间:2018-08-02 16:02:07

标签: php

在该论坛上提问之前,我试图检查代码中的错误在哪里。但是几个小时后,我为此感到非常生气。我想向我的项目添加密码哈希。不幸的是,我不知道怎么了。

    public function loginUser(string $email,string $password){
    $query = "SELECT id,name,surname,email,password,id_group 
                    FROM users 
                    WHERE email='".$email."'";
    $result = $this->db->query($query);
    if($result->num_rows == 1 ) {
        $data = $result->fetch_assoc();
        if(password_verify($password,$data['password'])){
            $this->setSessionUser($data);
        }
    }
}

还有什么...:

    public function setSessionUser(array $data){

    $_SESSION['is_logged'] = true;
    $_SESSION['id_user'] = $data['id'];
    $_SESSION['name'] = $data['name'];
    $_SESSION['surname'] = $data['surname'];
    $_SESSION['email'] = $data['email'];
    $_SESSION['id_group'] = $data['id_group'];
}

并生成哈希密码:

    public function generateHashPassword(string $password){
    $hashedPassword = password_hash($password,PASSWORD_BCRYPT,array('cost' => 12));
    return $hashedPassword;
}

在那之后,总是返回false并且我无法登录到帐户。是的,我写了一个很好的密码。

var_dump($password,$data['password']) return a good data info.

@edit: 我检查了有关解决此问题的每个主题。没有人能帮助我。

0 个答案:

没有答案