【发布时间】:2009-07-05 12:51:02
【问题描述】:
我正在运行一个支持 Zend Framework 的网站,它似乎在会话方面存在严重问题。我有一个 5 步流程,我将表单数据保存在步骤之间的会话中,然后在最后一步将其保存到数据库中。
当我们建立网站时,有时会话会消失并迫使我们重新启动。现在它似乎又可以工作了,但最近我们发现 Internet Explorer 8 存在问题。它在步骤 2 -> 3 之间失败并忘记了会话。它在 IE6、IE7、FF、Chrome、Safari 甚至我的移动网络浏览器 (SE P1) 中都能正常工作。
我们将会话存储在数据库中,如果我停用会话数据库处理程序,它就可以工作。使用数据库和不使用它进行会话有什么区别?如果我切换回来,我会丢失一些东西吗?
引导程序:
/* Start session */
$saveHandler = new Zend_Session_SaveHandler_DbTable(array(
'name' => 'sessions',
'primary' => 'id',
'modifiedColumn' => 'modified',
'dataColumn' => 'data',
'lifetimeColumn' => 'lifetime'
));
Zend_Session::rememberMe((int) $config->session->lifetime);
$saveHandler->setLifetime((int) $config->session->lifetime)
->setOverrideLifetime(true);
Zend_Session::setSaveHandler($saveHandler);
Zend_Session::start();
在我的步进控制器中
$session = new Zend_Session_Namespace('wizard');
然后我只是在 $session 的 stdClass 中使用 $session 保存数据。
【问题讨论】:
-
您能提供一些代码吗? Zend_Session 集成,session_set_save_handler() 等
-
我用一些代码示例更新了我的问题
标签: php zend-framework session