我正在开发一个使用 CodeIgniter 2.1.0 创建的网站。
我注意到有时当我重新加载页面几次或非常快地打开几个页面时,或者当我在代码中出现错误(这些错误与会话无关)时,我会注销。
该网站使用名为 Ion_authand 的库进行识别:
public function logged_in()
{
$identity = $this->ci->config->item('identity', 'ion_auth');
return (bool) $this->ci->session->userdata($identity);
}
是否存在错误或我应该了解的内容?
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'cisession';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
在这个网站上,几乎每个页面上的会话都会更新。
这是我发现的:
CodeIgniter 的会话库中存在一个错误,该错误会破坏快速请求的会话。
您可以在这里找到有关此错误的更多信息:
https://github.com/EllisLab/CodeIgniter/issues/154
这个bug在最新的稳定版本2.1.3中仍然存在。
我通过将会话库替换为来自 GitHub 的 CI3-DEV 的会话库解决了这个问题:
https://github.com/EllisLab/CodeIgniter/blob/b211adee89f5fd2192051e9c0826146bd150f469/system/libraries/Session.php
并在我的配置中放置较长的 sess_expiration 和 sess_time_to_update ...我的配置是 86400 和 86500。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)