ホームページ >バックエンド開発 >PHPチュートリアル >PHP で Web サイトに関連付けられたすべての Cookie を効率的に削除するにはどうすればよいですか?

PHP で Web サイトに関連付けられたすべての Cookie を効率的に削除するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-24 18:19:20337ブラウズ

How to Efficiently Delete All Cookies Associated with Your Website in PHP?

PHP で Web サイトに関連付けられたすべての Cookie を削除する

ユーザーのログアウト時に Web サイトの Cookie をすべて削除しようとしたときに、次のコードで問題が発生しました:

<code class="php">setcookie("user",false);</code>

このコードは効果がないようです。特定のドメインから Cookie を削除する別のアプローチを検討してみましょう。

PHP の setcookie() 関数

PHP の setcookie() 関数は、Cookie の設定と消去の両方を行う手段を提供します。 Cookie を削除するには、その値を空の文字列に設定し、有効期限を過去の日付に設定します。

<code class="php">setcookie("name", "", time() - 3600);</code>

ドメインのすべての Cookie の削除

削除するためのこのアプローチの実装ドメインに関連付けられたすべての Cookie には代替ルートが必要です。 PHP の setcookie() 関数には、複数の Cookie を同時に削除する機能がありません。ただし、$_SERVER['HTTP_COOKIE'] 変数を利用すると、既存の Cookie を列挙して個別に削除できます。

<code class="php">// unset cookies
if (isset($_SERVER['HTTP_COOKIE'])) {
    $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
    foreach($cookies as $cookie) {
        $parts = explode('=', $cookie);
        $name = trim($parts[0]);
        setcookie($name, '', time()-1000);
        setcookie($name, '', time()-1000, '/');
    }
}</code>

Cookie をループし、パスと有効期限の両方の値を空の文字列に設定することで、現在のドメインに関連付けられているすべての Cookie を効果的に消去できます。

以上がPHP で Web サイトに関連付けられたすべての Cookie を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。