问题:在下面的代码中,当我从sandbox1页面移动到sandbox2时,$ _SESSION [page_name]的新值未被传递并恢复为index的初始值。如果在进入页面后我重新加载页面,新值似乎神奇地显示出来。代码有问题吗?你能解释为什么$ _SESSION的新值没有传播吗?
Page index.php
<?php
session_start();
$_SESSION['page']="index";
echo "This page: ".$_SESSION['page']."<br><br>";
?>
页面sandbox1.php
<?php
session_start();
echo "From page: ".$_SESSION['page']."<br>";
$_SESSION['page']="Sandbox1";
echo "This page: ".$_SESSION['page']."<br><br>";
?>
页面sandbox2.php
<?php
session_start();
echo "From page: ".$_SESSION['page']."<br>";
$_SESSION['page']="Sandbox2";
echo "This page: ".$_SESSION['page']."<br><br>";
?>
在加载index.php时,它会输出:
此页面:index
正如所料。
从index.php到Sandbox1输出的超链接
来自页面:index
此页面:Sandbox1
(新值$_SESSION['page']
)符合预期。
从Sandbox1到Sandbox2输出的超链接:
来自页面:index
($_SESSION
恢复到价值指数)预计会看到
来自页面:sandbox1
此页面:Sandbox2
(新值)如预期。
其他信息PHP版本5.3。注册全局设置为“关闭”
答案 0 :(得分:6)
在sandbox1和sandbox 2上,将session_start()
移到读取行
echo "From page: ".$_SESSION['page']."<br>";
答案 1 :(得分:1)
问题已解决。 PHP代码运行正常。问题似乎只影响IE 11,并且与此浏览器的刷新周期有关。其他浏览器显示出预期的输出。通过更改Apache服务器.htaccess文件以阻止捕获用于调试的测试文件,问题是正确的。
调查IE-11或此浏览器的特定测试平台配置是否存在问题。