青山です。

Thu, Feb 04, 1999 at 12:55:56PM +0900 において
IKARASHI Akira さん曰く:

> CGI.messageかどうかはともかくとして、まわりを見ていると HTTPヘッダの
> 出力を忘れてハマる例があるので、HTTPヘッダとHTMLをまとめて出力するAPIが
> あると救われる人は多いと思います。そんなに大したことではないのですが。

そうですね。適切な名前があればあっても良いと思います。Ruby (に限りませ
んが、特に Ruby では顕著)で最も難しいのは名前なんですよね。

++i なんかも良い言いわけがみつからずに実装されていなかったりしますし、
堀り起こせば適切な名前や定義が無い為に見送られている機能は結構たくさん
あると思います>Ruby

> 手元の cgi-lib.rb では、P エレメントの付加といったことはしないのですが。
> 1.2系列と1.3系列で違うんでしょうか?

大勘違いでした。すみません。まさか BODY の要素として message を出力し
ているとは思ってもいなかったもので。

これは HTML 4.0 Transitional 以前であれば一応間違いではありませんが、
BODY の要素としていきなり文章があるのはちょっと気持悪いですし、HTML
4.0 Strict 以降では不可となりました。

これも何か良い案があれば対処すべきでしょうね。

> +  def CGI.tag(element, attributes = {})
> +    "<" + escapeHTML(element) + attributes.collect{|name, value|
> +      " " + escapeHTML(name) + '="' + escapeHTML(value) + '"'
> +    }.to_s + ">" +
> +    (iterator? ? yield.to_s + "</" + escapeHTML(element) + ">" : "")
>    end
> 
> で、escapeHTML()を呼んでいるのですが、escapeHTML()が呼ばれるのは、
> (置換が行なわれるのは)イリーガルな事態だという感じがするのですが、
> タグ内部で( <ここ> ) で、&や",<,>を使う例はあるのでしょうか?

この処理は CGI.pm を参考にしたのですが、element や name にはほとんどあ
り得ないとしても、value には十分に可能性があると思います。


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>