CodeIgniter 3 MySQL-验证用户密码不起作用

克里斯

以下函数未返回true,我也不明白为什么。我没有收到任何数据库错误,但是由于某种原因,它肯定会返回false。表和字段名称是100%正确的。

public function verify_password($username, $password){
    $this->db->select('password');
    $this->db->from('user_account');
    $this->db->where('username', $username);
    $query = $this->db->get();

    if($query == $password){
      return true;
    } else {
      return false;
    }
  }
朋友

问题是您需要从查询中获得一些结果。阅读有关生成查询结果的信息

修改方法如下

public function verify_password($username, $password)
{
    //use method chaining, it's more efficient and less typing
    $query = $this->db
        ->select('password')
        ->from('user_account')
        ->where('username', $username)
        ->get();

    //were any matching rows found?
    if($query->num_rows() > 0)
    {
        // get first row of data and check 'password' value against passed value
        // return is a boolean
        return $query->row()->password === $password;
    }

    //There are no rows that match so clearly not logged in
    return false;
}

正如您的问题中的注释所指出的那样,您不应存储纯文本密码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章