2012-02-14 3 views
1

мой UserController.php имеет функцию выхода из системы, которая выглядит, как этот

function logout() 
    { 
     $this->Session->destroy('User'); 
     $this->Session->setFlash('You\'ve successfully logged out.'); 
     var_export($this->Session->read('User')); 

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

мой взгляд Users/index.ctp

<?php echo $this->Html->link('Logout', array('controller' => 'users', 'action' => 'logout')); ?> 

Когда я нажимаю "выйти" var_export еще отображает все данные пользователя, и если я вернусь к пользователям/index.ctp он все еще показывает мне эту страницу, даже если в моем моем UserController.php я проверяю, если пользователь находится

function beforeFilter() 
{ 
    $this->__validateLoginStatus(); 
} 


function __validateLoginStatus() 
    { 
     if($this->action != 'login' && $this->action != 'logout') 
     { 
      if($this->Session->check('User') == false) 
      { 
       $this->redirect('login'); 
      } 
     } 

Он не перенаправляет страницу входа и просто приводит меня на страницу индекса. }

+0

$ this-> Session-> destroy ('Пользователь'); Он также будет работать. –

ответ

3
$this->Session->destroy(); 

разрушающих метод удаляет куки сессии и все данные сессии хранятся в файловой системе временной.

Убрать, использовать лучше удалить.

$this->Session->delete('User'); 
+0

В чем разница между $ this-> Session-> delete ('User') и $ this-> Session-> destroy ('Пользователь'); – CodeCrack

+0

$ this-> Session-> delete() пустой сеанс и $ this-> Session-> destroy() уничтожить сеанс PHP, а затем создать новый сеанс. –

0

Если вы используете AuthComponent для аутентификации пользователей, вы можете войти их с помощью метода выхода из системы().

$this->Auth->logout(); 

См http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#logging-users-out для торта 2 или http://book.cakephp.org/1.3/en/view/1262/logout для торта 1,3

И если вы не используете AuthComponent на всех, вы должны иметь, возможно, взглянуть на него, поскольку он содержит из коробки много функциональных возможностей что вы уже или, скорее всего, реализуете себя.

Смежные вопросы