使用CodeIgniter我正在尝试将数据库中的用户ID添加到会话数据中。
我看过这个question并且它对我不起作用
控制器代码:
function validate_credentials()
{
$this->load->model('users_model');
$query = $this->users_model->validate();
// if the users credentials validated...
if($query)
{
$user_id = $this->users_model->get_userID($this->input->post('email'));
/*
I dont need to worry about insecure code because all incoming data
is filtered (set in config.php)
*/
$data = array(
'username' => $this->input->post('username'),
'is_logged_in' => true,
'user_id' => $user_id
);
$this->session->set_userdata($data);
redirect('site/members');
}
else
{
// incorrect username or password
$this->index();
}
}
模型代码:(该列在db的users表中称为“userID”)
function get_userID($email){
$this->db->where('email',$email);
$query = $this->db->get('users');
foreach ($query->result() as $row)
{
$user_id = $row->userID;
}
return $user_id;
}
当我在视图中调用数组时,不会显示用户ID。
<?php $this->session->userdata('user_id');?>
答案 0 :(得分:2)
如果您只想查看userID,请尝试..
<?php echo $this->session->userdata('user_id');?>
答案 1 :(得分:0)
$ this变量在视图中与在控制器中不同。如果你想以这种方式引用会话,你必须得到这样的$ CI实例:
$CI = &get_instance();
$CI->session->userdata('user_id');
答案 2 :(得分:0)
尝试回应您的查询,它总是有助于理解您的问题,如尝试回声
$user_id
和$data
有时由于小错误,你在查询中得不到值,echo会显示结果