3

我在 login() 控制器中设置会话,其中登录用户详细信息在会话中设置。会话库是 autoload 。

$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;

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

4

2 回答 2

1

在您的代码中更新以下对我有用的内容:

$config['sess_expiration']  = 8600;
$config['sess_match_useragent'] = FALSE;
于 2015-09-29T14:35:39.410 回答
0

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

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

于 2012-10-19T11:08:14.590 回答