2014-02-24 90 views
0

我正面臨着CodeIgniter Session的問題。我的應用程序是基於Ajax的,並且依賴於存儲在數據庫中的用戶會話來正確訪問和瀏覽我的web應用程序。我不知道爲什麼,但是我的會話甚至被定義爲* sess_expiration *到。我設置像這樣的會話配置:阻止銷燬會話的CodeIgniter

$config['sess_cookie_name']   = 'cookie'; 
$config['sess_expiration']   = 0; 
$config['sess_expire_on_close']  = TRUE; 
$config['sess_encrypt_cookie']  = TRUE; 
$config['sess_use_database']  = TRUE; 
$config['sess_table_name']   = 'control'; 
$config['sess_match_ip']   = FALSE; 
$config['sess_match_useragent']  = TRUE; 
$config['sess_time_to_update']  = 120; 

我可以做些什麼來保持我的會話活着?

+0

在看我的解決同樣的問題:這個計算器帖] [1] [1 ]:https://stackoverflow.com/questions/12735456/codeigniter-destroying-my-session-without/22469991#22469991 –

回答

1

這是一個很普通的笨問題。我有很多與它的問題,但最後卻以這個配置工作:

$config['sess_cookie_name'] = 'ci_session'; 
$config['sess_expiration'] = 604800; // 604800 = 1 week 
$config['sess_expire_on_close'] = FALSE; 
$config['sess_encrypt_cookie'] = FALSE; 
$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'] = 604800; // 604800 = 1 week 
+0

好吧,但是當我關閉瀏覽器並加密cookie時,我需要銷燬會話,因爲我的應用程序在一天中遭受了許多攻擊,而且我需要每隔120s更新一次會話。 – user3108967

+0

我認爲會議正在重新生成時發生註銷。所以你應該嘗試任何其他會話機制。谷歌的「codeigniter本地會話」,這可以幫助。 –

1

你的配置更改爲

$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'] = 'control'; 
$config['sess_match_ip'] = FALSE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 
$config['sess_persistant_cookie'] = FALSE; 
+0

好的,但我需要銷燬會話,當我關閉瀏覽器,加密cookie,因爲我的應用程序遭受許多在一天內發起攻擊,將會話存儲在數據庫中。 – user3108967