Сеансы Zend Framework теряются - PullRequest
       8

Сеансы Zend Framework теряются

3 голосов
/ 17 декабря 2010

Я использую сеансы для хранения товаров в корзине. Я могу создавать и сохранять сеансы, но с некоторыми странными проблемами:

  1. Когда я закрываю вкладку в Firefox (не весь браузер), сеанс, похоже, потерян. Иногда этого не происходит, но обычно это так.

  2. Каждый раз, когда я обновляю страницу или перехожу на другую страницу, идентификатор сеанса меняется на новый. Я подтвердил это, посмотрев cookie в моем браузере, а также на сервере. Кроме того, на сервере одновременно может храниться до 4 сеансов. Это все нормальное поведение?

  3. Кажется, сеансы теряются через случайные интервалы ... это может занять несколько минут или более часа.

Я только что последовал руководству по Zend, но мне не повезло в решении всего этого. В начальной загрузке у меня также есть Session :: start () и Session :: запомнитьMe (). Я использую обычное файловое хранилище для сессий, просто храню в / var / lib / php5, что, как мне кажется, Zend Framework любит помещать в него.

Спасибо за любое направление

Ответы [ 3 ]

1 голос
/ 17 декабря 2010

Если данные сеанса сохраняются, но идентификатор изменяется, то есть вероятность, что там есть вызов session_regenerate_id () .

0 голосов
/ 25 января 2011

Я сталкивался с этим раньше, и вы захотите сделать что-то вроде этого, где вы начинаете сеанс, для меня это в моем Bootstrap.php

    if (!empty($_REQUEST['PHPSESSID'])) {
        Zend_Session::setId($_REQUEST['PHPSESSID']);
    }

    Zend_Session::start();

Это должно решить проблему.Когда у пользователя есть сеанс, он обычно передается с каждым запросом.

0 голосов
/ 17 декабря 2010

Проверьте время очистки мусора для PHP - session.gc_maxlifetime.Если он короткий, он удаляет файлы вашего сеанса из-под вашего носа и делает его «случайным».

Значение по умолчанию - 24 минуты (1440 секунд)

Это должно быть установлено на (илибольше чем) независимо от того, на какое время жизни вашего куки (session.cookie_lifetime) установлено в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...