eGuestBookフィールド動作表


※eToolsについてジオシティーズ予告無く仕様変更等しますので
この動作表と動作が異なることもありますが、ご了承下さい。


注:
表中の記号[]は半角スペースを意味します。
出力結果の'無し'は空文字が出力され(?)、フィールドが表示されないことを意味します。
出力結果の'エラー'はレイアウト処理時にエラーが発生しページが表示されないことを意味します。

送信フォーム投稿レイアウト出力結果備考
フィールド名フィールド
てすと${てすと}全角文字をフィールド名に使える。
a${A}無し半角英字の 大文字 小文字 を区別する。
<FONT>${a}&lt;FONT&gt;commentsとreply以外ではタグを使えない。
nameなまえ${NAME}無しシステム予約のフィールド名も 大文字 小文字 を区別する。
10${10}数字をフィールド名に使える。文字として処理している。
a:1${a:1}1レイアウト側の${a:1}が選択表示として処理されている
a:1${a\:1}無しフォームの'a:1'とレイアウト側の'a\:1'が別のフィールド名として処理されている。
フィールド名では エスケープ符号\ も文字として認識されている。
a\:1
a\${a}${...}の外では'\'をつけてもエスケープしない。
${${a}無し フィールド名の部分では'${'は記号として扱われない。
この場合'${a'がフィールド名として認識されている。
${a}}あ}ネストしていない場合'${'に対応する'}'が出現した時点でフィールドは閉じたと認識される。
${[]a}無しレイアウト側のフィールド名では 半角スペースも文字として認識している。
${a[]}
${[]a[]}
[]a${[]a}
a[]${a[]}無し フォーム側のフィールド名の後尾のスペースは無視される。
OSやブラウザによらず、同じ現象が起こることから、(動作確認 special thanks:夢守さん,kattueさん)
ジオのサーバ側で、送信された文字列の後尾の半角スペースを削っている。
これはジオのCGIの仕様らしい。
この他にもフォームから送信されたデータ(フィールド名、フィールドの値や、レイアウトの設定など)の後尾のスペース,タブ,改行文字などは削られる。
${a}
a[][][][][]
aあ[][][][][]
無し無し$_無し空フィールドを参照しているらしい。
$_${$_}フィールド名に'$_'を使える。
無し無し${[]new()}無し 半角スペースも文字として認識しているので'${new(...)}'の通常表示の形式のときだけnew()関数として認識する。
random()も同様に'${random(...)?'の選択表示の形式のときだけrandom()関数として認識する。
${new()[]}
${new(http://a.ne.jp/test.gif)}//a.ne.jp/test.gif) フィールドに':'が含まれているため、選択表示として処理されている。
':'以前の'new(http'がフィールド名
':'以後の'//a.ne.jp/test.gif)'が第一ブロック

フィールド名(関数名)は'${'からエスケープされていない '}' ':' '?'のいずれかが出現するまで。
選択表示でフィールド値が無効な場合、第一ブロックが表示される。

${new(http\://a.ne.jp/test.gif)} <SCRIPT language=JavaScript>
<!--
putNew('http\://a.ne.jp/test.gif',2000,1,1,1,1,1);
//-->
</SCRIPT>
eGuestBookの出力時に\が処理されていない。
しかし、JavaScriptでは\をエスケープ文字として扱うので外部の画像も表示できる。
この例の場合、<IMG SRC="http://a.ne.jp/test.gif" BORDER="0">となる。
new()2${new():A|B|C}B'new()'は通常表示以外では単なるフィールド名として扱われる。
random(4)${random(4)}'random()'は選択表示以外では単なるフィールド名として扱われる。
a無し${a?A}無し条件表示の第二ブロックがない場合でフィールド値が無効なときは空文字が出力される。
${a?A|B|C|D|E}B条件表示でも選択表示と同様に'|...|'を処理している。
a${aエラー通常表示で '${'に対応する'}'がない場合は致命的なエラーが発生する。
フィールド名を取得できないためエラーになるらしい。
${a?AA条件表示や選択表示では'${'に対応する'}'がない場合は最後に'}'があるとみなす。
(注:出力結果からはそう見えるが実際にはとくに例外処理をしていないのかも^^;)
無し${a?A|BB
reply3${reply}無しreplyフィールドに書き込めるのはeToolで編集するときだけ。
${reply?A$_|B$_}A条件表示でreplyを使うと常に有効時の設定が表示される。
送信データをサーバで処理するときに${reply?...}の形で保存されておらずreplyフィールドを<!--REPLY--><!--/REPLY-->に書き換えている。
${reply:A|B|C}エラー選択表示でreplyフィールドを使うと致命的なエラーが発生する。