2010-12-16 94 views
3

我正在使用會話將項目存儲在購物車中。我可以創建和持久的會議,但也有一些奇怪的問題:Zend框架會話正在丟失

  1. 當我關閉在Firefox(而不是整個瀏覽器)標籤,會議似乎已經丟失。有時它不會發生,但通常它不會發生。

  2. 每次刷新頁面或轉到其他頁面時,會話ID都會更改爲新的頁面。我通過使用瀏覽器查看cookie,並在服務器上查看了這一點。另外,一次最多可以在服務器上存儲4個會話。這一切正常的行爲?

  3. 這些會話似乎隨機丟失......它可能會持續幾分鐘或一個多小時。

我只是遵循Zend手冊,但沒有解決任何這方面的運氣。在引導程序中,我也有Session :: start()和Session :: rememberMe()。我使用正常的文件存儲會話,只是存儲在/ var/lib/php5,我認爲這是Zend框架喜歡放它。

感謝任何方向

+1

您是否僅將cookie用於會話或http? – 2010-12-16 21:48:24

+0

什麼是正確答案? – emaillenin 2012-09-20 14:43:16

回答

0

檢查您的垃圾清理時間爲PHP - session.gc_maxlifetime。如果它很短,它將從您的鼻子下方刪除會話文件,並使其顯示爲「隨機」。

默認值是24分鐘(1440秒)

這應設置爲(或大於)無論你的cookie的生命期(session.cookie_lifetime)在您的應用程序設置。

0

我以前也遇到了這個,你會想要做這樣的事情,你在啓動會議上,對我來說這是我的bootstrap.php

if (!empty($_REQUEST['PHPSESSID'])) { 
     Zend_Session::setId($_REQUEST['PHPSESSID']); 
    } 

    Zend_Session::start(); 

這應該解決的問題。當用戶有一個會話時,它通常會在每個請求都被傳遞。