- 締切済み
Cookieが、deleted
Linux+Apache+MySQL+PHPでWebサイトを開発中です。 <質問> Cookieを取得したところ、ユーザの一人が、Cookieの値で deleted を取得していました。 調査した所、PHPの仕様でログアウトした際に取得されてしまうとのこと。 該当のユーザは、4日間連続でログインし、deleted を取得しています。 他のユーザは正常です。 IEのバグと、PHPの仕様がバッティングしたのかと思いますが、これ以上のことは調査することはできませんでした。 どなたかご経験のある方はいらっしゃいますか? また、どのように対処したほうがよろしいでしょうか? よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hogehoge78
- ベストアンサー率80% (433/539)
確かに、PHPのマニュアルにも明記されていて、且つ、FirefoxのLive Http headerで閲覧してみたところ、そのように設定されているようです。 a.php <?php setcookie("test", "abcd"); ?> コレを叩いた後、 b.php <?php setcookie("test", "", time()-3600); ?> コレを叩いてみたら、 ---------------------- Set-Cookie: test=deleted; expires=Tue, 25-May-2010 18:15:30 GMT ---------------------- といったヘッダが送出されていました。 ブラウザはここに書いて有るように有効期限が切れたCookieは削除するべきなんですが、ソレが削除されていなかったということですね。 ただ、ソレは仕様ということなので、素直に、Cookieの存在の判定処理を <?php if(!isset($_COOKIE['test'] || $_COOKIE['test'] === 'deleted'){ //Cookieが存在しないと判断 } ?> とするしかない気がします。
お礼
ご連絡ありがとうございます。 やはり、稀な現象みたいですね。 おっしゃる通りの対処方法しか現時点ではなさそうかと思います。 ありがとうございます。