2011-01-28 112 views
3

我有一個會話,在30分鐘的不活動被銷燬或23.4小時後被銷燬。PHP會話到期

我的問題是無論活動會話在30分鐘後被銷燬。因此,如果用戶在23.4小時內一直處於活動狀態,會話應保持23.4小時,然後銷燬,迫使用戶再次登錄,但即使用戶在這30分鐘內持續活動,會話也會在30分鐘後被銷燬。

由於垃圾收集器查看修改的時間而不是訪問的時間,會話正在使用time()進行更新,以便在用戶在網站上執行任何操作時更新修改的時間。

這裏是在php.ini會話設置:

Directive     Local Value  Master Value 
session.cache_expire  30    30 
session.cookie_lifetime  1800   1800 
session.gc_divisor   1000   1000 
session.gc_maxlifetime  84400   84400 
session.gc_probability  1    1 
session.save_handler  files   files 

如果您需要任何其他的會議INI設置讓我知道。

任何幫助,這將不勝感激。

感謝

+0

有兩種選擇在這個其他StackOverflow的問題是如何工作的一個很好的解釋:http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after- 30分鐘 – Merijn 2011-01-28 11:05:45

回答

3

session.cookie_lifetime設置爲30分鐘,這樣的cookie將過期後30分鐘,它whont被髮送到服務器上的下一個請求(後30分鐘已經過去了),而PHP就會發出另一個會話因爲他/她(php)在請求中沒有收到它。

+0

對服務器的每個請求都不更新cookie嗎? – Nalum 2011-01-28 11:11:34

0
  1. 請勿觸摸會話的默認設置。保留默認值。

  2. 使用會話本身檢查會話生存期。