CakePHP Проверить реферер - PullRequest
2 голосов
/ 18 мая 2011

В моем домашнем контроллере приложения 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 Ответ

4 голосов
/ 18 мая 2011

Изменение:

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

Кому:

if($this->referer() == Router::url(array('controller' => 'users', 'action' => 'logout')))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...