【问题标题】:getting referer from auth in cakePHP在 cakePHP 中从 auth 获取引用
【发布时间】:2009-11-12 05:29:58
【问题描述】:

我在主页上有一个链接,只有在他们登录后才能访问。但是,如果单击此链接,我想在登录页面上显示自定义错误消息(自定义“Message.auth”) .

即我要(伪代码)

if (referer == '/users/reserve'){
    Message.auth = 'Please log in to reserve tickets';
}
else {
    Message.auth = 'Please log in to access that page';
}

我应该把这段代码放在哪里?

【问题讨论】:

    标签: cakephp referer


    【解决方案1】:

    如果您在登录视图中输出了 auth flash 消息,这应该可以工作:

    // login action of users_controller.ctp
    if ($this->Session->check('Auth.redirect')
     && $this->Session->read('Auth.redirect') == '/users/reserve') {
      $this->Session->write('Message.auth', 'Please log in to reserve tickets');
    }
    

    【讨论】:

    • 我实际上不得不在重定向上使用 preg_match,因为通常在保留之后有东西,但这是关键。谢谢。
    • 另外,我在使用 Session->write 时遇到了 /tmp/cache 的一些奇怪问题。使用setflash("", 'default', array(), 'auth') 更容易做到这一点。
    【解决方案2】:

    要获取引用者,您可以调用 $this->referer() 来获取引用 URL,然后将该值传递给您的视图。

    见:referer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多