2009-07-20 1 views
1

私は、この方法が「現在のセッションは有効ですか?」という質問に答えていますが、理由はわかりません。は無効ですです。私はこの方法のソースを読んだが、まだそれは得られない。私が収集できるものから、セッションデータが期限切れになっているかどうかが関係していますが、わかりません。Cakephpでは、Session-> valid()とは何ですか?

これは、最新のドキュメントには表示されないため、以前のバージョンのCakeに関係するかもしれませんが、使用しているバージョンにあります。

答えて

3

破壊した場合は無効になります。たとえば、ログアウトしたユーザのすべてのセッションデータをログアウトした後に消去したいとします。クライアントは、サーバへの次のポストでメモリクッキーにあるセッションIDを使用しようとするかもしれませんが、サーバはすでにそのセッションを破壊しています。セッションがサーバー上でタイムアウトし、および/またはクライアントが悪い/偽のセッションIDを使用してサーバーと同期しようとした場合

if ($this -> Session -> valid()) 
{ 
    $this -> Session -> destroy(); 
    $this -> redirect('/'); 
} 

もう一つは次のようになります。

+0

しかし、セッションを破棄した場合、サーバーがブラウザにCookieからセッションキーをクリアするように指示するべきではありませんか?ブラウザが破壊されたセッションキーを返すと、それは競合状態のためだけです。 – allyourcode

0

リクエスト間でユーザエージェントが変更された場合(チェックが有効になっている場合)、またはセッションの有効期限が切れていると無効になることがあります。

関連する問題