2010-02-11 3 views
0
тестового сервера

ЛАМПЫ - только я посещаю его:несколько сеансов открыты для одного посетителя

У меня есть веб-сайт и по какой-то причине я получаю несколько сеансов для одного пользователя (браузера). Я просматриваю страницу только с одним браузером, и я получаю 5-6-7-8 сеансовых файлов в/tmp. Что может быть причиной этого?

Сессии - это простые сеансы, основанные на файлах. Я заметил, что я получаю несколько сеансов при обновлении переменной сеанса (текущая страница # хранится в $ _SESSION ['pagepos']). Обновление переменной сеанса для текущего пользователя должно обновлять файл сеанса и не создавать новый файл сеанса, верно? Мой идентификатор сеанса в браузере остается прежним.

Спасибо, Гамлет

+0

Я не уверен, что это связано с сеансом pagepos. Есть также Ajax звонков на странице – Hamlet

ответ

0

Если вы используете вспышку, которая запрашивает что-то с сервера (XML/других SWF файлов), то это, вероятно, не посылает печенье с ним, и, таким образом, - начинается новый сеанс с каждым запрос.

+0

без вспышки на сайте я не удален Аякс, а также для тестирования, не помогло – Hamlet

+0

то его либо 1. некоторые браузера плагин 2. прокси-сервера Попробуйте отладки, добавив некоторые испытания .php, добавив функцию mail(), которая будет посылать вам по электронной почте каждый раз, когда выполняется сценарий, а затем открывать эту страницу с помощью чистого браузера. –

0

Сессия, создаваемая заново, каждый раз заставляла меня думать, что браузер сеанса отказался от браузера. Проверьте, какие файлы cookie вы принимаете на борту (я использую Firecookie, но таких «расширений» для «лисы» много.

Это случилось со мной один раз, и в конце концов я обнаружил, что я должен был оставить session.cookie_domain закомментирована в моем php.ini

+0

Прокомментировал это, но не помог. Я удалил Google adsense, аналитику, вспышку со страницы, но все равно это происходит (не каждая новая страница, но примерно каждый второй щелчок я получаю новый файл сеанса). – Hamlet

+0

Ну, это исключает любые простые объяснения. Единственное, что приходит мне на ум, может быть очень короткий тайм-аут сеанса. Кроме того, попробуйте использовать другой браузер - просто чтобы убедиться, что проблема связана с сервером ... Если ничего другого не поможет, я предлагаю посмотреть прямо в заголовках HTTP, чтобы узнать, когда именно происходит новый сеанс (с Fiddler - http://fiddler2.com/fiddler2/version.asp или LiveHTTPHeaders - http://fiddler2.com/fiddler2/version.asp). Последней - и самой надежной идеей было бы установить XDebug, отлаживать код, шаг за шагом по одной строке за раз, сохраняя открытое окно -> – djn

+0

-> в папке файла сеанса. Таким образом, вы можете точно увидеть, на каком этапе создается новый файл сеанса – djn

0

Я хотел бы проверить, чтобы убедиться, что ваши звонки AJAX используют такое же имя сеанса. Иногда вам нужно добавить имя сеанса в сообщение формы или получить данные.

Смежные вопросы