PHP $ _SESSION覆盖变量未传递到下一页

0 php session-variables register-globals

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

Page index.php

<?php
session_start(); 
$_SESSION['page']="index";
echo "This page: ".$_SESSION['page']."<br><br>";
?>
Run Code Online (Sandbox Code Playgroud)

页面sandbox1.php

<?php
session_start(); 
echo "From page: ".$_SESSION['page']."<br>";    
$_SESSION['page']="Sandbox1";
echo "This page: ".$_SESSION['page']."<br><br>";
?>
Run Code Online (Sandbox Code Playgroud)

页面sandbox2.php

<?php
session_start(); 
echo "From page: ".$_SESSION['page']."<br>";
$_SESSION['page']="Sandbox2";
echo "This page: ".$_SESSION['page']."<br><br>";
?>
Run Code Online (Sandbox Code Playgroud)

在加载index.php时,它输出:

本页:索引

正如所料.

从index.php到Sandbox1输出的超链接

来自页面:索引

本页面:Sandbox1

(新值$_SESSION['page'])如预期.

从Sandbox1到Sandbox2输出的超链接:

来自页面:索引

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

来自页面:sandbox1

本页面:Sandbox2

(新值)如预期.

附加信息PHP版本5.3.注册全局设置为"OFF"

Len*_*n_D 6

在sandbox1和sandbox 2上,移动session_start()到读取的行上方

echo "From page: ".$_SESSION['page']."<br>";
Run Code Online (Sandbox Code Playgroud)