Проблема Zend Sessions с IE8

Я работаю на веб-сайте с Zend Framework, и, похоже, у него серьезные проблемы с сессиями. У меня есть 5 шагов, где я сохраняю данные формы в сеансе между шагами, а затем сохраняю их в базе данных на последнем шаге.

Когда мы создавали сайт, иногда сессия просто уходила и заставляла нас перезагружаться. Теперь кажется, что он снова работает, но недавно мы обнаружили проблему с Internet Explorer 8. Он не работает между шагами 2 -> 3 и забывает сеанс. Он отлично работает в IE6, IE7, FF, Chrome, Safari и даже в моем мобильном веб-браузере (SE P1).

Мы храним наши сеансы в базе данных, и если я деактивирую обработчик db сессий, это сработает. В чем разница между использованием базы данных и неиспользованием ее для сеансов? Потеряю ли я что-нибудь, если переключусь обратно?

Bootstrap:

/* 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 ответа

Добавьте этот заголовок, чтобы исправить эту проблему:

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

Как хранится ваша сессия? Это происходит в мультишаге Zend_Form или у вас?

Я предполагаю, что ваши данные между этапами становятся слишком большими для хранения в вашей стратегии хранения сеансов.

Другие вопросы по тегам