IE没有正确存储$ _SESSION变量,但是在mozilla中工作

时间:2012-01-19 09:07:26

标签: php internet-explorer session loops session-variables

此问题仅在IE中出现。 Mozilla和chrome工作得很好,很难找到我出错的地方。

我有一个for循环构建一个多级$ _SESSION var,例如:

$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

当我在mozilla中print_r($ _ SESSION)时,我得到了正确的值,但在IE中,我得到的是:

Array
(
    [c] => 11
)

我不确定11是否来自我的循环或其他代码。我花了3个小时现在用精细的牙齿梳理代码,找不到任何干扰的东西。这适用于Mozilla,IE的用途是什么?我的问题是什么?

1 个答案:

答案 0 :(得分:0)

如果您在IE中禁用了cookie,那么PHP将尝试将会话ID附加到URL,以便它可以将会话连接到您的浏览器。如果您的应用程序无意中从您的代码中清除了URL中的会话ID,或者如果您通过.htaccess设置了任何命令,那么这可能就是问题所在。我首先检查你的IE浏览器,确保它没有禁用cookie来验证是不是问题。