我使用PHP的标头功能完成了大量的重定向。这个让我难过。
在我的仪表板控制器上,我检查是否设置了$ _SESSION ['loggedin']。如果没有设置,我想将用户发送回主页面。但是,我不断收到“太多重定向”错误,即使我只设置了一次。谁能帮我吗?感谢您的帮助!
这是我的代码 -
function index() {
if(!isset($_SESSION['loggedin'])) {
header("Location: ./");
} else {
die("The user is logged in.");
}
}
答案 0 :(得分:5)
./
表示“在这里”,所以是的,您正在重定向到一个圆圈。您可能意味着/
, root 。
尽管Location header field should really contain a complete, absolute URL。因此,您应该重定向到http://example.com/
。某些浏览器恰好(错误地)接受了相对URL。
答案 1 :(得分:2)
这是因为您只需刷新页面。这意味着用户不会被重定向到不同的URL,他会留在原来的位置。
您使用Location
标头的错误路径。 ./
等于.
,这是一个相对路径,意味着当前路径。当然,你想使用绝对路径/
,即。它与域的根有关。
答案 2 :(得分:0)
我会使用绝对路径来减少可能的错误。
答案 3 :(得分:0)
您可能需要使用global来访问您的案例中的会话变量。