Где искать, если сайт теряет пользовательскую сессию?

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

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

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

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

Спасибо!

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

  • Это не suhosin, так как я не включил расширение
  • Я происходит только после POST и перенаправления заголовка

2 ответа

Решение

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

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

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

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

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

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