Информация о сеансе теряется в Chrome (но работает в других браузерах)Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Информация о сеансе теряется в Chrome (но работает в других браузерах)

Сообщение Anonymous »

Возможно, это тот же вопрос, что и данные сеанса, потерянные только в Chrome, и связанный со случайной потерей переменных сеанса только в Google Chrome и перезапись URL-адресов.

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

Я выполняю следующие шаги:
  • Я инициализирую сеанс (не файл cookie) с помощью , затем установите переменную позже в том же файле php с помощью $_SESSION['nu'] = $userName;
  • Затем я перенаправляюсь на новый php с помощью window.location.href = "foo.php". Этот php-файл запускает сеанс (первым образом, как указано выше), а затем использует $_SESSION['nu']. Пока все работает нормально во всех браузерах.
  • На второй странице php (той, что на шаге 2) в Chrome (бета-версия 31.0.1650.26):
    • Я могу использовать $_SESSION['nu'] в php-файле, доступ к которому осуществляется через вызов AJAX.
    • Если я перезагружу страницу, $_SESSION['nu'] больше не установлен. Сразу после первой загрузки он не установлен.
    • Если я перейду на другую страницу, которой также требуется $_SESSION['nu'], она также не сможет получить к ней доступ.
  • В Safari (5.1.9 и 5.1.7) и Firefox (24.0 и 18.0) я могу перезагрузить и перейти на другую страницу, $_SESSION['nu'] установлен и все работает нормально.
  • Когда я тестирую это в своей домашней среде (MAMP 1.9.6), он отлично работает и в Chrome.
  • В обоих файлах php.ini (домашнем и онлайн) session.use_only_cookies включен (локальный и главный).
Поскольку я могу получить к нему доступ через AJAX (без изменений) страницы), похоже, у Chrome возникла проблема с сеансом при переходе на новую страницу. Но почему тогда это работает с первого раза? Я меняю страницы...

Я попробовал решение favicon.ico (я поместил файл значка с именем favicon.ico в корень веб-сайта), но это ничего не изменило.

Есть предложения? Спасибо!

Обновление
  • Все php-файлы, пытающиеся получить доступ к $_SESSION['nu'], находятся в корне («мой» корень, поскольку я использую веб-отель).


    Глядя в консоль Chrome в «Ресурсы -> Файлы cookie», я вижу, что файлы cookie присутствуют постоянно (как Я перехожу из файла php, который запускает сеанс, в foo.php).
  • Что меня поражает, так это то, что он работает в FF и Safari...

Update2

Изображения из консоли. Вот что я вижу, когда нахожусь в foo.php (вторая страница):

Chrome:

Изображение


Safari:

Изображение


РЕШЕНИЕ (надеюсь):
Я не уверен, почему это работает сейчас, что меня не совсем устраивает, но на данный момент... Чтобы объяснить, что произошло, мне нужно дать более подробную информацию:
  • index.php вызывает start_session(). Устанавливает переменную $_SESSION['nu'] = Null. Затем страница ожидает нажатия кнопки входа в систему.
  • Кнопка входа имеет скрипт, который через AJAX вызывает songIn.php, который вызывает start_session() и устанавливает $_SESSION['nu'] = "bar". в функции Done() вызова AJAX скрипт вызывает window.location.href = "foo.php".
  • foo.php вызывает session_start() и получает $_SESSION['nu'].
В моем режиме try-anything я тестировал удаление start_session() из index.php. Я также удалил присвоение $_SESSION['nu'] = Null. Я хотел, чтобы они были на месте, чтобы гарантировать, что посещение index.php очистит сеанс и фактически выйдет из системы пользователя. Но на сайте есть подходящая опция выхода из системы, так что я могу ее придерживаться.

Без этих строк в index.php кажется, что он работает в Chrome. То есть значение $_SESSION['nu'] не теряется, когда пользователь перемещается по другим страницам сайта или перезагружает foo.php.

Как я уже говорил ранее, это постоянно работало в FF и Safari. Теперь и в Chrome. Буду признателен, если кто-нибудь найдет объяснение!

Подробнее здесь: https://stackoverflow.com/questions/194 ... r-browsers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»