IE8 теряет некоторые переменные php сессии, сохраняя другие нетронутыми при обновлении или вызове ajax - PullRequest
0 голосов
/ 09 февраля 2012

Здесь большая проблема с сессиями php на IE8.Я провел некоторые исследования в Интернете, но примеры не совпадают (или я не могу перевести их в свой сценарий)

У меня есть сайт, который широко использует сеанс с несколькими значениями и массивомхранится в сессияхВсе отлично работает на chrome и firefox, но некоторые части системы ломаются в IE8, поскольку кажется, что они просто теряют информацию о сеансе после обновления.Все сеансовые переменные на сайте выполняют одни и те же различные действия, включая перенаправление заголовка (местоположение), перезапись URL-адреса Apache и т. Д.

Не все сеансовые изменения.Вот пример.Когда я вхожу и сохраняю информацию в сеансе (например, $ _ SESSION ['user']), она отлично работает на всем сайте, и я не выхожу ($ _SESSION ['user'] не теряется),В то же время, когда я назначаю различные сеансовые переменные, и они могут быть потеряны при обновлении, даже если логин var еще присутствует

Вот код для части, которая не работает в IE8

1) У меня есть ссылка на странице, которая позволяет редактировать страницу, которую вы просматриваете, скажем, ссылка is / edititem / ID

2) щелкнув по ней, вы увидите ссылку на php-файл, который извлекает данные элемента и сохраняетмассив var сессии.Одно из полей в этом массиве определяет, какие HTML-элементы будут отображаться в форме редактирования.После настройки сессий есть перенаправление header ()

    session_start();
    $item = Item::getById($_GET["id"]);
    $_SESSION["item"]["type"] = $item->type;
    $_SESSION["item"]["title"] = $item->title;
    $_SESSION["item"]["action"] = "edit";
    header('location: /item_management');

3) при переходе на страницу / item_management в IE8 после этого перенаправления, все в порядке.Когда я обновляю эту страницу, эта информация о сеансе, указанная выше, исчезает

Я читал о возможных проблемах с URL-адресами, которые включают _ в IE8.Я изменил эти URL-адреса на каком-то этапе для использования - вместо _, но это не помогло, поэтому я вернулся.Я также подумал, что это может быть некоторая проблема с массивами в сеансе, но есть по крайней мере еще одно место в коде, где сеанс без массива теряется при вызове в вызове ajax (у меня есть $ _SESSION ["image"], сделайте ajaxВызовите, прочитайте, что 'image' var в php вызывается с помощью ajax, и он пуст).

Кроме того, пользовательский сеанс var не затрагивается во всей системе, даже если другие значения пропадают

Все сеансы связанына Chrome / Firefox * отлично работает

Есть идеи?Я предоставлю любой необходимый код

1 Ответ

0 голосов
/ 29 января 2014

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

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

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