私のサイトでは、ユーザー名とログイン セッション用の Cookie を作成する単純なログイン システムを使用しています。誰かが home.php にアクセスし、ログイン セッションがログイン済みとして設定されている場合、ログイン済みエリアにプッシュされます。それ以外の場合は、単純なフォームとハンドラー ページを使用してログインします。ユーザーをログアウトするには、次のコードを含む logout.php に移動するリンクをクリックします。
<?
session_start();
setcookie(username, $username, time()-360000);
session_start($_SESSION['login']);
$_SESSION["Login"] = "no";
header("Location: home.php");
session_destroy();
?>
これが何が起こっているかです。ログアウト ボタンをクリックしたユーザーは、ページ home.php に正しく追い出されます。ページを更新すると、home.php ページに残ります。これまでのところ良さそうです。
ただし、ホームページから移動すると、ログイン領域に移動します。また、ログインしている領域の URL にアクセスしても、追い出されることはありません (セッション チェック スクリプトが、セッション値がログイン済みとして設定されていることを確認するため)。
私は唖然としています。私は決して PHP のプロではありませんが、何が間違っているのでしょうか?