2011-05-20 244 views
5

有人可以解釋如何使會話在PHP中持續更長時間,但不使用php.ini?PHP會話超時

我試過在.htaccess如下:

<IfModule mod_php5.c> 
    #Session timeout 
    php_value session.cookie_lifetime 3600 
    php_value session.gc_maxlifetime 3600 
</IfModule> 

我也試過:

ini_set('session.gc_maxlifetime', '3600'); 

但他們都不是工作。

有什麼想法?

+0

你肯定與「3600」?我的意思是你有使用報價,你有沒有嘗試,如果ini_set('session.gc_maxlifetime',3600); ??? (3600附近沒有單引號) – bungdito 2011-05-20 17:54:57

+0

比什麼時間長?使用您當前的配置,您的會話應持續一個小時。 – Gumbo 2011-05-20 17:59:53

+0

是的 - 用我上面輸入的代碼 - 這也行不通。我只是想增加到需要的長度... – user398341 2011-05-20 18:05:17

回答

8

好了 - 我已經找到了方法和它的作品 - 在.htaccess我只是添加了以下增加超時5小時:

php_value session.cookie_lifetime 18000 
php_value session.gc_maxlifetime 18000 
7

在許多共享主機上,所有會話都存儲在同一位置。由於垃圾收集的方式,這意味着每個人的會話都會在最短的GC時間間隔後被刪除。

一種解決方案是要做到:

php_value session.save_path "/my/personal/path" 
php_value session.gc_maxlifetime "3600" 

或者你可以設置一個custom session save handler。首先嚐試更改保存路徑,因爲自定義處理程序有點棘手。