2012-01-20 88 views

回答

1

使用onunload事件發送Ajax請求到服務器會破壞會話

參見:onunload

+0

似乎會話在Chrome中被銷燬,但不在Firefox中 – poojitha

1

通常,當用戶代理終止,當最終用戶退出,如會議結束網頁瀏覽器程序。但是,您的應用程序可以通過使用永久性Cookie,提供在客戶端程序的生命週期之外擴展用戶會話的能力。

如果您不使用Zend_Session::rememberMe(),則應在關閉瀏覽器的所有窗口後將其銷燬。

+0

是的,你能告訴我如何銷燬會話嗎? – poojitha

+0

你在代碼中的任何地方使用Zend_Session :: rememberMe()嗎? – Oleg

+0

如果你顯示你的代碼,它會更具信息量。 – Oleg

0

會話變量不會被銷燬,直到它過期或您清除瀏覽器cookie。 當我們在註銷之前關閉瀏覽器時,您會看到同樣的問題。

0

您應該在您的php.ini或代碼中將session.cookie_lifetime設置爲0。

The value 0 means "until the browser is closed." 

http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime

代碼:

session_set_cookie_params (0); 
+0

您是否知道Zend Framework中是否有API可以觸發該設置? – hakre

+0

http://framework.zend.com/manual/en/zend.session.global_session_management.html#zend.session.global_session_management.forgetme
Zend_Seesion :: forgetMe() – RockyFord

0

我得到了同樣的問題,當我使用Zend的記得我的選擇,我沒有找到解決辦法,但有一個好主意,存儲會話使用zend db處理程序並通過編寫簡單的查詢刪除過期的會話(如果它是cron任務,這是一個很好的解決方案),刪除舊的cookie。

有關Zend的會話分貝處理程序,你可以在這裏找到更多的信息,

http://framework.zend.com/manual/en/zend.session.savehandler.dbtable.html

相關問題