在我的系统中使用了一点点(25分钟 - 1.5小时)之后,用户会受到一些冲击.出于某种原因,我的会议有点染色.我认为客户端的cookie以某种方式丢失会话ID并创建一个新的.我正在保存我的会话数据Database
.
这是我的会议conf:
$config['sess_cookie_name'] = 'v2Session'; $config['sess_expiration'] = 32400; //session will be 9 hours, for a shift. $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = TRUE; $config['sess_use_database'] = TRUE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_match_ip'] = TRUE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 300;
现在,当我查看数据库时,我看到每个用户有多个会话.每次踢都意味着一个新会话,旧会话在到期之前不会被删除.当会话"分离"时,用户需要再次登录.
任何帮助进行故障排除将不胜感激.
编辑:
因此经过一些研究后我发现会话因为session_id
保存在会话中而死,cookie
并且session_id
会保存在database
不匹配的会话中.我怀疑当用户在不同的选项卡/窗口上加载2个页面时会发生这种情况.一个加载发生在会话更新session_id
和第二个加载(杀死会话)时session_id
.系统在中查找会话database
但未找到.结果:从系统+疯狂用户中踢出.
有没有人经历过这个?有没有人知道如何解决这个问题?