2012-03-28 66 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