会话不在CI的其他控制器中工作

时间:2012-10-19 09:46:24

标签: php codeigniter

我在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;

我搜索所有之前提出的问题,但没有解决这个问题......请帮我解决.. 欢迎所有建议。提前致谢。

2 个答案:

答案 0 :(得分:1)

在我为您工作的代码中更新以下内容:

$config['sess_expiration']  = 8600;
$config['sess_match_useragent'] = FALSE;

答案 1 :(得分:0)

问题是因为您没有将会话数据保存在数据库中。所以要保存在cookie中。我们都知道cookie有4KB的限制。因此,请将您的会话数据数组保存在数据库中,如下面的codeigniter用户指南中所示的教程。

http://codeigniter.com/user_guide/libraries/sessions.html