2011-04-06 45 views
2

我使用CI 1.7.3,这里是我的设置:CodeIgniter会话消失Bug?

$config['sess_cookie_name']  = 'ci_session'; 
$config['sess_expiration']  = 0; 
$config['sess_encrypt_cookie'] = FALSE; 
$config['sess_use_database'] = TRUE; 
$config['sess_table_name']  = 'sessions'; 
$config['sess_match_ip']  = FALSE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update']  = 300; 

我不能想出导致会话过期,似乎只是随机的,对于用户来说非常令人沮丧的步骤。

回答

2

我有同样的问题。 CodeIgniter会话库存在一个设计缺陷,当连续提交两个或多个请求时(例如执行多个AJAX请求时)会导致会话意外销毁。我已经提交了一个错误报告,在此处详细解释:https://github.com/EllisLab/CodeIgniter/issues/154

现在,您可以通过设置sess_use_database = FALSE来实施解决方法。希望有人很快解决这个问题。

+0

一些其他修复人都做过: http://codeigniter.com/forums/viewthread/172415/ http://www.mattwillo.co.uk/blog/2010-08-23/codeigniter- database-session-fix/ – 2011-04-28 22:38:58

+0

我还没有测试过[下面的方法](http://ellislab.com/forums/viewthread/102456/#523991),但它应该在更新时保留会话ID。 – machineaddict 2013-04-18 06:46:39