IE не хранит переменные $ _SESSION должным образом, однако работает в Mozilla - PullRequest
0 голосов
/ 19 января 2012

Эта проблема только в IE. Mozilla и Chrome работают отлично, очень сложно ориентироваться, где я ошибаюсь.

У меня есть цикл for для создания многоуровневой переменной $ _SESSION, например:

$seq = 1;
for($d=1; $d<=10; $d++){

    if($_POST["COMPANY_$d"] && $_POST["PHONE_$d"]){
        $_SESSION['c'][$seq]["COMPANY"] = $_POST["COMPANY_$d"];
        $_SESSION['c'][$seq]["PHONE"] = $_POST["PHONE_$d"];
        if($_POST["COUNTRY_$d"] == 'Canada'){
            $_SESSION['c'][$seq]["STATE"] = $_POST["STATE_$d"];
        }else{
            $_SESSION['c'][$seq]["STATE"] = $_POST["STATE_2_$d"];
        }
        $_SESSION['c'][$seq]["COUNTRY"] = $_POST["COUNTRY_$d"];
        $_SESSION['c'][$seq]["ADDY1"] = $_POST["ADDY1_$d"];
        $_SESSION['c'][$seq]["ADDY2"] = $_POST["ADDY2_$d"];
        $_SESSION['c'][$seq]["CITY"] = $_POST["CITY_$d"];
        $_SESSION['c'][$seq]["ZIP"] = $_POST["ZIP_$d"];

        $seq++;
    }//end declare var in $_SESSION

}//end for

Когда я печатаю _r ($ _ SESSION) в Mozilla, я получаю правильные значения, но в IE все, что я получаю, это:

Array
(
    [c] => 11
)

Я не уверен, что 11 из моего цикла или другого кода. Я потратил 3 часа на то, чтобы просмотреть код с помощью зубного гребня и не могу найти ничего, что мешало бы. Это работает в Mozilla, что случилось с IE? В чем моя проблема?

1 Ответ

0 голосов
/ 19 января 2012

Если у вас отключены файлы cookie в IE, тогда PHP попытается добавить идентификатор сеанса в URL, чтобы он мог подключить сеанс к вашему браузеру.Если ваше приложение непреднамеренно удаляет идентификатор сеанса из URL либо из вашего кода, либо если у вас есть какие-либо команды, настроенные с помощью .htaccess, то это может быть проблемой.Сначала я проверю ваш браузер IE и убедитесь, что он не отключает куки, чтобы убедиться, что это проблема.

...