我在login()控制器中设置会话,其中在会话中设置登录用户详细信息。会话库是自动加载的。
$data = $this->login_model->login_admin();
$this->session->set_userdata('UserLoggedInDetails',$data); //set login user details
当我们这样做的时候
var_dump($this->session->userdata('UserLoggedInDetails'));
//它在同一控制器中打印所有登录用户详细信息
但是当我们在其他控制器或其他功能的同一控制器中执行时 -
var_dump($this->session->userdata('UserLoggedInDetails'));
打印array(0) { }
我的配置文件是 -
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = FALSE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
我搜索所有之前提出的问题,但没有解决这个问题......请帮我解决.. 欢迎所有建议。提前致谢。
答案 0 :(得分:1)
在我为您工作的代码中更新以下内容:
$config['sess_expiration'] = 8600;
$config['sess_match_useragent'] = FALSE;
答案 1 :(得分:0)
问题是因为您没有将会话数据保存在数据库中。所以要保存在cookie中。我们都知道cookie有4KB的限制。因此,请将您的会话数据数组保存在数据库中,如下面的codeigniter用户指南中所示的教程。