内部页面的PHP重定向

时间:2016-12-02 08:10:22

标签: php

我有一个简单的登录系统,如果你没有登录,它会从每个内部页面重定向回到外面。(比如check_user)

现在我的一个页面有问题,因为login.php位于admin-cp的主文件夹中,对于大多数页面来说都不是问题。但我为我正在使用的新闻小组创建了一个新文件夹,所以当然它不会重定向但我无法找出问题是什么。

    if(!isset($_SESSION['userid'])) {
    die('Please login first! <a href="login.php">Back to login</a>');
}

有关如何使其适用于其他文件夹的任何建议吗?只需将login.php复制粘贴到该特定文件夹或您建议的是什么?

3 个答案:

答案 0 :(得分:1)

试试这个,它需要完整的网络路径,删除/之后的所有内容并添加login.php

if(!isset($_SESSION['userid'])) {
    $url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    $url = substr($url , 0, strpos($url , "/")); //should give you just the root website (http://website.com/ or http://localhost/)
    $url += + "login.php" //maybe you need to do "/login.php"

    die("Please login first! <a href='$url'>Back to login</a>");
}

答案 1 :(得分:0)

如果您要重定向它们,请尝试使用基于根的链接。它来自顶层文件夹,无论如何它们总是到达页面。

将路径放在顶层目录的登录名中,以/

开头

die('Please login first! <a href="/login.php">Back to login</a>');

答案 2 :(得分:0)

如果您的login.php位于根目录(即http://example.com/login.php),则可以在前面添加/,以便将其链接回根文件夹(又名绝对值)路径)并在那里寻找login.php。

喜欢这样。

if(!isset($_SESSION['userid'])) {
die('Please login first! <a href="/login.php">Back to login</a>');

只有login.php是一个相对路径,它只会查找当前目录中的文件。