我在 PHP 会话删除数据并重定向回我的登录页面时遇到问题。
这是我从顶部获得的目录结构:
- Login // 包含要登录/注销的文件
- Main // 包含登录用户的页面
- index.php // 具有完全可操作表单的登录屏幕
在登录目录:check_login.php
在主目录中:page1.php、folder1 和 folder2
在文件夹 1:home.php,include1.php
在文件夹 2 中:include2.php
(对不起,如果这不是很容易理解)
这是我登录 check_login.php 时运行的代码:
session_start();
$_SESSION["id"] = $id;
header("location:../main/page1.php"); //into main directory
所有页面都包含相同的样式(标题、导航、页脚),并且每个页面都有一个主要内容块,因此我使用包含在文件夹 1 和文件夹 2 中的包含,具体取决于要显示的内容。默认情况下,home.php 包含在文件夹 1 中的主页中。其他页面使用包括可能来自任一文件夹的 include1.php 或 include2.php。
在 page1.php 的顶部:
session_start();
if($_SESSION["id"] == '')
{
header("location:../index.php");
}
从 page1.php,如果我导航到包含位于文件夹 1 中的页面,则可以正常工作。如果我导航回主页,则包含在 folder1 中也可以正常工作。两次我都可以从会话中读取 id 变量。
但是,如果我导航到包含位于 folder2 的页面,我会被重定向到我的登录页面。
有任何想法吗?