Snap.Shot.cx

トップページへ戻る

[アプリケーション] 意外と知られていない?Netscapeのcookie制限
04/22/2000 06:25 (投稿者:たかの)

2000年を越えるあたりから気になり出したNetscape(4.0系)のバグとして、「cookieのexpire-dateとして2桁の年号を与えると無視してしまう」というのがある。

具体的には、

Sat, 22-Apr-00 00:00:00 GMT

という書式ではNGで、

Sat, 22-Apr-2000 00:00:00 GMT

としてやらなければならない。
ところがPHP3では、古い別のブラウザに対処するために、年号をわざわざ2桁で返すためのモードを持っている。
php3.iniにある、

y2k_compliance = Off

というのがそれで、PHP3インストール時のデフォルトがこれ。
最低でもこれを

y2k_compliance = On

に修正してやらないと、2000年以降のNetscapeでは全くcookieを受け付けてくれない。

[4-22-2000追記] …と思っていたのだが、これはどうも誤解らしい。ホスト名の制約か。詳しいこと知ってる人いたら知らせてください。

また、ホスト名の指定に制約があるのか、あるいは属性の指定順に問題があるのか分からないが、domainを指定しているとちゃんとcookieを受け付けてくれないことがある。
(念のために附記しておくが、これはブラウザの「同一サーバからのcookieのみ受け付ける」のチェック如何にかかわらず発生する)

cookieを利用するときは、

1.できるだけ余計な情報をつけないこと
2.ちゃんとブラウザがcookieを食べてくれるか確認すること

の2点は最低限押さえておいたほうがいいだろう。

メールでコメント

(Powered by Zope)
リンクはご自由にどうぞ。各記事には記事番号がついていますので、URLは変わりません。
© 2000-2012 Yukimasa TAKANO, all RIGHTs reserved.