【发布时间】:2013-08-11 03:34:10
【问题描述】:
我对(最新的)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());
有人知道为什么会出现这个问题吗?谢谢!
【问题讨论】:
-
我的应用程序也有类似的问题。但是我知道我的错误。也许你也在做同样的事情?:当用户登录时,我设置了一些偏好。当用户注销时,我不会破坏会话。我只是将首选项设置为空(set_userdata('mypref',“”))。当用户尝试再次登录时,它会失败。删除包含所有信息的浏览器缓存并尝试再次登录...我不知道您何时进行重定向。也许这是一个必要的信息?!
-
你好祖鲁克。在我的情况下,会话在注销时被破坏,所以这不是问题。但是感谢您的评论!
-
您发布的所有代码看起来都很好,如果不发布更多代码,任何人都可能很难帮助您。您是否尝试过调试它(在登录之前/期间/之后回显变量/会话的值?)日志中有任何错误吗?
标签: php codeigniter session