2012-01-06 11 views
1

を削除されません。クッキーは、クッキーは、私は、このファイル(test.phpを)を使用して存在するかどうか確認するには、適切

foreach ($_COOKIE as $key => $value) { 
    print $key . "=" . $value . "</br>"; 
} 

私は次の出力を得る:

fbsr_{app id}={a bunch of chars} 

(もの{内を

session_start(); 
session_unset(); 
session_destroy(); 
:}

は私がこれを使用するすべての私のセッションを削除するには)個人データです

そして、私のクッキーを削除するには、この:

setcookie('fbsr_' . $app_id, $_COOKIE['fbsr_' . $app_id], time() - 3600); 
setcookie('PHPSESSID', $_COOKIE['PHPSESSID'], time() - 3600); 
unset($_COOKIE['fbsr_' . $app_id]); 
unset($_COOKIE['PHPSESSID']); 

問題は、私は私のクッキーが死んでいるかどうかを確認するためのコードを実行すると、彼らはありません、と私は同じ出力を得ることである:/

されているのはなぜ私のクッキーは削除されません?私のコードはどこか悪いですか? ...いくつかのブラウザを試してみました

EDIT: はクッキーのように思える取得した後、すべて破壊されますが、テスト機能はまだクッキーの出力を出力します?!?!よくわかりません?!

(ログアウトファイル)

if($action == 'logout'){ 

     $app_id = $facebook->getAppID(); 

     if (isset($_COOKIE['fbsr_' . $app_id])) { 
      echo 'goes here<br>'; 
      setcookie('fbsr_' . $app_id, $_COOKIE['fbsr_' . $app_id], time() - 3600, "/"); 
      setcookie('PHPSESSID', $_COOKIE['PHPSESSID'], time() - 3600, "/"); 
      unset($_COOKIE['fbsr_' . $app_id]); 
      unset($_COOKIE['PHPSESSID']); 
     } 

     if (isset($_COOKIE['fbsr_' . $app_id])) { 
      echo 'is still sett<br>'; 
     } 

     session_start(); 
     session_unset(); 
     session_destroy(); 

     $result = array("success" => "true"); 
    } 

それはクッキーが削除されることを意味しis still settを印刷したことがありません!

ありがとうございました:)

+0

を削除するために使用されている方法は、あなたが解除($ _ COOKIE [ 'PHPSESSID'])を呼び出す前に破壊されたセッションですか?その時点で、セッションIDが空白の場合、CookieはIDを取得できず、クッキーは参照されていないため設定されません。そうであれば、クッキーが設定されていないうちにセッションが破棄されていることを確認したら、回答フォームに入れます。 –

+0

PHPSESSIDクッキーの問題を解決しましたが、もう1つはまだ生きています:/ – Richard

+0

session_destroy()を "setcookie"ステートメントの下に移動しましたか? –

答えて

1

をこれは私がクッキー

if (isset($_COOKIE['cookieName'])) { 
    setcookie('cookieName', '', time()-1); 
} 
関連する問題