Данные сеанса теряются только в Chrome - PullRequest
30 голосов
/ 23 ноября 2011

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

Но все решения в этой теме неработать на меня.Я получаю странное поведение только от Google Chrome в моем приложении PHP / MySQL.Если я попытаюсь сделать это с Firefox, это сработает, а Chrome - нет.

Я перехожу в какое-то место в моей корзине и в нескольких местах кода буду хранить данные сеанса.Не беспокойтесь о том, что я начну сеанс или что-то подобное, у меня есть 11 лет работы в webapp dev, все сделано отлично.

Во всех браузерах я могу var_dump($_SESSION) и вернуть свои данные, но в Chrome он не хранит данные.Также обратите внимание, что сеанс действительно передается, я могу посмотреть в сетевом мониторе, и я вижу отправку куки и многое другое, связанное с работой сеанса, но этот $_SESSION['last_viewed_element'] не сохраняется.Я также не могу установить что-либо еще, все теряется.

РЕДАКТИРОВАТЬ:

Проблема решена путем переключения с СЕССИЙ НА КУКИ ...

Ответы [ 19 ]

0 голосов
/ 09 июня 2017

Вы, вероятно, теряете сеансы только в своей среде разработки, и это может быть, скорее всего, из-за "одинаковой политики происхождения" ChromeЕсли это так, то это ваше решение Отключить ту же политику происхождения в Chrome

0 голосов
/ 24 декабря 2015

Я не уверен, что ваш случай похож на мой.Но для меня причиной было формирование URL.

С помощью chrome, при вводе URL-адреса как "http://www.domainname.com" и установке там переменных сеанса.

и перенаправлении с помощью" http://domainname.com" без WWW. идентификатор сеанса не используется повторно.

Это решило мою проблему, надеюсь, это поможет

0 голосов
/ 23 октября 2015

У меня была похожая проблема, я обнаружил причину, которая была очень странной.В моем случае один URL-адрес изображения внутри класса CSS был неправильным!Браузер не может загрузить изображение, и, поскольку страница была формой регистрации с полем пароля, браузер сбросил сеанс по соображениям безопасности.

0 голосов
/ 24 сентября 2015

Вчера весь день у нас была одна и та же проблема.

То, что (казалось) решило это (для нас), было обновлением Chrome.

У нас была версия 45.0.2454.93 и со времени обновления до версии 45.0.2454.99 проблема больше не возникала ...

0 голосов
/ 23 февраля 2015

Я нашел «решение» (это не проблема, а только эффекты !!) ... если на вашей странице используется ajax, ajax - это asyncronus ... Если я вызываю функцию, которая работает в SESSION, чем я вызываю другую страницу, которая работает в сеансе, иногда первый вызов не завершается до второго запуска, и результат первого ответа перезаписи второго. Я решаю проблему с async: false при каждом вызове ajax.

Ext.Ajax.request({
    url: '/io/resetsession.php', 
    **async: false**
});
Ext.Ajax.request({
    url: '/io/loaddata.php', 
    **async: false**,
    .....
});
0 голосов
/ 01 февраля 2015

Это решило мою проблему мгновенно: перейдите на chrome://settings/cookies, затем найдите свой localhost и удалите его кукиРешение очень простое, стоит попробовать

0 голосов
/ 30 ноября 2011

В конце концов, ответа нет, проблема все еще существует, я просто переключился на использование куки, если кто-то столкнется с этой проблемой одновременно с chrome + wordpress, не теряйте больше времени, переключайтесь на куки ...1001 *

0 голосов
/ 11 июля 2017

Я обнаружил, что моя версия проблемы была точно такой, как описано здесь и здесь , и поэтому я хочу добавить к описанному выше еще один уточнитель, который

Инспектор Google Chrome (v.59, стабильный) не сообщает, что файл favicon.ico недоступен, и не сообщает, что страница 302 перенаправлена.

0 голосов
/ 24 ноября 2011

В вашем php ini файле попробуйте установить

session.save_path = /path/to/your/tmp

На некоторых серверах иногда сеансу нужен явно прямой файл сеанса для сохранения в локальном каталоге, иначе может произойти какая-то странность.

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