2

だから私は私のindex.phpにこのコードを持っています:

<?php if(isset($_POST['cookie'])) { setcookie("RememberMe", "Yes", time()+1209600);  } ?>

ユーザーが[記憶する]チェックボックスをオンにすると、RememberMeという名前のCookieが2週間設定されます。この部分は正常に機能します。

今私が抱えている問題は、彼らがログアウトを押したときにこのクッキーを削除することです。

logoutを押すと、次のコードを持つlogout.phpにリダイレクトされます。

<?php include_once('config.php');
include_once('functions.php');

unset($_COOKIE['RememberMe']);
setcookie("RememberMe", "", time()-3600);
$_SESSION = array(); session_destroy(); 


?> 

<meta http-equiv="refresh" content="0;../index.php"> 

しかし、Cookieを削除しない奇妙な理由がありますか?理由について何かアイデアはありますか?

4

4 に答える 4

2

Cookieが設定されているパスが正しいかどうかを確認することをお勧めします。デフォルトでは、PHPは設定されているディレクトリへのCookieパスを設定し、別の場所からは使用できません(削除することもできません)。

その他のヒント:

  • $_COOKIE設定を解除する必要はありません$_SESSION
  • HTTPヘッダーでメタタグリダイレクトを使用してリダイレクトする代わりに:

    header('Location: /index.php'); // or whatever is the path you want to redirect to
    
于 2013-02-11T12:33:46.747 に答える
0

最もクリーンではありませんが、タイムゾーンが正しいことを確認してください正しいCookieを削除していることを確認してください(大文字と小文字を区別します)Cookieの上書きにすべて失敗すると、とにかくそれが削除されます...

Setcookie('mycookie')//空白のエントリでCookieを削除します

于 2013-02-11T12:31:37.330 に答える
0

Cookieのキャンセルには、設定された時間値と同じ時間が必要になる場合があります。

setcookie("RememberMe", "", time()-1209600);
于 2013-02-11T12:41:26.207 に答える
0

この行を削除します

unset($_COOKIE['RememberMe']);

于 2013-02-11T12:55:29.523 に答える