重定向到使用 PHP 登录自定义 CMS 后无法正常工作的其他页面


Redirect to other pages not working after logging into Custom CMS using PHP

我正在为我建立的网站制作一个自定义的内容管理系统,到目前为止,一切看起来都很好,直到这个障碍。我让我的代码工作到您可以从登录.php页面输入用户名和密码的位置,它成功地将我重定向到索引.php页面,但后来我决定我需要重定向任何未登录的人登录.php然后再查看我的 CMS 上的其他页面。

所以这个代码就在这里...

<?php require_once("lib/sessions.php");
      require_once("lib/functions.php");
      require_once("meta.php");
      login_confirm(); 
?>

它位于我的CMS中每个页面的顶部,login_confirm功能如下所示...

function login_confirm() {
    if(!logged_in()) {
        redirect_to("login.php");
    }
}
function logged_in() {
    return isset($_SESSION['admin_id']);
}

$_SESSION['admin_id'] 在我的登录页面上设置如下...

$found_admin = attempt_login($username, $password); 
    if($found_admin) {
        //Success, mark user as logged in
        $_SESSION["admin_id"] = $found_admin["id"];
        $_SESSION["username"] = $found_admin["username"];
        redirect_to("index.php"); 
    } else {
        //failed
        $_SESSION["message"] = "Log in failed"; 
    }

就像我在开头说的,登录页面将成功将您重定向到索引.php没问题,但那是在我将login_confirm()放在页面顶部之前。现在,无论什么,我总是被重定向到登录.php即使我输入了正确的凭据。我假设会话没有保存或其他什么...

编辑:会话.php看起来像这样。因此,会话将在页面顶部启动。

<?php 
session_start(); 
ob_start();
//function for message and errors
?>

我没有看到您正在使用 session_start();在使用 $_SESSION 之前,必须对其进行初始化。