2009-07-05 125 views
0

我正在运行一个Zend框架供电的网站,它似乎有严重的会议问题。我有一个5步的过程,将表单数据保存在步骤之间的会话中,然后在最后一步将其保存到数据库中。Zend Sessions问题与IE8

当我们建立网站时,有时会话刚刚离开,迫使我们重新启动。现在它似乎再次运行,但最近我们发现了Internet Explorer 8的问题。它在步骤2 - > 3之间失败并忘记了会话。它在IE6,IE7,FF,Chrome,Safari甚至我的移动网络浏览器(SE P1)中都能正常工作。

我们正在将我们的会话存储在数据库中,并且如果我停用会话db处理程序,它将起作用。使用数据库和不使用会话有什么区别?如果我切换回去,是否会丢失一些东西?

引导:

/* 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的在$会议。

+0

能否请您提供一些代码? Zend_Session集成,session_set_save_handler()等 – 2009-07-05 13:32:18

+0

我用一些代码示例更新了我的问题 – Emil 2009-07-11 12:13:13

回答

0

你的会话是如何存储的?这是发生在Zend_Form multistep还是你自己的?

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

+0

我使用stdClass自己存储它。 什么太大,你可以存储多少会话? – Emil 2009-07-11 12:14:13

1

添加这个头来解决这个问题:

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