奇怪的标题(“位置:”);错误

时间:2010-08-24 03:20:51

标签: php header

我使用PHP的标头功能完成了大量的重定向。这个让我难过。

在我的仪表板控制器上,我检查是否设置了$ _SESSION ['loggedin']。如果没有设置,我想将用户发送回主页面。但是,我不断收到“太多重定向”错误,即使我只设置了一次。谁能帮我吗?感谢您的帮助!

这是我的代码 -

function index() {
    if(!isset($_SESSION['loggedin'])) {
        header("Location: ./");
    } else {
        die("The user is logged in.");
    }
}

4 个答案:

答案 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来访问您的案例中的会话变量。