HTML-两段相同的代码运行不同的输出



请注意:我正在摆弄HTML/CSS/PHP和MySQL。我还没有考虑到安全问题。

我有两个文件,第一个叫page1.php,第二个叫page2.php。很简单,它们都有一个导航栏,里面有一些php代码:

if (isset($_SESSION["loggedin"])){
echo "<li class='navbar-button' id='right-status'><a>Logged in as admin</a></li>n";
echo "<li class='navbar-button' id='right-change'><a href='logout.php'>Log Out</a></li>n";
} else {
echo "<li class='navbar-button' id='right-change'><a href='login.html'>Log In</a></li>";
}

它检查名为"loggedin"的当前会话数据是否存在,如果存在,则在导航栏上显示"以管理员身份登录-注销"。如果找不到此会话数据,则在导航栏上显示"登录"。当我加载page1.php时,导航栏上显示"以管理员身份登录-注销",但当我加载page2.php时,它显示"登录"。它们都有相同的代码,并且iI’我不知道它们为什么会产生不同的结果。我不确定它是否相关,但page2.php与page1.php不存储在同一文件夹中。page1.php的目录为/page1.php。page2.php的目录是/folder/page2.php.

问题1:PHP会话是否在整个网站的每个文件/文件夹上全局存储数据?或者只是在根文件夹中?

问题2:为什么我的代码给出不同的答案?

感谢您提前抽出时间。

:)

编辑:

抱歉忘了提一下,page2.php是用php计算机生成的。

原来我忘了在page2.php(计算机生成)中启动会话,因为它很复杂,我一定只是跳过了它。感谢RossWilson指出的。

最新更新