具体的には、
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点は最低限押さえておいたほうがいいだろう。
|