为了账号安全,请及时绑定邮箱和手机立即绑定

将用户重定向到登录表单

将用户重定向到登录表单

PHP
江户川乱折腾 2021-11-19 17:05:53
亲爱的,我创建了一个允许将用户重定向到特定 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');}函数 isLogged 是:public function isLogged(){    return isset($_SESSION['User'][0]->id);}我尝试为 BO 管理页面做同样的事情并且它有效。但我也需要保护头版。问题是当我尝试访问首页时,我重定向到登录表单,但我的 Chrome 浏览器出现 ERR_TOO_MANY_REDIRECTS 错误。我试图删除 cookie,但我遇到了同样的问题。当我尝试忽略以下行时,我可以看到我的登录表单:if(!$this->Session->isLogged()){    $this->redirect('users/login');}
查看完整描述

2 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

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


if(!$this->Session->isLogged() && !$this->isLoginPage()){

  $this->redirect('users/login');}

}


查看完整回答
反对 回复 2021-11-19
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

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

  1. 无限重定向:您可能无限次调用您提到的函数

  2. 连续重定向过多:“Header”原生 PHP 函数每个实例仅处理一个标头。

简而言之:与您的案例相关的错误肯定与无限重定向有关,否则可能会调用其他重定向以及您正在调用函数的页面中想要的重定向。


查看完整回答
反对 回复 2021-11-19
  • 2 回答
  • 0 关注
  • 166 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信