これで既存のCookieの設定を解除/削除したい:
setcookie ("user", "", time()-1);
unset($user);
ただし、Cookieを削除したり設定を解除したりすることはできません。では、何が問題なのでしょうか。
この方法でCookieの設定を解除できるのは、-1が機能しない場合のみです。
これを試して
setcookie ("user", "", time() - 3600);
何もありません-そのコードは私には問題ないように見えます。
ドキュメントの引用:
Cookieを削除するときは、ブラウザで削除メカニズムをトリガーするために、有効期限が過去であることを確認する必要があります。
setcookie ("TestCookie", "", time() - 3600);
コンピュータの時刻が少しずれている可能性があるという問題を回避するために、過去の時刻を指定することをお勧めします。
さらに、実際に$_COOKIE['TestCookie']
の設定を解除すると便利な場合もあります。
Cookieを削除するときは、有効期限が過去であることを確認する必要があります。
削除例:
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
すでに述べたように、Cookieを削除するときは、有効期限が過去であることを確認する必要があります。
ただし、削除には同じパスとドメインを使用する必要があります。これはCookieの作成に使用したため、このようなCookieを作成する場合は
setcookie ("user", "John", time()+7200, '/', 'mydomain.com');
このCookieを削除するには、このコードを使用します
setcookie ("user", "", time()-3600, '/', 'mydomain.com');
また、time()-3600の代わりに、過去の特定の日付を使用することをお勧めします
// ルートパスまたは特定のCookieパスを指定する必要があります
//SET COOKIE
setcookie ("user", "", time() + 3600 , '/');
//UNSET COOKIE
setcookie ("user", "", time()-100 , '/' ); // past time
setcookie ("user", "", time() - 3600);
//will reset cookie(client,browser)
unset($_COOKIE["user"]);
// will destroy cookie(server)