• ベストアンサー

クッキーの削除方法

PHP5にて以下のようにクッキーを連想配列でセットしています。 setcookie("cookie[1]", "10", time()+600); setcookie("cookie[2]", "20", time()+600); setcookie("cookie[10]", "100", time()+600); この場合、一部のクッキー(例えばcookie[2]で設定したもの) だけを削除するにはどうすれば宜しいのでしょうか? 試しに以下の様に記述してみましたが、上手く削除されませんでした。 setcookie("cookie[2]"); また、全てのクッキー(全ての連想配列)を いっぺんに削除する方法もありましたら、お教えください。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

setcookie('cookie[2]', '', time()-42000); 有効期限を現在時刻より以前にしてしまえば、削除されます。

coogon21
質問者

お礼

ご回答ありがとうございました。 しかし、やはり削除されませんでした・・・ サーバーの関係とかあるのでしょうか? テスト用として以下の3スクリプトで試しております。 /* setck.php */ <?php setcookie("cookie[2]", "20"); setcookie("cookie[3]", "30"); setcookie("cookie[10]", "100"); echo "クッキーをセット<br>\n"; ?> /* getck.php */ <?php if (isset($_COOKIE['cookie'])) { foreach ($_COOKIE['cookie'] as $name => $value) { echo "Cookie番号[$name] : $value <br />\n"; } } ?> /* delck.php */ <?php setcookie( "cookie[3]", "", time() - 42000 ); echo "cookie番号[3]を削除<br>\n"; ?> 実行結果 setck.phpを実行 クッキーをセット getck.phpを実行 Cookie番号[2] : 20 Cookie番号[10] : 100 Cookie番号[3] : 30 delck.phpを実行 クッキー番号[3]を削除 getck.phpを実行 (ここでCookie番号[3]が消えていて欲しかった) Cookie番号[2] : 20 Cookie番号[10] : 100 Cookie番号[3] : 30 以上です。宜しくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.4

こんにちは。 私の環境で試したところ削除されていました。 各URLへ遷移後にctrlキー+F5等で更新してみましたか。 キャッシュの関係かもしれません。 各URLで一度更新を実行した場合は正しく動いていましたがただアクセスしただけだと画面上セットされていなかったり削除されていなかったりしました。

coogon21
質問者

お礼

F5で更新したところ、削除されていました。 キャッシュが残っていたもようです。 ご回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • march4
  • ベストアンサー率50% (12/24)
回答No.2

回答、どうもありがとうございます。 仰る通り、正しい記述でした。 変なことを言ってすみませんでした。^^; で、ちょっと分かったことなのですが、 setcookie("cookie[2]"); は、 setcookie("2"); で、おそらく、希望通り処理されると思います。 また、変なことを言っていたらごめんなさい。

coogon21
質問者

お礼

march4さん、ご回答ありがとうございます。 setcookie("2"); では削除されませんでした。

すると、全ての回答が全文表示されます。
  • march4
  • ベストアンサー率50% (12/24)
回答No.1

見当違いなことを言ってしまっていたら、ごめんなさい。 cookie[2] というのは、$cookie[2] ということでしょうか? もしくは、$_COOKIE[2] でしょうか。 cookie[2] こういうものを私は見たことがないので、 もし、これで正しい場合には、これが何かを逆に教えて下さい…。 すみません^^;

coogon21
質問者

補足

cookie[2]で正しいと思います。 クッキーを配列でセットしているものだと思います。 下記URLを参考にしました。 http://d.hatena.ne.jp/ten-you/20090504/1241437098

すると、全ての回答が全文表示されます。

関連するQ&A