Данные сеанса, потерянные только в Chrome

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

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

  • Случайное проигрывание переменных сеанса только в Google Chrome & URL Rewriting
  • Ошибка Codeigniter + Chrome (ERR_RESPONSE_HEADERS_TOO_BIG). Как решить?
  • XML-рендеринг Google Chrome в виде текста для RSS-канала
  • XMLHttpRequest; Запросы на кросс-начало поддерживаются только для схем протокола: http, data, chrome, chrome-extension, https, chrome-extension-resource
  • Создайте файл Google Chrome Crx с помощью PHP
  • В Chrome появилось сообщение об ошибке «Не удалось загрузить документ PDF» на встроенных PDF-файлах
  • Я перемещаюсь в какое-то место в своей корзине покупок и в нескольких местах в коде храню данные сеанса. Не беспокойтесь о том, что я начинаю сессию или что-то связанное с этим, у меня есть 11 лет в webapp dev, все сделано хорошо.

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

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

    Проблема решена путем перехода от СЕССИЙ К КУХНЯМ …

  • Тот же домен, другая папка PHP-сессия
  • Данные сеанса PHP не сохраняются
  • Ошибка сеанса CodeIgniter - операция Unlink не разрешена
  • Как продолжить сеанс с одной страницы на другую с помощью PHP
  • Закройте сеанс и запустите новый
  • как получить переменные сеанса с использованием идентификатора сеанса
  • 19 Solutions collect form web for “Данные сеанса, потерянные только в Chrome”

    У меня была очень похожая проблема, в моем случае проблема была вызвана 404 из-за отсутствия favicon.ico только в Chrome . 404.php назвал нижний колонтитул, который изменил переменные сеанса . Надеюсь, это поможет кому-то.

    Проблема может заключаться в том, что ваш сервер ищет значки, если он не найден, сервер выбрасывает перенаправление 302, которое убивает переменные сеанса.

    У меня была эта проблема, и я смог ее исправить. Chrome продолжает искать файл .ico, и по какой-то причине он влияет на него. Как только я поместил файл .ico в корневой каталог сайта, все начало работать. Сумасшедшая, но правда.

    Я столкнулся с такой же проблемой, но с IIS с ASP.Net MVC. IE и Firefox все в порядке, но в Chrome я терял данные сеанса. В конце концов выяснилось, что ошибка 404 очищала файл cookie в Chrome. Ниже приведены шаги, которые я выполнил, чтобы найти проблему и решить ее. Я предлагаю другим попробовать:

    1. В Chrome используйте Инструменты -> Инструменты разработчика. Обновите страницу, чтобы «Инструменты разработчика» начали показывать данные.

    2. В инструментах разработчика проверьте ресурсы -> Файлы cookie. Сразу после успешного входа в систему у меня было 2 файла cookie для домена, который я тестировал. При переходе на страницу, где я потерял сессию, один из файлов cookie больше не отображался. Снимок был снят после исправления, показывая оба файла cookie: введите описание изображения здесь

    3. Теперь проверьте вкладку «Сеть». Посмотрите внимательно на любой ресурс (html / image / css / js / …), который имеет любую ошибку. У меня была ошибка 404 для файла шрифта. Ошибка 404 была вызвана отсутствием типа mime в IIS. исправление ошибки 404 устраняет проблему в Chrome. Снимок экрана, снова принятый после исправления, имел все ресурсы с статусом ОК: введите описание изображения здесь

    Бонус заключался в том, что исследование этой проблемы помогло мне узнать пропущенный тип mime в IIS, что повлияло на большее количество страниц во всех браузерах.

    Была такая же проблема и, наконец, решена. Вход установил сессию с domain.com, но в перенаправлении это было http://www.domain.com. IE и FF, похоже, считают, что www и ни один из них не являются такими же, но Chrome этого не делает. Найдено путем проверки Host в сетевом журнале для каждой загрузки страницы.

    Просто попробуйте это, прежде чем тратить свое время

    Если вы уже вошли в свое веб-пространство (панель управления / панель Cpanel / Plesk ) в том же браузере. Затем выйдите из этой панели управления и очистите файлы cookie и повторите попытку.

    В случае

    данные сеанса, потерянные только в хромированном состоянии

    В моем случае я просто сбросил хром-браузер

    Перейдите в chrome: // settings / затем щелкните advanced, затем выполните сброс

    введите описание изображения здесь

    Код, с которым я работал, имел ту же проблему. Решено, удалив следующее:

     session_id($_GET['sid']); session_write_close(); 

    Я решил проблему, удалив строку:

     base href="http://mysite/" 

    из тега заголовка в HTML-коде.

    Посмотрев следующую ссылку: http://code.google.com/p/chromium/issues/detail?id=45582

    Я верю, что проблема связана с тем, что PHP получает запрос, который не соответствует файлу, а затем неправильно обрабатывает 404. Я должен был сказать Nginx, чтобы он соответствовал любому URL-адресу с favicon.ico, а затем возвратил 404.

    Вот моя линия для Nginx:

      if ($request_uri ~ 'favicon') { return 404; } 

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

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

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

    ХА! Я, наконец, решил это!

    При выполнении перенаправления header() в PHP вы должны сделать die() сразу после него. THAT разрешает его только для всех браузеров, кроме Chrome.

    Для Chrome вы также должны сделать session_write_close() прямо перед header()

    Успех Sweeeeeeeeet

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

    Вчера у нас была такая же проблема.

    Что (по-видимому) решило это (для нас), было обновление хром.

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

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

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

    С хром, набрав URL-адрес как « http://www.domainname.com » и установив там переменные сеанса.

    и перенаправление с помощью « http://domainname.com » без WWW. sessionid не используется повторно.

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

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

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

    Google Chrome (v.59, stable) Inspector не говорит вам, что favicon.ico недоступен и не сообщает, что перенаправлена ​​страница 302.

    В конце концов, ответа нет, проблема все еще существует, я просто сделал переход на использование файлов cookie вместо этого, если кто-нибудь когда-нибудь получит эту проблему с помощью chrome + wordpress в то же время, не теряйте больше времени, переключитесь на файлы cookie …

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

     Ext.Ajax.request({ url: '/io/resetsession.php', **async: false** }); Ext.Ajax.request({ url: '/io/loaddata.php', **async: false**, ..... }); 
    PHP is the Best Programming Language in the world.