0

さまざまなスレッドを読みましたが、どの解決策も機能していないようです。

2 つの PHP ページがあります。

cookieson.php

<?php session_start();
$future = time()+60*60*24*30*12;
setcookie('CookiesAgreed', 'yes', $future, '/');
?>

cookieoff.php

<?php session_start();
$past = time()-9999999999999999;
setcookie('CookiesAgreed', null, $past, '/');
?>

cookieson.php は、有効期限が約 1 年先の Cookie「CookiesAgreed」を正しく設定します。

cookiesoff.php は「CookiesAgreed」Cookie を完全に消去する必要がありますが、何もしていないようです - 値は変更されず (Firefox の Cookie リストによると)、有効期限は変更されず、Cookie は削除されません。ときどき、同じ名前、値、有効期限を持つまったく新しい Cookie が作成されます (これも Firefox によると)。

私は何を間違っていますか?!

( http://www.rugbyfiles.com/cookieson.phpおよびhttp://www.rugbyfiles.com/cookiesoff.phpで確認できます)

4

2 に答える 2

7

これはスタックを超えてオーバーフローします。

$past = time()-9999999999999999;

代わりに、次のようにします。

$past = time()-60*60*24*30*12;

time 変数は から0までの値のみを保持できます4294967296。このような長い負の値を指定すると、スタックから外れます。

于 2013-02-15T11:24:25.383 に答える
0
setcookie("CookiesAgreed","",time()-24*60*60,"/");
于 2015-02-24T12:47:33.540 に答える