cookieが破棄できない【PHP】
今PHPを習得中なんですが、以下のプログラムでクッキーの破棄ができません。
どこか間違いがあればご指摘お願いします。
<?php
session_start();
print <<<____HTML____
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無題ドキュメント</title>
</head>
<body>
____HTML____;
/* -------------------- 処理を分岐 ------------------------ */
if(isset($_POST["do_logout"])){
$key = "do_logout";
}
else $key = "do_not_logout";
switch($key){
case "do_not_logout": do_not_logout(); // ログアウトしない
break;
case "do_logout": do_logout(); // ログアウトする
break;
}
/* --------------------- do_not_logout() ----------------------- */
function do_not_logout(){
header("Location:main.php");
} // do_not_logout()
/* ------------------ do_logout() ---------------------- */
function do_logout(){
print "現在のセッション変数<br>"; // 現在のセッション変数
print_r($_SESSION);
print "<br><br>";
print "現在のクッキー変数<br>"; // 現在のセッション変数
print($_COOKIE["PHPSESSID"].'<br>');
$_SESSION = array() ; // すべてのセッション変数を初期化
if (isset($_COOKIE["PHPSESSID"])) { // ここでクッキーを破棄
print "ここでクッキーを破棄<br>";
setcookie("PHPSESSID", '', time() - 1800, '/');
}
session_destroy() ; // セッションを破棄
$Massage = "ログアウトが完了しました。\nまたのお越しをお待ちしております。\n";
print('セッション変数の確認<br>'); // セッションが破棄されているかの確認
if (!isset($_SESSION["login"])){
print "セッション変数は破棄されています。<br>";
}else{
print"セッション変数は破棄されていません。→{$_SESSION["login"]}<br>";
}
print "セッションIDの確認をします。<br>"; // クッキーが破棄されているかの確認
if (!isset($_COOKIE["PHPSESSID"])){
print "クッキーは破棄されています。<br><br>";
}else{
print"クッキーは破棄されていません。→{$_COOKIE["PHPSESSID"]}<br>";
}
} // do_logout()
echo $Massage;
print "<p><a href=\"index.php\">トップページに戻る</a></p>";
?>
</body>
</html>
/* -------------- 実行結果 (一部)------------------*/
現在のクッキー変数
**************************d5ee33b19ef197aef
ここでクッキーを破棄
Warning: Cannot modify header information - headers already sent by (output started at logout.process.php:18) in logout.process.php on line 81
セッション変数の確認
セッション変数は破棄されています。
セッションIDの確認をします。
クッキーは破棄されていません。→************************d5ee33b19ef197aef
お礼
返事が大変遅くなり申し訳ありません 連結代入をするのですねありがとうございました!