|
session_destroyセッションに登録されたデータを全て破棄する 説明
bool session_destroy()
session_destroyは、現在のセッションに 関連づけられたすべてのデータを破棄します。この関数は、 セッションに関するグローバル変数を破棄しません。 また、セッションクッキーを破棄しません。 セッション変数の利用を再開するには session_start をコールする必要があります。
セッションを切断するには、 セッション ID の割り当ても解除する必要があります。セッション ID の受け渡しに クッキーが使用されている場合(デフォルト)には、セッションクッキーも 削除されなければなりません。 そのために setcookie が利用できます。 session.use_strict_mode が有効になっている場合、 古くなった セッションID のクッキーを削除する必要はありません。 なぜなら、セッションモジュールはセッションIDに紐付いたデータがないとき、 セッションID のクッキーを受け入れないからです。 全てのサイトで、 session.use_strict_mode を有効にすることを推奨します。 警告
すぐにセッションを削除してしまうと、 望まない結果が起こる可能性があります。 並列にリクエストが行われたときに、 他のリクエストの接続は突然データが消えたように見えるかもしれません。 たとえば、JavaScript または/もしくは URLリンクからのリクエストが同時に実行された場合です。 現在のセッションモジュールは、空のセッションIDを受け入れません。 しかし、すぐにセッションを削除してしまうと、 クライアント(ブラウザ)サイドとの競合によって、 空のセッションIDクッキーが発生するかもしれません。 これにより、不必要なのにクライアント側が たくさんのセッションIDを作ってしまうことになります。 こうした事象を防ぐためには、 $_SESSION に削除時のタイムスタンプを設定し、 それより後のアクセスを拒否するようにしなければなりません。 もしくは、アプリケーションが同時に 複数のリクエストを受け付けないようにすることです。 同じことは、session_regenerate_id 関数にも当てはまります。 パラメータこの関数にはパラメータはありません。 戻り値
成功した場合に 例
例1 $_SESSIONでセッションを破棄する
|