3 回答
TA贡献1784条经验 获得超7个赞
您的方法有几个问题,您正在打印用户名
$username = $this->session->userdata('logged_in');
echo $username;
但是您没有在任何地方分配用户名,因此要完成此操作,您可以在登录类中进行一些选择
class UserLogin extends CI_Model{
public function checkLogin($email, $password) {
$this->db->where('email', $email);
$this->db->where('password', $password);
$query = $this->db->get('users');
if($query->num_rows())
{
$user = $query->row_array();
print_r($user); die(); // remove die after testing
return $user;
}
return false;
}
比你能回声:
$user = $this->session->userdata('logged_in');
echo $user['username'];
第二个问题是这种方式登录用户非常不安全,您可以对密码进行md5或其他加密。IE:
$this->db->where('password', md5( $password));
或更好的用户ion_auth library,默认情况下为您提供各种选项。
TA贡献1993条经验 获得超5个赞
更改以下CheckLogin()类似然后检查用户数据
public function checkLogin($email, $password) {
$this->db->where('email', $email);
$this->db->where('password', $password);
$query = $this->db->get('users');
if($query->num_rows() == '1'){
$data = $query->row_array();
$this->session->set_userdata(array('name'=>$data['name'],'loggedin'=>'1'));
}
return $query->num_rows();
TA贡献1998条经验 获得超6个赞
请尝试更改模型
class UserLogin extends CI_Model
{
public function checkLogin($email, $password) {
$this->db->where('email', $email);
$this->db->where('password', $password);
return $this->db->get('users');
}
- 3 回答
- 0 关注
- 85 浏览
添加回答
举报