バージョン0.9.11をリリースしました
現在までに発覚している不具合の修正と、追加機能です。初モノの検証に労を割いていただき、不具合報告や要望などをお寄せいただいた皆さま、ありがとうございました。やはり初モノはヤバイと(ry
ダウンロードはSourceForge.jp内プロジェクトページの「最新リリース情報」へ。
初設置のかたは、以下はすっ飛ばして設置手順へ。
バージョン0.9.9とそれ以前からのバージョンアップの場合は、まずはこちらをご覧ください。
以下は主な変更点。
- _check.phpを実行すると「headers already sent」のようなPHPのWarningが表示される不具合を修正。
- Vodafoneで端末ID(シリアル番号)が取得できない不具合を修正。
- こういう手法で書かれたフォームが機能しない不具合を修正。
- getHostByAddr()で名前解決ができない場合の対処を追加。詳細はこちら。
- 「装飾タグを保持する」表示モードを追加。詳細はこちら。
- session.use_trans_sidがONの場合について、.htaccessにphpflagの記述を追加し、_check.phpにそのチェックを追加。
- auでのキャッシュコントロールを「nocache」に変更。
- レスポンスコードが200以外のURLはアクセス履歴に残さないように変更。
- Willcom対応をちょっと改良(相変わらず万全じゃあありません)。
getHostByAddr()で名前解決ができない場合の対処
User-Agentはいくらでも偽造できるわけで、ケータイサイトでは、クライアントのIPアドレスが、キャリアのネットワークアドレス(IPアドレスの範囲)内にあるかどうかで、ホントに携帯端末かどうかを確認する手法がよく採られます。しかしこれは、これまでやりたくなかったことで。だって、ネットワークアドレスはしばしば変更になるわけで、その都度、定義情報をアップデートするのは手間だし、そもそもキャリアが公表している情報が常に最新のものとは限らないし。
ClientDetect::getHostname()は、携帯端末の場合は、ホスト名のドメインサフィックスを返しますが、これまでこの部分は、getHostByAddr()でお茶を濁してきました。しかし、getHostByAddr()で名前解決ができない環境もあるわけで、その場合、悪いことにこれまでのClientDetect::getHostname()はIPアドレスを返し、$is_mobileをFALSEとしていたので、あれこれ困ったことが起きてしまっていました(プロキシがその都度切り替わる携帯端末ではセッションが継続しないとか)。
てなことで、これでは不味いので、IPアドレスをチェックするClientDetect::checkIpRange()を、イヤイヤ用意しました(笑)。
で、リリースパッケージに新たに加わっているIPRange.inc.phpが、ネットワークアドレスの定義ファイルです。このファイルは、上述の通りアップデートする必要がありますが、ClientDetect::getHostname()は、getHostByAddr()がホスト名を返す場合はそちらを利用し、IPアドレスのチェックは行いませんので、このような状況である限り、アップデートに注意深くなる必要はありません。逆に、getHostByAddr()のオーバーヘッドを嫌い、かつアップデートの手間を惜しまれないかたは、その部分を書き換えていただくことも可能になりました。
なお、IPアドレスのチェックにも失敗した、携帯端末のUser-Agentを名乗るクライアントについては、ClientDetect::getHostname()は、従来のようにIPアドレスではなく、「unknown」という文字列を返します($is_mobileはFALSEです)。これは、IPRange.inc.phpの内容が最新のものではなかった場合のことを想定した措置です。
「装飾タグを保持する」表示モード
要望をいただいたので用意してみますた。
FONTとかBとかのタグを除去しないで残しておくモードで、つまりこんな感じです(UGタソ素敵なページをあがとうw)。
現在は、FONT|B|STRONG|I|EM|U|S|STRIKE|DEL|BLINK|MARQUEE要素をそのまま残し、他の一部の要素についてstyle属性を残します。また、BODY要素の、bgcolor|background|text|link|alink|vlink|style属性を残します(ただし、background属性については「テキストと画像の同時表示」モードのみで、画像は、そのオリジナルのサイズに関わらず、スクリプトによる変換処理が行われます)。
これはかなり中途半端な仕様なので、おいおい修正していくかもしれません。ただし、いずれにせよTABLE|THEAD|TBODY|TR|TH|TD要素はP|BRに置き換えてしまいますので、これらのbgcolor属性などは再現できません。
2006/04/18
トラックバック
このエントリーのトラックバックURL:
http://www.rcdtokyo.com/mt/mt-rcdtokyo5428-tb.cgi/744
コメント
「装飾タグを保持する」にして「写」リンクをクリックすると大変なことになるけど気にしないように(なんで毎回「写」の動作確認を忘れるんだろ)。
v0.9.10からバージョンアップしてセッションを復元すると、一瞬Noticeエラーが表示されるけど(表示する設定なら)気にしないように。
Posted by ucbさん at 2006/04/19 01:33