0

ログイン/ログアウトスクリプトに取り組んでいます。ログアウトが機能しない理由がわかりません。考えられるあらゆる方法を試しましたが、セッションが破壊されません。

if($_GET['action'] == 'logout') {
    $_SESSION = array(); 
    session_destroy();

    header("location: /index.php");
    exit();
}

session_start()コードはホームページにあり、セッションはまだ開始されているため、追加する必要はありません。

前もって感謝します。

編集

ログアウトボタンをクリックすると実際に機能します。実際、ホームページにアクセスすると、もうログインしていません。

そして、さらに奇妙なことに、Internet Explorer では動作します。これはどのように可能ですか?つまり、PHP ではなく CSS を使用するブラウザーの違いに慣れていました :)

4

3 に答える 3

2

ページの上部

session_start();

そうでなければ、以下は機能しません

if($_GET['action'] == 'logout') {
  $_SESSION = array(); 
  session_destroy();
  header("location: /index.php");
  exit();
}
于 2013-05-05T14:53:12.060 に答える
0

すべての Cookie を削除するか、ログイン認証に使用される Cookie のみを削除してみてください。

if (isset($_SERVER['HTTP_COOKIE'])) {
    $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
    foreach($cookies as $cookie) {
        $parts = explode('=', $cookie);
        $name = trim($parts[0]);
        setcookie($name, '', time()-1000);
        setcookie($name, '', time()-1000, '/');
    }
}

http://www.php.net/manual/en/function.setcookie.php#73484

于 2013-05-05T14:55:11.350 に答える