我对 Zend_Session 很陌生。我确实有一个 Zend Framework 应用程序正在运行;现在我想为它添加一些“功能”。其中一项功能需要会话中包含的一些数据,因此它存储在用户将访问的所有站点上。
在我的引导程序中,我有
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initSession() {
Zend_Session::setOptions(array(
'use_only_cookies' => 'on',
'remember_me_seconds' => 864000
));
Zend_Session::start();
}
}
在我的模型中,有一个函数可以将给定关键字的数据存储到 $_SESSION 中:
$_SESSION['foo'][urlencode($keyword)] = array(
'data' => $base->some->foo[0]->fish->data
);
如果未设置会话密钥(带有关键字),则仅将新数据设置为会话。我用zend调试器检查过,一切运行良好。
现在,当我第一次调用页面时,一切都运行良好。当我重新加载页面(或移动到另一个页面)时,会话中的值消失了。所以,准确地说,键就在那里,$_SESSION 数组是(例如)20 个大小的条目。有一个条目,但它为空。
$_SESSION['foo']['my+foo']['data'] = null
当我打电话时:
Zend_Debug::dump($_SESSION['foo']['my+foo']);
我得到:
array (size=1)
'data' => null
所以,它就在那里,它扼杀了我的价值。
当我使用简单的 session_start() 时,让它运行的神奇巫术是什么?