【问题标题】:Zend Sessions problem with IE8IE8 的 Zend 会话问题
【发布时间】: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


【解决方案1】:

添加此标题以解决此问题:

header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');

【讨论】:

  • 你能解释一下标题的作用吗?
  • 这解决了我的问题,但我真诚地感谢您的解释。
【解决方案2】:

您的会话是如何存储的?这是在 Zend_Form 多步中发生的,还是您自己的?

我的猜测是步骤之间的数据变得太大而无法存储在会话存储策略中。

【讨论】:

  • 我使用 stdClass 自己存储它。什么太大了,一个会话可以存储多少?
  • 我的会话包含大约 1 kb 的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多