2012-07-31 127 views
4

我使用最新版本的PHP和MySQL運行Apache 2.2。PHP會話超時爲0,但會話仍然過期

在我的PHP.ini文件中,我可以看到會話超時設置爲0,這意味着會話保持活動狀態直到瀏覽器關閉。

但是,我注意到,有時候在早上進來,並且讓瀏覽器打開並在一夜之間登錄,會話似乎已經過期。

是否有任何其他配置設置會導致會話過期?我只是想玩弄價值,看看什麼樣的時間最適合我的網站。

非常感謝

+2

你應該看一看接受回答這個問題:http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes它可能會有所幫助。 – Willem 2012-07-31 12:04:26

回答

4

你可以試試:

http://in2.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

你可以把這個在你的PHP文件,第二個參數是之後的數據將被視爲秒數'垃圾'並可能被清理乾淨。 :

ini_set('session.gc_maxlifetime', 30*60); 

希望得到這個幫助!

編輯:

是的,我要指出,感謝您指出。

正如威廉

建議「調用該函數的在session_start()之前進行; - 威廉」

例子:

<?php 

ini_set('session.gc_maxlifetime', 30*60); 
session_start(); 

?> 
+0

如果你使用ini_set(),你可能應該包含它。這個函數的調用必須在session_start()之前進行; – Willem 2012-07-31 12:16:43

+0

謝謝,會放棄這個! – Eds 2012-07-31 20:22:06

+0

很高興幫助你! – 2012-08-01 07:18:48