PHP が Cookie をクリアする方法は、この Cookie の有効期間を現在時刻より前に設定することであり、実装コードは「setcookie('test',time() - 3600);」のようになります。
この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、DELL G3 コンピューター
Cookie をクリアする方法PHP? PHP では COOKIE を削除できませんか? COOKIE の有効期間を設定する
PHP は HTTP Cookie を透過的にサポートしています。Cookie はリモート ブラウザ側にデータを保存し、ユーザーの追跡と識別に使用するメカニズムです。 Cookie は setcookie() または setrawcookie() 関数を使用して設定できます。Cookie は HTTP ヘッダーの一部であるため、他の情報がブラウザーに出力される前に setcookie() 関数を呼び出す必要があります。これはヘッダーの制限と同様です() 関数。
setcookie();
Cookie を削除する方法は、この Cookie の有効期間を現在時刻より前に設定することです。
setcookie('test', 'true', time() + 300); // 创建 cookie //setcookie('test',time() - 3600 ); // 清除建立的 cookie //setcookie('test'); //只是将 $_COOKIE['test'] 的值清空 如果直接setcookie('test', ''); echo ' '; print_r($_COOKIE); //attay();
$_COOKIE だけでなく、$_COOKIE 配列が空であることがわかります。 ['test'] は空であるため、winsock はパケットをキャプチャし、返された
http ヘッダーを観察しました。それは次のようになりました: set-cookie:test=deleted;expires=Mon, 29-May-2014 10 :22:15 GMT
ログイン:
setcookie('username', 'zhangsan', time()+1000, "/php100");
終了:
setcookie('username', '', time()-3600);
IE ではログアウト時に問題がないことがわかりましたが、Firefox でテストすると、ログインは正常ですが、ログアウトできません。IE と Firefox の Cookie レコードの違いを確認してください。
をテストした結果、setcookie() の 4 番目のパラメーター (正当なパス パラメーター) が指定されていないことが判明したため、ログイン時と終了時に設定された cookie のパスが異なっていました (Firefox はより厳密で、各変数が再確立されました)
IE では終了時に問題がないことがわかりましたが、Firefox でテストすると、ログインは正常で終了できません IEとFirefoxのCookieレコードの違いを確認してテストしてわかった
setcookie()の4番目のパラメータ(正当なパスパラメータ)が指定されていないことが判明したので、ログイン時と終了時に設定される Cookie のパスが異なっていました (Firefox は厳密であり、さまざまな変数の再構築が必要でした)
例:
$value = 'something'; setcookie('TestCookie', $value, time() + 3600); setcookie('mytest', $value, time() + 3600, "~rasmus", ".maoge.com", 1); if (isset($_COOKIE['TestCookie'])) { echo 'TestCookie :' . $_COOKIE['TestCookie']; }
推奨学習: 「PHP ビデオ」チュートリアル###"###
以上がPHPでCookieをクリアする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。