当我使用get_userdata进行会话时,它会提供Array([__ci_last_regenerate] => 1561454057),但是当我使用userdata时,它将给出空的

时间:2019-06-25 09:21:28

标签: php codeigniter-3

我想在重定向后在另一个会话中获取当前会话的用户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;

2 个答案:

答案 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,这可能导致会话数据无法存储和/或检索。