идентификатор сессии php и ajax, javascript - PullRequest
0 голосов
/ 17 ноября 2009

До меня дошло, что мой сайт работает некорректно во многих версиях Internet Explorer. Осмотревшись повсюду, я провел тест «cookie» (http://www.rgagnon.com/jsdetails/js-0092.html),) и понял, что cookie не работают, когда я использую любую версию IE, но отлично работает с Chrome, Firefox, Safari ...

Кажется, что когда куки не работают, мои переменные сеанса продолжают исчезать. Я использую php сессию. Разве PHP не должен решать эту проблему автоматически?

Я использую некоторые javascript window.location и некоторые ajax-вызовы (phplivex). Может ли это быть из-за этого? Разве он не добавляет phpsessionid в конце всех URL, несмотря ни на что?

Ответы [ 2 ]

1 голос
/ 17 ноября 2009

Может ли быть проблема с часовым поясом? См. Сеансовые файлы cookie, отклоненные Internet Explorer .

.

Окончательное решение

Проблема с часовым поясом подсказала мне проверить время на моем клиенте и сервер. Мой клиент - ноутбук с Windows который имел правильное время и часовой пояс благодаря синхронизации с протоколом NTP. Мой сервер включен другая рука была не синхронизирована.

Часовой пояс был правильным, но UTC вместо этого было установлено мое местное время. В результате сервер был на самом деле шесть часов в прошлом, насколько клиент был обеспокоен Тайм-аут одного час бы истек в прошлом для экземпляра IE, работающего на моем клиент. Неудивительно, что IE отвергал мой сессий.

Я запустил ntpdate, чтобы исправить свое время, а затем сбросить часовой пояс с помощью tzselect.

# ntpdate pool.ntp.org
# tzselect

Затем я обновил IE, который немедленно начал принимать сессии. Все аспекты моего приложения начались работает правильно. Так много для так маленький.

Мораль истории, используйте NTP, чтобы обеспечить что на ваших машинах установлено время правильно.

Поэтому, в основном, убедитесь, что на вашем сервере установлено правильное время UTC, и для правильной меры явно установите часовой пояс PHP (вы получите предупреждение в разделе E_STRICT, если вы этого не сделаете).

0 голосов
/ 17 ноября 2009

nute вы уверены, что это не имеет отношения к вашей конкретной установке IE. ты пробовал на другой машине?

В качестве обходного пути, которое вы можете использовать use_trans_sid, session id будет передаваться по URL-адресу вместо cookie. ПРЕДУПРЕЖДЕНИЕ use_trans_sid может создать большие проблемы с безопасностью, поэтому я думаю, что вам лучше выяснить, откуда возникла проблема, и если вы действительно не нашли решения, воспользуйтесь этим.

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