2011-10-07 9 views
1

私はクッキーを初めて使用しています。ログインしたユーザーを覚えておくために一意のMD5キーを保存するためにCookieを使用するユーザーログインphpクラスを作成しました。ただし、ユーザーがログアウトしたときにCookieがリセットされていません。スタックオーバーフローで見つかったコードから、ログアウト時にクッキーをクリアする関数を作成しました。クッキーがPHPでリセットされない

static public function clearCookies() 
{ 
    $past = time() - 3600; 
    foreach ($_COOKIE as $key => $value) 
    { 
      $value = ''; 
     setcookie($key, $value, $past); 
     setcookie($key, $value, $past, '/'); 
    } 
} 

ただし、クッキーはまだクリアされていません。

これはあなたがクッキーを送信した後読める変更されたことに注意する必要が

static public function clearCookies() 
{ 
    $past = time() - 3600; 
    foreach ($_COOKIE as $key => $value) 
    { 
      $value = ''; 
     setcookie($key, $value, $past); 
     setcookie($key, $value, $past, '/'); 
     unset($_COOKIE[$key]); 
    } 
} 

を追加する

setcookie("auth_key", $authKey, time() + 60 * 60 * 24 * 7); 

おかげで事前に

答えて

1

ここでは解決策があります。

私はそれはからリセットされたURLを追加した後。それがで設定されたURLよりも違っていたので、クッキーがリセットされていなかったようだ

setcookie("auth_key", $authKey, time() + 60 * 60 * 24 * 7, '/'); 

setcookie("auth_key", $authKey, time() + 60 * 60 * 24 * 7); 

を変更'/'新しいURLからリセットすることができます。

1

てみクッキーを設定するコードの行であります($ _COOKIE経由で手動で設定しない場合)、次のリフレッシュを行います。

+0

どのように 'unset($ _ COOKIE [$ key])'は状況にどのように役立ちますか? – webbiedave

+0

私は自分よりも先に進んでいます。それが動作しなかったライブサーバー上で試してみてください。 – simpleengine

+0

@webbiedave:コードの残りの部分の変更を確認するために、ページをリロードする必要はありません – genesis

関連する問題