【发布时间】:2016-06-13 23:39:44
【问题描述】:
我有一个问题,我 99% 肯定与 Internet Explorer 有关(不可能!):会话变量没有从一个文件传送到另一个文件(在同一个域上)。这些页面由 IIS 7 提供服务。
为了简化问题解决过程,我创建了两个测试文件:
test_1.php:
<?php
session_start();
$_SESSION['test'] = '123';
?>
<a href="test_2.php">Go to result</a>
test_2.php:
<?php
session_start();
echo $_SESSION['test'];
session_unset();
?>
<a href="test_1.php">Go to page 1</a>
这在 Chrome 33.0.1750.154 和 Firefox 28.0 中按预期工作,但在 IE9 中我收到以下错误:
Notice: Undefined index: test in D:\test_2.php on line 3
我是否遗漏了一些明显的东西?
谢谢
【问题讨论】:
-
您的 IE 副本是否阻止 cookie?
-
确保
session_id()在两个脚本中返回相同的值。如果您得到不同的值,那么您的会话 cookie 设置不正确,并且您在每个脚本中获得了不同的会话。 -
cfr John Conde,不同的浏览器设置(用于 cookie、安全等)是对此唯一合理的解释。面对客户端问题(因浏览器而异)时,请始终查看客户端部分。会话的客户端部分是什么? cookie(大部分时间)
-
ID 不同(仅在 IE 中!),所以这是一个开始。我们在网络上,所有计算机(我们测试过的)似乎都受到了影响,因此很可能是需要全局设置的 cookie 设置。你知道这可能是什么吗?谢谢