Назад | Перейти на главную страницу

Где смотреть, если сайт теряет сеанс пользователя?

Неожиданно несколько дней назад я заметил, что на своем веб-сайте, когда я заполняю форму места, например (POST), а затем выполняю перенаправление для просмотра этого места, сеанс пользователя теряется. Если я обновлю эту страницу, я снова буду подключен. Бывает и в другом виде + редирект.

Это происходит только на рабочем сервере. На постановке (та же конфигурация, что и на производстве) и локально работает нормально.

Мой производственный стек - это Apache, memcache (sessions), PHP, Symfony1.4, MySQL.

Есть идеи, где я должен искать? Апач, что? Memcache?

Спасибо!

редактировать

Я обнаружил ошибку, и тут она ни при чем. Следующий код нарушал его. Я только что это прокомментировал. Все еще не знаю почему, но, по крайней мере, ошибка устранена. Придется спросить у ребят из Symfony.

// clear cache
$cacheDriver = $this->getTable()->getAttribute(Doctrine::ATTR_RESULT_CACHE);
$cacheDriver->deleteByPrefix('tour.'.$this->id);

Я предполагаю одну из двух вещей:

  1. а session_start() пропал, отсутствует
  2. Вы не используете файлы cookie сеанса, и переменная запроса была потеряна при выполнении header('Location', ...)

Я бы использовал Firebug и его Persist вариант в Net панель, чтобы проверить, все ли запросы содержат PHPSESSID cookie или переменная запроса. Предполагая, что это так, я бы проверил, есть ли session_start() отсутствовал на Location целевая страница заголовка.