从代码点火器的数据库中选择加密密码



我在登录用户时遇到问题。我用md5方法将加密的密码保存在数据库中。现在,当我想选择具有加密密码表单数据库的用户时,它返回null。

这是我的代码:

控制器:

function login(){
    $username=$this->input->post('username');
    $password=$this->input->post('password');
    $user=$this->mymodel->login($username,$password);
    if($user)
      $this->load->view('home');
    else
      echo "The user name or password is wrong";
}

型:

function login($username,$password){
    $where=array('username'=>$username,'password'=>md5($password));
    $this->db->select()->from('user')->where($where);
    $query=$this->db->get();
    return $query->first_row('array');
}

但此查询返回 null;

通过查看您的代码,我注意到您在 select 函数中没有指定任何行。您可以传入一个星号"*"来表示从数据库表中获取所有行。此外,您的 where 子句可以分成两行。最后,行函数可用于获取查询结果的第一行。

型号代码:

function login($username, $password
{
    $this->db->select('*')
             ->from('user')
             ->where('username', md5(username))
             ->where('password', md5($password));
    $query = $this->db->get();
    return $query->row();
}

我还建议您不要使用 md5 来存储密码。有更强的加密方法可用于 PHP。此外,在数据库中存储加盐密码时,最好使用加盐密码。有关更多信息,请参阅如何在 MySQL 中安全地存储用户的密码和盐?

您可以在代码点

火器手册中找到有关如何使用代码点火器活动记录类的更多信息。

最新更新