Проблема 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 или у вас?
Я предполагаю, что ваши данные между этапами становятся слишком большими для хранения в вашей стратегии хранения сеансов.