setcookie()
同じCookie名で2回呼び出すと、2つのCookieが作成されます。
既存のCookieをどのように更新しますか?
setcookie()
同じCookie名で2回呼び出すと、2つのCookieが作成されます。
既存のCookieをどのように更新しますか?
setcookie() 関数を使用して Cookie 値を更新できますが、同じ名前の別の Cookie を作成しないように、「パス」引数である 4 番目の引数に「/」を追加する必要があります。
すなわちsetcookie('cookie_name', 'cookie_value', time()+3600, '/');
3 番目の引数の推奨有効期限:
Cookie 自体を更新することはできませんが、上書きすることはできます。それ以外の場合、これはあなたが探しているものです: http://php.net/manual/en/function.setcookie.php
できます。そのページの「よくある落とし穴」を必ずお読みください。
スーパーグローバル$_COOKIE['cookie_name']
を使用して Cookie を読み取ることもできます。
したがって、PHPは2つのSet-Cookie:ヘッダーを送信しますが、そのように指示された場合は、最後の1つだけがブラウザーに保持されます。
NetscapeのCookie仕様http://curl.haxx.se/rfc/cookie_spec.htmlによると:
同じパスと名前のインスタンスは、最新のインスタンスが優先されて、互いに上書きされます。同じパスで名前が異なるインスタンスは、追加のマッピングを追加します。
ただし、このようなエッジ条件を回避することをお勧めします。すでに送信されたCookieを上書きする必要がないように、アプリケーションを再構築します。
COOKIE を呼び出し、ユーザー名の値を削除します SETCOOKIE("username",'',0,"/");