方法と場所
$this->Session->destroy()
ページが閉じられるたびにセッションが破棄されるようにするには?
そして、時間とは無関係に、ページが閉じられるまでセッションを開いたままにするにはどうすればいいですか?
私はこれが必要なのは、ユーザーがページに入ったときに、いくつかの特定の変数がセッションで設定されていないためで、彼が出てきたらこのセッションを破棄する必要があるからです。 私はcakephpを使ってこれを行うことができません。
回答:
回答№1は1セッションはサーバーに保存されるため、ブラウザーを閉じるかユーザーが別のページに移動すると、サーバーにこのアクションについて通知する義務はありません。
セッションは一定時間サーバに保存され、しばらく時間が過ぎると正常にログアウトすると自動的に破棄されます。
セッション情報をチェックインする CakePHPの料理本 セッションに関する詳細情報
回答№2の場合は0
あなたは使用しようとすることができます $(window).unload(function(){alert("Closing browser")});
そして、セッションを破棄するためにサーバーにAJAXを呼び出すが、これはいくつかのブラウザでは動作しないかもしれないし、jQuery 1.8で既に推奨されていない関数の詳細
http://api.jquery.com/unload/
回答№3の場合は0
Auth cakephp 3.0コンポーネントを使用した場合は、セッションコアコンポーネントによって実行されるすべてのセッションとCookie管理を行う必要はありません。
$ this-> Session-> destroy()
それはすべてのクッキーとセッションのデータを破壊しますが、特定のセッションを破壊したい場合は、このコードで行うことができます
$ this-> Session-> destroy( "$ val");
ここで、$ valは破壊する特定のセッションを表します