我用我的配置文件中的location()
函数调用,但它一直重定向我我正在去在调用它的页面,使用'标题(“位置:...)`
我这样做:
if (!isset($_SESSION['user_login_name']) || !isset($_SESSION['user_logged_in']))
{
header("Location: /login/");
exit();
}
什么是做最好的方式,所以服务器知道它的登录页面上,而不是重定向回这个无限
我用我的配置文件中的location()
函数调用,但它一直重定向我我正在去在调用它的页面,使用'标题(“位置:...)`
我这样做:
if (!isset($_SESSION['user_login_name']) || !isset($_SESSION['user_logged_in']))
{
header("Location: /login/");
exit();
}
什么是做最好的方式,所以服务器知道它的登录页面上,而不是重定向回这个无限
我想以最好的方式是什么?这样做是为了检查当前脚本是否有$_SERVER
检查在/login/
目录中,这可能如下所示:
if (!isset($_SESSION['user_login_name']) || !isset($_SESSION['user_logged_in']))
{
if ($_SERVER['SCRIPT_NAME'] !== '/login/index.php')
{
header("Location: /login/");
exit();
}
}
谢谢你,我会检查出来的! – swiftie821
这将工作。另一方面,它具有的缺点是脚本将被绑定到一个目录,并且必须具有您正在检查的名称。什么时候登录页面被移动到目录'/ admin /'并被重命名为'login.php'? – hherger
@hherger,那么OP可以更改条件语句或添加一个额外的 –
设置一个像这样的头文件头(“位置:....”)立即发出重定向。你能解释一下你想做什么吗?如果您希望重定向用户,当他/她第一次正确登录时,您应该在验证用户凭证并设置$ _SESSION变量的位置移动此语句。否则它 - 当然可以无休止地重定向。 – hherger
我希望能够将用户重定向到索引文件所在的/ login/file文件夹,这是为了确保它们已登录,而不管访问网站上的任何内容,所以我需要一种方法检查活动页面是否不是登录目录中的索引文件。你也可以在问题中看到,我使用'header(“Location:/ login /”);'改变位置,'...'是一个空格填充器 – swiftie821
我认为没有必要识别页面本身。如果任何页面脚本正在检查凭证,如在您的示例**中,但是login.php页面**,则仅当用户未登录时才会发生重定向。 – hherger