Zend Framework - Internet Explorer - проблема с файлами cookie phpsessid

Я создал интенсивную сессию приложения веб-сайта Zend Framework.

Он отлично работает в Chrome и Firefox, но не работает в IE. Сессия сбрасывает каждую страницу в IE.

Просматривая заголовки, я обнаружил, что браузер IE получает разные cookie-файлы phpsessid при каждом получении или публикации в одном и том же браузере, поэтому сеанс не работает. В FF и Chrome файл cookie phpsessid сохраняется нормально.

Кто-нибудь знает, почему это может происходить только в IE?

У меня есть этот код в bootstrap.php:

$generalSession  = new Zend_Session_Namespace('MyNameHere');
$generalSession ->setExpirationSeconds(1000 * 60);

Я восстанавливаю сессию, используя:

Zend_Auth::getInstance()->getStorage()->read();

Моя конфигурация IE для конфиденциальности и безопасности установлена ​​на минимум, используя IE9.

Я попытался поместить p3p cookie в заголовки, но это не имело никакого значения.

Что мне не хватает?

2 ответа

Я наконец решил проблему с IE.

Дело в том, что наш сервер dev был dev_landing.mysite.com, и IE отклоняет заголовки сайтов с именами "_"... это сделано в IE.

Я нашел полное объяснение здесь: http://odedpeer.blogspot.com.es/2009/08/why-are-my-http-cookies-rejected-by-ie.html

Продолжать делать!!

Все, что вам нужно, чтобы убедиться, что сессия начинается в ZF1:

 //in bootstrap.php
 protected function _initsession()
    {
        Zend_Session::start();
    }

Это инициализирует сессию, как в обычном PHP.

Если вы не меняете его где- либо еще, Zend_Auth использует Zend_Session_Namespace ('Zend_Auth'); поэтому любое созданное вами пространство имен не будет доступно Zend_Auth.

Когда вы создаете экземпляр Zend_Session_Namespace(), сеанс запускается, если он еще не был запущен.

Я должен задаться вопросом, каждый раз, когда ваш boostrap.php (каждый запрос) запускает Zend_Session_Namespace(), если вы не получаете новый идентификатор сессии в проводнике. Возможно, попробуйте просто вызвать start в начальной загрузке и просто создайте экземпляры пространств имен, когда это необходимо. Также возможно, что некоторый код / ​​информация, отсутствующая в вашем вопросе, влияет на сессию.

Здесь много гаданий, так что удачи.

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