PHP 用户未登录时的无限循环


PHP Infinite loop when user not logged in

我在这个代码中遇到了无限循环问题。它正在检查是否有会话变量,如果没有,我希望将它们重定向到索引页。

session_start();
   if (! isset($_SESSION['foo'])) {
     header('Location: /index.php');
   }
exit;

我试过把 exit; 和 exit((; 和 endif; 在 if 循环之外和里面,所有这些都仍然给我无限循环的问题。此代码位于标题页中,然后在每个页面上调用该页,因此只有在未登录的情况下才能访问索引页。这就是我希望这段代码首先存在的要点。

提前感谢您的帮助。

在 if 语句中添加一些内容,以排除索引.php页面。类似的东西

if(! isset($_SESSION['foo']) && strpos($_SERVER['REQUEST_URI'], 'index.php') === false) {
    header('Location: /index.php');
}

如果在索引页上进行该检查,则每当未设置会话时,它都会重定向循环。您需要确保不对索引进行此检查.php

我认为你只是缺少session_start((;

页.php :

<?php
session_start(); // this is important
if (! isset($_SESSION['foo'])) {
    header('Location: /index.php');
    exit;
}
?>

索引.php :

<?php
session_start(); // this is important
//stuff
$_SESSION['foo'] = 'stuff';
//other stuff
?>