木曜日, 8 30, 2007
miyake
あー、びっくりした。
何がびっくりって、いつものようにPHPでログインのシステムを組んでいたんです。
組むって言ってもいつも使ってるログインのクラスを使っていたんで油断していました。
Firefoxで無事テストを通過し、IE6で同じテストをしようと思ったら、
なんとログインできない。
ブラウザによってPHPの挙動がちがうなんてほとんどありえないので、
ずっと、ログインフォームの値がPOSTできていないんだって思って、
クラス内部の値をくどくどとダンプしていました。
そしたら、DB的にはログイン認証が問題なく通過している。。。
それでもログインできないのは、セッションが上手く保存できてないせいだということがわかりました(リロードするたびにセッションIDが変わっていた)。
「おかしいなあ」と思いながら、いろいろ検索していたら、いつもお世話になっているPHPユーザー会のメーリングリストに見つけましたよ。
“_”(アンダーバー)を含むサーバー名はRFC違反である
と。
(※RFC:インターネットに関する技術の標準を定める団体であるIETFが正式に発行する文書)
たしかに今、やってるプロジェクトのローカルサーバー名にアンダーバーが含まれていました。
それで急いでサーバー名を付け直して、テストしてみたら!
「通った・・・」
ドメインレジストラ大手のお名前.comでアンダーバーを含むドメインを取得しようとしてみたら、
使用できない文字が含まれています。
すばらしい。参りました。
Firefoxで問題なかった原因は、その辺りを大目に見るよう作られているからのようです。