HOME > PHP

セッション

セッションを完全に破棄する方法

<?php
// セッション変数を全て解除する
$_SESSION = array();

// セッションを切断するにはセッションクッキーも削除する。
// Note: セッション情報だけでなくセッションを破壊する。
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), ”, time()-42000, ‘/’);
}

// 最終的に、セッションを破壊する
session_destroy();
?>

$_SESSIONを用いる書き方をしている場合、session_unset()を使ってはいけない。
また、unset($_SESSION)などもしてはいけない。これをすると、セッション変数を格納する連想配列が消えてしまうことになり、セッション変数を登録できなくなってしまう。
セッション変数全体ではなく、あるセッション変数を消去したい場合にのみ、unset($_SESSION[‘セッション変数名’])を用いる。
参考 http://d.hatena.ne.jp/Kappuccino/20080726/1217049706