2011-09-12 13 views
0

私はログアウトリンクを押しているうちにページからユーザを終了させませんが、クリック後に手動でリフレッシュすると本当にログアウトします。 ログアウトコマンドは次のとおりです。FireFoxのunset_sessionでPHPセッションを削除する際の問題

$URL = $_GET['url']; 
session_unset(); 
redirect($URL); 

ページは、彼らが削除されたと だけで手動でリフレッシュした後、それはOKですが、私は、セッション変数を参照してくださいリダイレクトされた場合。

ChromeとIEに問題はありません。

+1

は、あなたが、これは単にキャッシュの問題ではありませんよろしいです:?ここ

があることを行うPHPマニュアルからのサンプルコードですかリフレッシュをクリックするとログアウトして表示されるので、これが問題であると思われます。 – Brad

+0

session_unsetを呼び出す前にsession_start()を呼び出していますか? – Gerben

+0

ブラッド - 私はそれについて何ができますか? Gerben - はい、あります。 – Nimi

答えて

0

本当にユーザーをログアウトするには、セッションIDとクライアントにセッションIDを伝播するために使用されるCookieも解除する必要があります。

<?php 
// Initialize the session. 
// If you are using session_name("something"), don't forget it now! 
session_start(); 

// Unset all of the session variables. 
$_SESSION = array(); 

// If it's desired to kill the session, also delete the session cookie. 
// Note: This will destroy the session, and not just the session data! 
if (ini_get("session.use_cookies")) { 
    $params = session_get_cookie_params(); 
    setcookie(session_name(), '', time() - 42000, 
     $params["path"], $params["domain"], 
     $params["secure"], $params["httponly"] 
    ); 
} 

// Finally, destroy the session. 
session_destroy(); 
+0

オフィール、あなたには詳細な答えをありがとうが、助けにはならなかった。それはまだ同じです。さらに、FireFoxのログイン状況でも起こっています。 – Nimi

+0

誰かが助けてくれますか? – Nimi