2011-04-06 73 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