2009-07-05 127 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"');