0

我对(最新的)Codeigniter 有一个奇怪的问题。我使用会话类进行登录。登录后,我在会话中存储了一些用户数据。

我在本地开发了我的应用程序,并且登录工作正常。申请完成后,我将其上传到我的网络服务器http://mijn.exova.nl/。该应用程序运行良好一天。但是一天后,登录后会话不会存储。我从本地再次上传了代码,但问题仍然存在。在重定向之前会话仍然存在。重定向后会话为空。

代码:

配置设置会话(默认)

$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;
$config['cookie_prefix']        = "";
$config['cookie_domain']    = "";
$config['cookie_path']  = "/";
$config['cookie_secure']    = FALSE;

创建会话(在库中)

$this->CI->session->set_userdata('exova_login', true);
$this->CI->session->set_userdata('exova_userdata', $userdata);
$this->CI->session->set_userdata('exova_rollen', $rollen);
$this->CI->session->set_userdata('exova_school', $school);

重定向(在会话正常之前,在会话为空之后)

redirect(base_url());

有人知道为什么会出现这个问题吗?谢谢!

4

1 回答 1

0

它再次起作用!确切的问题是未知的,但是当我删除所有浏览器数据时,它又可以工作了。我了解到设置会话不两次非常重要。我通过添加这个来解决它:

if($this->CI->session->userdata('exova_login') == false){

围绕会话集。会话永远不会设置两次,这确保了可以避免此类问题。感谢您的评论。

于 2013-08-09T09:17:00.590 回答