IE8的Zend Sessions问题

时间:2009-07-05 12:51:02

标签: php zend-framework session

我正在运行一个支持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保存数据。

2 个答案:

答案 0 :(得分:1)

添加此标头可解决此问题:

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

答案 1 :(得分:0)

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

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