Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将用户重定向到登录表单_Php_Html - Fatal编程技术网

Php 将用户重定向到登录表单

Php 将用户重定向到登录表单,php,html,Php,Html,亲爱的 我创建了一个允许将用户重定向到特定URL的函数。该函数名为重定向,用户标题函数为: public function redirect($url, $code = null) { if($code == 301){ header("HTTP/1.1 301 Moved Permanently"); } header('Location: '.Router::url($url)); die(); } 我使用它来保护一些页面,以便未经身份验证的

亲爱的

我创建了一个允许将用户重定向到特定URL的函数。该函数名为重定向,用户标题函数为:

public function redirect($url, $code = null)
{
    if($code == 301){
        header("HTTP/1.1 301 Moved Permanently");
    }
    header('Location: '.Router::url($url));
    die();
}
我使用它来保护一些页面,以便未经身份验证的用户可以访问。我提出一个条件,允许检查用户是否登录,如果没有,将重定向到登录表单:

if(!$this->Session->isLogged()){
    $this->redirect('users/login');
}
if(!$this->Session->isLogged()){
    $this->redirect('users/login');}
已记录的函数为:

public function isLogged()
{
    return isset($_SESSION['User'][0]->id);
}
我试着做同样的事情,对于BO管理页面,它是有效的。但我也需要保护头版。问题是,当我尝试访问首页时,我被重定向到登录表单,但我在Chrome浏览器上遇到了ERR_TOO_MANY_REDIRECTS错误

我试图删除Cookie,但我有同样的问题。当我试图忽略以下行时,我可以看到我的登录表单:

if(!$this->Session->isLogged()){
    $this->redirect('users/login');
}
if(!$this->Session->isLogged()){
    $this->redirect('users/login');}

PHP在两种主要情况下引发此错误:

  • 无限重定向:您可能会无限次地调用您提到的函数
  • 一行中的重定向太多:“Header”本机PHP函数只处理每个实例的一个Header
    简而言之:与您的案例相关的错误肯定与无限重定向有关,否则可能会调用其他重定向,而且在您调用函数的页面中也会调用所需的重定向。

    如果您已经在该页面上,则不应尝试重定向到登录

    if(!$this->Session->isLogged() && !$this->isLoginPage()){
      $this->redirect('users/login');}
    }
    

    您的登录页面不必检查是否已登录user@GiacomoM什么意思?我不明白你有没有把
    如果(!$this->Session->isLogged())
    放在登录页面上?谢谢。我测试我是否已经在登录页面中,如果没有重定向。