Где искать, если сайт теряет пользовательскую сессию?
Внезапно несколько дней назад я заметил, что на моем веб-сайте, когда я, например, заполняю форму места (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);
Я предполагаю одну из двух вещей:
session_start()
пропал, отсутствует- Вы не используете куки сеанса, и переменная запроса была потеряна при выполнении
header('Location', ...)
Я бы использовал Firebug и его Persist
вариант в Net
панель, чтобы проверить, все ли запросы PHPSESSID
cookie или переменная запроса. Предполагая, что это так, я бы проверил, session_start()
отсутствовал на Location
целевая страница заголовка.