2014-11-04 8 views
1

我目前正在研究Codeigniter最新版本,我嘗試創建用戶系統管理,並將會話設置爲以下代碼但Codeigniter不會刪除舊會話行的現有行,而是嘗試插入新行。 它可能會讓我的表用戶卡住,或者因爲它將存儲更多(超過5000rowsrows)的用戶會話行,或者如果所有會話行永遠保留並且不刪除或更新現有的會話數據行,我的數據庫連接可能會出錯。Laravel最新版本是否像Codeigniter lates版本一樣在數據庫中保留會話行?

Laravel如何將自己的會話行永久保留在自己的數據庫中,或者在用戶關閉瀏覽器或自己彈出後自動刪除用戶的行。

此外,我沒有看到我的IP顯示在我的數據庫上。

$config['sess_cookie_name']  = 'ci_session'; 
$config['sess_expiration']  = 7200; 
$config['sess_expire_on_close'] = TRUE; 
$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; 

enter image description here

請幫忙解決我的問題,如果可能的話讓我有些IDEAR

+0

我不知道拉拉維爾做了什麼,但不是到期日期問題在這裏? – ArjanSchouten 2014-11-04 07:34:56

+0

什麼意思是我想讓我的sess_expiration正確嗎?我希望我的用戶可以登錄並保持會話時間超過2小時,但我更改了sess_expiration = 100它仍然是同樣的事情,它仍然保持所有的表中會話的行數據庫不要刪除 – hengsopheak 2014-11-04 07:58:27

+0

也許你必須刪除過期的會話你是自己的。你可以爲它創建一個cron。 – ArjanSchouten 2014-11-04 08:37:11

回答

4

隨着Laravel,你可以store session data一個文件,一個數據庫,一個cookie,或者像memcached的緩存或Redis的。 Laravel清理基於在V4.2中app/config/session.php一個lottery設置會話過期的條目,並在config/session.php在5.0版:

/* 
|-------------------------------------------------------------------------- 
| Session Sweeping Lottery 
|-------------------------------------------------------------------------- 
| 
| Some session drivers must manually sweep their storage location to get 
| rid of old sessions from storage. Here are the chances that it will 
| happen on a given request. By default, the odds are 2 out of 100. 
| 
*/ 
'lottery' => [2, 100], 

調整lottery值改變概率垃圾收集將在任何給定的要求進行。要強制清除,將賠率設置爲1:1(即如果lottery中的兩個值匹配)將強制Laravel在下一個請求中刪除所有過期的會話數據。

+0

非常感謝 – hengsopheak 2014-11-08 01:53:10

相關問題