我想在重定向后在另一个会话中获取当前会话的用户ID,但它显示为空值。我正在使用php 7.1.23和ci 3.1.10。
$this->session->set_userdata('user_id',$user_id);
return redirect('Admin/Admin_dashboard');
$user_id = $this->session->get_userdata('user_id');
print_r($user_id); exit;
答案 0 :(得分:0)
尝试-
$this->session->set_userdata('user_id',$user_id);
return redirect('Admin/Admin_dashboard');
$user_id = $this->session->userdata('user_id');
print_r($user_id);
exit;
您已经使用了$ this-> session-> userdata('user_id');
答案 1 :(得分:0)
Session
方法get_userdata()
不接受参数,因此您使用它不会引发错误令我有些惊讶。即
$this->session->get_userdata('user_id'); //should throw an error`
$this->session->get_userdata()
返回整个$_SESSION
数组。
$this->session->userdata($key)
如果存在键,则返回$_SESSION[$key]
,否则返回NULL。
userdata()
方法仅用于向后兼容。从session
获取单个项目的推荐方法是使用此语法。
$user_id = $this->session->user_id;
如果键'user_id'存在,则上述方法会将$user_id
设置为$_SESSION ['user_id']
,否则将其设置为NULL。如果$_SESSION
不存在,它也会返回一个空数组,这表明session
尚未启动。但是,因为您看到了__ci_last_regenerate
,所以我们知道session
正在运行。
空数组的另一个可能原因可能是您没有正确配置session
,这可能导致会话数据无法存储和/或检索。