此问题仅在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的用途是什么?我的问题是什么?
答案 0 :(得分:0)
如果您在IE中禁用了cookie,那么PHP将尝试将会话ID附加到URL,以便它可以将会话连接到您的浏览器。如果您的应用程序无意中从您的代码中清除了URL中的会话ID,或者如果您通过.htaccess设置了任何命令,那么这可能就是问题所在。我首先检查你的IE浏览器,确保它没有禁用cookie来验证是不是问题。