【发布时间】:2012-01-19 09:07:26
【问题描述】:
这个问题只存在于 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 怎么了?我的问题是什么?
【问题讨论】:
-
您的 php 是否配置为使用 cookie 来存储
$_SESSION?默认情况下,它们存储在内部,永远不会离开网络服务器。 -
这很奇怪。会话不应受到浏览器的影响,它们是在服务器端管理的。尝试清除您的 IE 缓存和 cookie 列表。在 Firefox 和 Chrome 上执行相同操作。
标签: php internet-explorer session loops session-variables