11

フロントに設定したCookieをPHPでJS経由で削除することはできますか?

私はこれをやっています:

*フロント (JS):

if ($.cookie('myCookie'))
{
   console.log('Cookie.. :(  ');
}
else
{
    console.log('Yaay! No cookie!');
    $.cookie('myCookie', '123');
}

戻る (PHP):

if (isset($_REQUEST['removeCookie']))
{
   setcookie("myCookie", "", time()-3600);
   unset($_COOKIE['myCookie']);
}

結果:

ここに画像の説明を入力

どうやらミステリーのようです

4

5 に答える 5

10

You can't force the browser to delete the cookie file. You can, however, delete the contents of the cookie and expire it. Which is exactly what you're doing with your code above. I would probably tweak it slightly:

setcookie('myCookie', '', 1, '/'); // no need to calculate one hour ago.
于 2013-03-06T16:19:40.303 に答える
4

クライアントの時刻が間違っている場合、time() 関数を使用して Cookie の有効期限を設定すると、期待どおりに機能しない場合があります。

クッキートライの設定を解除するには、

setcookie('myCookie', 'blah blah', 1);

出典: php setcookie docs のコメント

于 2013-03-06T16:21:20.657 に答える
2

タイムアウト後にユーザーのPCがCookieを削除するかどうかによって異なります。個人的にはそれを信用しません。Cookieを空の値に設定するかDELETED、テストコードでCookieが設定されているかどうかを確認してから、値が空白でないかどうかを確認します。DELETED

于 2013-03-06T16:17:32.990 に答える
0

誰かがテスト マシンでこのコードを実行できますか? php で Cookie を「設定解除」できるが、値を変更したり期限切れにしたりできない理由について少し混乱しています。setcookie() がまったく機能していないようです。

<script type="text/javascript" src="jquery.js"></script>
<script src="jquery.cookie.js"></script>
<script>
   $.cookie('myCookie', '123' ,'/');
   console.log("Created myCookie");
</script>
<?php
   echo $_COOKIE['myCookie'];
   //Comment/uncomment below as required
   //setcookie("myCookie", "BLAH", time()-430000);
   //$_COOKIE['myCookie'] = "BLAH";
   setcookie('myCookie', '', 1, '/');
   echo "<br />unset myCookie";
   echo "<br />".$_COOKIE['myCookie'];
?>
<script>
console.log($.cookie('myCookie').length);
if ($.cookie('myCookie').length>0)
{
   console.log('Cookie exists  ');
   console.log($.cookie('myCookie'));
}
else
{
    console.log('Yaay! No cookie!');
}
</script>

php <> JS Cookie の不一致を作成できるようです。つまり、2 つの Cookie がまったく同じように呼び出されますが、異なるデータが格納されます。

于 2013-03-06T16:13:39.827 に答える