首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP检查referer

CakePHP检查referer
EN

Stack Overflow用户
提问于 2011-05-18 22:08:34
回答 1查看 5.5K关注 0票数 2

我的CakePHP应用程序主控制器中有以下代码:

代码语言:javascript
复制
public function index ()
{
    if($this->referer(array('controller' => 'users', 'action' => 'logout')))
    {
        $this->layout = 'splash';

        $this->set('title_for_layout', 'Goodbye');

        $this->render('loggedout');
    }
    else
    {
        if (!$this->Auth->user())
        {
            $this->layout = 'splash';

            $this->set('title_for_layout', 'Welcome to CreatHive');

            $this->render('splash'); 

        }
        else
        {

            $this->layout = 'home';

            $this->set('title_for_layout', 'CreatHive');

            $this->render('index');

        }
    }
}

基本上,它表示如果用户来自注销操作,则显示注销视图,如果不是,则检查用户是否已登录,并显示启动页面或主页。

但是,它总是显示注销视图,无论是否登录,甚至是来自注销操作(甚至刷新会话/cookie等都不起作用)。

在我看来代码看起来很好,你知道问题出在哪里吗:/

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-05-18 22:42:36

更改:

代码语言:javascript
复制
if($this->referer(array('controller' => 'users', 'action' => 'logout')))

至:

代码语言:javascript
复制
if($this->referer() == Router::url(array('controller' => 'users', 'action' => 'logout')))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6046076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档