这是我的用户模型
public function user_login($email, $password)
{
$this->load->library('session');
$this->db->where('email', $email);
$this->db->where('password', $password);
$query = $this->db->get('users');
if($query->num_rows() > 0) {
foreach($query->result() as $row) {
$data = array(
'id' => $row->id,
'username' => $row->username,
'email' => $row->email
);
$this->session->set_userdata($data);
}
return 1;
} else {
return false;
}
}
在我的视图中,我有一个div来显示用户的会话用户名
<div>
<?php echo $this->session->userdata('username'); ?>
</div>
它没有出现什么可能是错的?
当我像这样打印userdata()
的内容时
<?php print_r($this->session->userdata()); ?>
我收到回复
Array ( [__ci_last_regenerate] => 1502894606 )
答案 0 :(得分:0)
简化您的查询
$data = $this->db->where(['email'=>$email, 'password'=>$password])->get('users')->row_array();
if($data){
$_SESSION['id'] = $data['id'];
$_SESSION['username'] = $data['username'];
$_SESSION['email'] = $data['email'];
return TRUE;
}
else{
return FALSE;
}
在视图中:
<div>
<?php echo $_SESSION['username']; ?>
</div>
答案 1 :(得分:-1)
尝试将其打印出来echo $data['username']
,其中$data
是您从控制器发送到视图的变量
答案 2 :(得分:-1)
如果您的用户名实际上与
一致$row->username
然后在该数组之后,添加
$this->load->vars( array('username' => $row->username) );
在您看来,您将能够获得用户名
echo $username;
这假设您在设置会话后没有重定向。