はじめに

今回は、セッション変数($_SESSION)のデータを破棄する手順についてまとめていきます。破棄のタイミングなど、まだまだ勉強しないといけないことはありますが、とりあえず手順を。

Contents

セッション変数の破棄手順

セッション変数を破棄するには、3つの手順があり、全て行う必要があるようです。そのあたりは、「プログラマはサイコロをふらない」さんの「PHPでセッションを完全に破棄する方法」という記事にて非常に分かりやすい例えで説明されています。

さて、肝心の手順ですが、次のような流れになります。
セッション変数解除→セッションクッキー削除→セッション破棄

それでは、それぞれについてみていきましょう。

手順①|セッション変数解除

まずは、セッション変数を全て削除するために、次のようにします。

$_SESSION = array();

空の配列を入れることで、全ての変数を解除しているんですね。

手順②|セッションクッキー削除

次にセッションクッキーの削除です。

if (isset($_COOKIE["session_name"])) {
    setcookie("session_name", '', time() - 42000, '/');
}

「time() – 42000」の部分でクッキーの有効期限を設定しています。クッキーの削除はもうちょっと調べて、今度まとめます。

手順③|セッション破壊

最後にセッションを破壊して終了となります。セッションを破壊するには、次のように書きます。

session_destroy();

これで無事セッションを破棄することができます。

以上の3手順をまとめると、このようになります。

//手順①|セッション変数解除
$_SESSION = array();

//手順②|セッションクッキー削除
if (isset($_COOKIE["session_name"])) {
    setcookie("session_name", '', time() - 42000, '/');
}

//手順③|セッション破壊
session_destroy();

参考サイト