CakePHP检查引用者

时间:2011-05-18 14:08:34

标签: php cakephp

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

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等也不起作用)

任何想法是什么问题,因为代码看起来很好:/

由于

1 个答案:

答案 0 :(得分:4)

变化:

if($this->referer(array('controller' => 'users', 'action' => 'logout')))

要:

if($this->referer() == Router::url(array('controller' => 'users', 'action' => 'logout')))