0

问题:在下面的代码中,当我从页面从 sandbox1 移动到 sandbox2 时,$_SESSION[page_name] 的新值没有被传递并恢复为 index 的初始值。如果进入页面后我重新加载页面,新值似乎神奇地出现了。代码有问题吗?你能解释一下为什么 $_SESSION 的新值没有传播吗?

页面索引.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.php 到 Sandbox1 输出的超链接

从页面:索引

本页:沙盒1

(新值$_SESSION['page'])如预期的那样。

从 Sandbox1 到 Sandbox2 输出的超链接:

从页面:索引

$_SESSION恢复为价值指数)预计会看到

从页面:sandbox1

本页:沙盒2

(新值)符合预期。

附加信息 PHP 5.3 版。寄存器全局设置为“OFF”

4

2 回答 2

6

在沙盒 1 和沙盒 2 上,移动session_start()到显示为

echo "From page: ".$_SESSION['page']."<br>";
于 2014-07-31T16:58:51.847 回答
1

问题解决了。PHP 代码运行正常。该问题似乎只影响 IE 11,并且与此浏览器的刷新周期有关。其他浏览器显示出预期的结果。通过更改 Apache 服务器 .htaccess 文件以抑制捕获用于调试的测试文件,该问题是正确的。

调查问题是否与 IE-11 或此浏览器的特定测试台配置有关。

于 2014-08-01T13:51:21.157 回答