eGuestBook補完委員会 投稿レイアウト調査結果報告
2001/08/26 更新
clone_01@yahoo.co.jp
投稿レイアウトにおけるフィールドの動作
フィールド動作 調査結果 一覧表
致命的なエラーが発生する例
- 通常表示で '${'に対応する'}'がないとき ${field1
- 選択表示で空文字と半角数字以外の数値として解釈できない値が与えられたとき ${comments:Aタイプの人 = $_|Bタイプの人 = $_}
- random関数で引数が無効なとき ${random():大吉|中吉|小吉|凶}
- 選択表示でreplyフィールドを使用したとき ${reply:実行エラー|表示されない}
- 選択表示や条件表示で、選択ブロックのいずれかに致命的なエラーが含まれているとき ${field1:${random():大吉|中吉|小吉|凶}|${random(4):晴れ|曇り|雨|雪}}
random関数
- random関数の引数は半角数字のみ有効
- 半角スペースも文字として認識しているので、random( 10)やrandom(10 )のように余分なスペースがあると致命的なエラーになる。
urlフィールド
urlフィールドの動作
URLとして有効な文字列は
- 有効なプロトコルは'http'と'ftp' (プロトコル部分は英小文字でなければならない)
- ドメイン部分には'.'が一つ以上含まれていなければならない
- パス部分に文字列が無くてもドメイン部分の後に'/'が必要
emailフィールド
emailフィールドの動作
メールアドレスとして有効な文字列は
- '@'は複数出現してはならない
- e-mailアドレスの先頭は'@'以外の文字
- '@'より後に'.'が少なくとも一つある
- '@'の次の文字は'.'以外の文字
- '@'より後で'.'が連続してはならない
replyフィールド
replyフィールドの動作
- 複数あってもエラーにならない。
- 複数のreplyがある場合、最初のフィールドにだけ返信が書き込まれる。
- 条件表示のとき常に有効時の設定が表示される。このとき 有効時の表示内容に$_ が無いと<!--REPLY--><!--/REPLY-->が出力されず、返信を書き込めなくなる。
- 選択表示でreplyを使うとエラーになる
- 返信の部分は<!--REPLY-->と<!--/REPLY-->で囲まれている。
- 投稿に<!--REPLY--><!--/REPLY-->が存在しない場合、返信を送信後に 「eToolsエラー データが見つかりません。」と表示され、返信を書き込めない。
- eGuestBookのフォームにreplyという名前のフィールドがあってもその値を参照しない。(replyに書き込めるのはeToolsで編集したときのみ。)
選択表示
選択表示で各フィールドを使ったときの動作
- 与えられた値が数値ではない場合 第一ブロックが表示される。
- 与えられた値が 0 (零)の場合 第一ブロックが表示される。
- 数値が 総ブロック数を超えている場合 最後尾のブロックが表示される。
- 選択表示でsubject,name,comments,agentフィールドを使っていて、数値以外の値が与えられたとき致命的なエラーになる。
- replyフィールドの場合、致命的なエラーになる。
ヘッダとフッター( 8.本文ヘッダ 、13.本文フッター)のタグフィルタ
eGuestBookを表示するときにタグがフィルタリングされる。
(設定ページではフィルタリングしていない。)
ヘッダとフッターのタグフィルタのアルゴリズム
補足:エレメント名の認識
JavaScriptによる実装
comments,reply フィールドのタグフィルタ
出力結果からcomments,replyのタグフィルタのアルゴリズムは同じであると推測できる。(JavaScriptによる実装)
補足:フィールドのタグフィルタ処理
以下に示すように使用可能タグ説明に記載されていないが使用できるタグが存在する。
comments,reply どちらでも有効
属性可
a
div
font
img
属性不可
b
code
dfn
em
i
kbd
sub
sup
tt
u
var
replyのみ有効
属性可
area
bgsound
caption
dir
dl
hr
li
map
marquee
menu
ol
p
pre
span
table
td
th
tr
ul
属性不可
address
big
blink
blockquote
br
center
cite
dd
dt
h1-h6
listing
nobr
plaintext
s
samp
small
strike
strong
wbr
その他のフィールドのタグフィルタ
<,>,&,"がそれぞれ<,>,&,"に書き換えられる。
タグフィルタリングの調査に使用したテストデータ
テスト結果
- ヘッダとフッター( 8.本文ヘッダ 、13.本文フッター)
- 本文 (9.フォーム 、10.フォームと投稿の間 、11.投稿レイアウト 、12.投稿とリストの間)
- commentsフィールド(タグ無効の場合)
- commentsフィールド(タグ有効の場合)
- replyフィールド(タグ無効の場合も有効の場合も同じ結果)