2012-06-03 20 views
0

我對Zend_Auth的會話設置超時問題,這是我的代碼:的Zend_Session_Namespace和setExpirationSeconds

$authSession = new Zend_Session_Namespace('Zend_Auth'); 
$authSession->setExpirationSeconds(60*60*24*1); 

此代碼應該會在1天之後到期,但約30分鐘actualy會議爲止。任何人都知道什麼是錯的?謝謝。

+0

可能是你不允許改變會話超時? – opHASnoNAME

+0

您是否在使用OpenId之類的遠程適配器,其中服務器可能會過期嗎? – RockyFord

+0

這可能會幫助你:。 –

回答

6

php.ini中的默認session.gc_maxlifetime值,它指定會話數據將被視爲「垃圾」爲24分鐘的秒數。

調用Zend_Session_Namespace::setExpirationSeconds()是Zend Framework的內部函數,它不會影響會話cookie本身或服務器上的會話數據。

請務必相應地調整您的session.gc_maxlifetime值,以免PHP在您希望之前刪除數據。您可以在php.ini直接設置,或者你可以在你的引導地方使用ini_set,或從您的ZF application.ini文件,使用類似resources.session.gc_maxlifetime = 864000

參見:Zend Framework Automatic Logout after inactivity
第2 persisted login with Zend_Session::rememberMe
How do I create persistent sessions in PHP?
第4

+0

864000 = 10天。 1天,使用86400 –