2012-02-14 25 views
1

私UserController.phpは、私はでvar_exportはまだすべて表示する "ログアウト" をクリックすると、この

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')); ?> 

のように見える機能をログアウトしましたユーザーデータとIは、ユーザーに戻った場合/それはまだ私にユーザーが設定されている場合は、私の私のUserController.phpに私がチェックしていていても、そのページを示しindex.ctp

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'); $ this-> Session-> delete( 'User')と$ this-> Session-> destroy( 'User')の違いは何ですか? –

答えて

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

destroyメソッドは、セッションクッキーと一時ファイルシステムに保存されているすべてのセッションデータを削除します。

ユーザーは、削除する方が良い削除を使用してください。あなたがユーザーを認証するためにAuthコンポーネントを使用する場合は

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

$ this-> Session-> delete – CodeCrack

+0

$ this-> Session-> delete()はセッションを空にし、$ this-> Session-> destroy()はPHPセッションを破棄し、新しいセッションを作成します。 –

0

、あなたはログアウト()メソッドを使用して、それらをログに記録することができます。

$this->Auth->logout(); 

ケーキ1.3

のためにケーキ2またはhttp://book.cakephp.org/1.3/en/view/1262/logoutためhttp://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#logging-users-outを参照してください。そして、あなたはまったくAuthコンポーネントを使用していない場合、それはボックスの多くの機能のうち、含まれているとして、あなたは多分それを見ている必要がありますあなたは既に自分自身を実装しているか、おそらく実装している可能性があり

関連する問題