cutmail's blog

write the code

PHPでセッション使用時のログアウトについて

今、PHPでスクラッチで掲示板を作っています。
セッションをcookieを使用するようにして、ログインとかログアウトとかするようにしているのですが、
ログアウト処理をしたはずなのに、なぜか記事が見れてしまう現象が起きました。
会員制にしているので、それは仕様とは言えなく、まずいのですよね。
その時のソースがこちら。

<?php

// セッション変数を解除
$_SESSION = array();

// セッションを破棄
session_destroy();

?>

わかりますか?

cookieを使っているので、上記のソースだとクライアント側にはcookieが残ってしまっています。
正しくはこんな感じです。

<?php

// セッション変数を解除
$_SESSION = array();

// セッションcookieを削除
if (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
}

// セッションを破棄
session_destroy();

?>