2012-03-28 59 views
0

我一直在嘗試讓Zend會話正常工作時遇到很多麻煩。基本上,我需要做的是在網站加載時設置一個變量。這個變量應該在會話的整個生命週期中保持不變。Zend會話似乎在每個頁面加載時重新啓動

爲了使之成爲一個更加清楚一點,讓我們以下情形:

在Bootstap.php,我有

protected function _initSession() { 
    $session = new Zend_Session_Namespace(); 
    $session->testValue = rand(0, 100); 
} 

然後,我在其他地方訪問它的應用程序如下:

$session = new Zend_Session_Namespace(); 
echo $session->testValue; 

現在我希望$ session-> testValue將被分配一次,並且該值對於每個後續頁面請求都是相同的。但實際上,發生的事情是$ session-> testValue每次都是一個新的隨機數。

我在做什麼錯?

回答

2

每次運行Bootstrap.php它都會覆蓋testValue屬性。只有在尚未設置的情況下才進行設置。

protected function _initSession() { 
    $session = new Zend_Session_Namespace(); 
    if (!isset($session->testValue)) { 
     $session->testValue = rand(0, 100); 
    } 
} 
+0

我以爲自己的想法很多,但如果我這樣做,每次刷新頁面時都會得到一個新的隨機值。 – Jedediah 2012-03-28 20:17:51

+0

如果它有任何區別,會話將被存儲在文件系統中,而不是存儲在cookie中 – Jedediah 2012-03-28 20:19:49

+0

您已驗證會話文件正在生成? – nachito 2012-03-28 20:36:32

相關問題