2012-02-14 76 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'); 
    } 

我認爲用戶/ 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('User');它也將起作用.. – 2012-06-14 12:03:13

回答

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

的銷燬方法刪除會話cookie並存儲在臨時文件系統中的所有會話數據。

要移除的用戶,請使用更好的刪除。

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

$ this-> Session-> delete('User')和$ this-> Session-> destroy('User')之間的區別是什麼? – CodeCrack 2012-02-14 20:04:32

+0

$ this-> Session-> delete()清空一個Session,$ this-> Session-> destroy()銷燬PHP會話,然後創建一個新的會話。 – 2012-02-14 22:04:36