ch 必須入力 ch0 項目のいずれかが必須入力 CH0 項目のいずれかが必須入力(両方入力はエラー) alr0 同じ入力があればエラー addX 同じ名前の項目にX(任意)で連結します frontX データの前にX(任意)で指定したキャラクターを挿入 endX 後にX(任意)で指定したキャラクターを挿入 mail 自動返信メールの送り先メールアドレス mailf メールアドレスのフォーマットをチェック mailc メールアドレスの再入力をチェック mailx 自動返信メールの送信先メールアドレス項目を指定 mailk 指定アドレスに管理者へ送られる同じメールを送信 url URLアドレスのフォーマットをチェック rg4:1-5 半角英数字項目の入力桁数、範囲をチェック crg2-5 文字項目の入力桁数をチェック crG2-5 文字項目の入力文字数をチェック tel 電話番号など半角数字、区切り文字をチェック zipX 郵便番号をチェック noX 半角数字をチェック commaX 3桁ごとのカンマを入力後に挿入 commadX 3桁ごとのカンマを確認画面で挿入 br 値の改行を<br>に置き換えて保存 blk 値がブランクの場合、確認画面で表示しない blkd 値がブランクの場合、確認画面で表示、送信しない conti 最終確認画面で前の項目に改行せず続けて表示 NOCP 擬似会員処理で前回データをセットしない項目に指定 dateX 3つのセレクトボックスの西暦年月日をチェック ltd_date 1つの入力欄の西暦年月日をチェック hira 全角ひらがなの入力項目 kata 全角カタカナの入力項目 asc 半角の入力項目 zen 全角の入力項目 h_kata 半角カタカナが含まれているとエラー hz_kata 半角カタカナを全角カタカナに変換 only:X 指定したX以外が含まれていないかチェック dame:X 指定したXが含まれていないかチェック maxX 複数選択項目の最大選択数Xを指定 name 項目が名前であることを明示 etc 自動返信メールの%etc%と差し替える項目を指定 pass4-16 パスワード項目をチェック passr pass と同じチェックを行うと同時に暗号化して送信 dck このオプションがついた項目で重複送信をチェック #:XX 入力エラーでname=""属性以外の項目名を表示 cookie この項目名の入力値をクッキーに保存 id_chk 入力値はIDとして登録済みかどうかをチェック fix この項目名の入力値は変更処理で変更できません edit この項目は変更処理でIDとなります hidisp このhidden項目名の入力値は確認画面に表示 today このhidden項目名の入力値には本日の日付をセット minus 送信可能数を設定した場合、減数する項目に設定 val 保存するテキストと表示するテキストを分けません unrec この項目はサーバーへの保存をしません eq 入力値の値が指定値と等しい inputcheck 判断を伴う必須入力をチェック inputnch 判断を伴う必須入力をチェック(入力がなければ) all_or_nothing 複数の項目が全て未入力か全て入力 nodisp 判断を伴って最終確認画面と自動返信メールに表示しない case 入力項目名の値と比較して結果をセット

フォーム・ジェネレータを使わずにフォームのHTMLを作成する場合の注意点

CGIで動的にフォームメールHTMLを出力してフォーム送信を行う場合の設定

英語版フォームのHTMLを作成する場合の注意点。

フォームメールHTMLの入力項目を javascript で操作する場合の設定

CGIサーバーとWebサーバーが別々のマシンの場合の注意点

option(select)、checkbox、radio 項目で選択値、表示値の設定

メール本文の中で使える置換タグ(本文中に置換タグを挿入すると以下の置換が行われます)

タグ置換される項目タグ置換される項目
%%項目名%%項目名の入力値%%項目名%_%項目名の入力値(改行抜き)
%date%送信時の日付(漢字使用は %datej%)%time%送信の時刻(漢字使用は %timej%)
%key番号%表示CGIデータ%renban%連番
%data%フォームで送信されたデータ一覧%name%名前
%mail%メールアドレス%etc%etc項目
%id%フォームID%url%ホームページURL
{{計算式}}四則演算 +-*/ が可能です(Perl の計算式が記述できます、例:{{%%数量%%*%%単価%%/100}})

メール本文の中で使える条件式(本文中に挿入すると入力内容によってメール文を変えることができます)

●記述フォーマット 最初の行は条件を半角のカッコで括って記述(if:条件)、次の行からは条件が真の場合の記述、最後の行は半角の(if:)で終了
最初の行(条件)、最後の行半角の()はそれぞれ1行で記述します。(if:条件)、(if:)以外は記述しないで下さい
●条件は本文の中に何度でも挿入できます、また条件の中にまた条件を記述する入れ子も可能です
●項目名はフォームの入力項目の name="名前(ch)" の名称です(オプションの (ch) 等は省いて記述します
●また、条件は !and!、!or! で続けて複合条件とすることもできます、(項目名[比較演算子]比較値!and!項目名[比較演算子]比較値)
(if:項目名=比較値!and!項目名<>比較値)
比較の結果、真の場合に挿入されるメール文

(if:)
実際の記述例は右の欄をご覧ください

比較できる特別な入力値(該当しない時はブランクとなります)

入力項目名セットされている値
#登録#送信者(会員)がデータを登録されている時に 1 がセット
#変更#送信者(会員)がデータを変更されている時に 1 がセット
#削除#送信者(会員)がデータを削除されている時に 1 がセット
#携帯電話#携帯電話からのアクセスされている時に 1 がセット
#スマホ#スマホからのアクセスされている時に 1 がセット
#携帯メール#携帯電話のメールアドレスが入力されている時に 1 がセット
#会員#会員が登録データをID、パスワードで呼出し送信されている時に 1 がセット
1 の場合は会員の方であるとわかります。

メール本文の中で使える比較演算子一覧(文字比較)

文字比較使用例条件指定(例の場合入力項目、入力値が)
!eq!入力値!eq!ABCABC,abcと等しい
!eQ!入力値!eQ!ABCABC,abcと等しい、ブランクは等しいと判断
!EQ!、=入力値!eq!ABCABCと等しい
!ne!入力値!ne!ABCABC,abcと等しくない
!nE!入力値!nE!ABCABC,abcと等しくない、ブランクは等しくないと判断
!NE!、<>入力値!ne!ABCABCと等しくない
!ct!入力値!ct!ABCABC,abcを含む
!CT!、!=入力値!CT!ABCABCを含む
!nct!入力値!nct!ABCABC,abcを含まない
!NCT!、!入力値!nct!ABCABCを含まない
!fct!入力値!fct!ABCABCで始まる
!Gt!入力値!Gt!ABCABCより大きい
!Ge!入力値!Ge!ABCABCより小さいか等しい
!Lt!入力値!Lt!ABCABCより小さい
!Le!入力値!Le!ABCABCより小さいか等しい
!Rg!入力値!Rg!ABC_XYZ範囲内にある ABC>= 値 <XYZ
!bl!入力値!bl!yes(no)ブランク(yes)、ブランクでない(no)
文字比較と数字比較では結果が変わります。例えば 1234 と 99 を文字で比較すると 99 が大きいと判断されます。数字で比較しないと正しく判断されません。
等しい、等しくないの条件のみ【文字比較】【数字比較】のパターンが逆になっていますので注意してください。
条件の値がブランクの場合は条件に合致したと判定します。
等しい、等しくない、含む、含まないの条件でアルファベットの大文字小文字を区別して判定したい場合は比較演算子を大文字で指定します。(例:!CT!)

メール本文の中で使える演算子一覧(数字比較)

数字比較使用例条件指定(例の場合入力項目、入力値が)
!Eq!入力値!Eq!123123と等しい
!Ne!入力値!Ne!123123と等しくない
!gt!、>入力値!gt!123123より大きい
!ge!、>=入力値!ge!123123より小さいか等しい
!lt!、<入力値!lt!123123より小さい
!le!、<=入力値!le!123123より小さいか等しい
!rg!入力値!rg!1000_2000範囲内にある 1000>= 値 <2000
!Bl!入力値!Bl!yes 0(yes)、 0 でない(no)
!mlt!入力値!mlt!10経過月数が10ケ月未満
!dlt!入力値!dlt!10
入力値!dlt!-10
本日から10日前未満
本日から10日先以上
文字比較と数字比較では結果が変わります。例えば 1234 と 99 を文字で比較すると 99 が大きいと判断されます。数字で比較しないと正しく判断されません。
等しい、等しくないの条件のみ【文字比較】【数字比較】のパターンが逆になっていますので注意してください。
条件の値がブランクの場合は条件に合致したと判定します。
等しい、等しくない、含む、含まないの条件でアルファベットの大文字小文字を区別して判定したい場合は比較演算子を大文字で指定します。(例:!CT!)

管理者宛メール本文の編集時に使用できるタグ

タグ指定できる内容記述例
subject:メールの件名を指定しますsubject:メールの件名です
email:送り先の管理者メールアドレスを指定しますemail:<mail@abc.com>
from:メールの送信元を指定しますfrom:送信元名 <mail@abc.com>
指定のない項目は初期設定の管理者メールデータが使われます

入力エラー用、確認用カスタムテンプレートHTMLファイルを作成します(フォームマスター管理者メニューの「初期設定」の19,20で設定した場合のみ)

入力項目を指定します

ch数字=同じ数字で指定した項目のいずれかが必須入力の項目になります。

CH数字=同じ数字で指定した項目のいずれかひとつが必須入力の項目になります。

eqテキスト=入力値の値がテキスト指定値と等しい

<!--input check="AAA=BBB" name="aaa|bbb"-->=判断を伴う必須入力をチェックしたい時に指定します。

●判断する項目が1つでチェックしたい入力項目が複数 ●判断する項目が複数でチェックしたい入力項目が1つ  <!--input check="AAA=BBB!CCC=DDD" name="aaa"--> ●複数の項目が全て未入力か全て入力  

<!--input check="AAA=BBB" name_nch="aaa!bbb"-->=判断を伴う入力をチェックしたい時に指定します。

<!--input check="all_or_nothing" name="aaa,bbb,ccc"-->=複数の項目が全て未入力か全て入力

<!--input nodisp="AAA=BBB" name_nch="aaa,bbb,ccc"-->=判断を伴って最終確認画面と自動返信メールに表示しない項目を指定したい時に指定します。

alr数字=同じ数字で指定した項目のうちに同じ入力があればエラーにします。

case==hidden 値に case で指定した入力項目名の値と比較して結果をセット

addX=同じ名前の項目にX(任意)で連結します。

frontX=この項目のデータの前にX(任意)で指定したキャラクターを挿入します。

end?=この項目のデータの後にX(任意)で指定したキャラクターを挿入します。

mail=自動返信メールの送り先メールアドレスを指定します

メールアドレスのフォーマットをチェックします
(簡易のチェックですので全てのタイプのメールアドレスを厳格にチェックできるわけではありません)
以下はメールアドレスは必須で自動返信メールの送り先メールアドレス、フォーマットチェック
<input type="text" SIZE="20" name="メールアドレス(mail//ch)">

エラーメッセージ ----> メールアドレスのフォーマットを確認してください

mailf=メールアドレスのフォーマットをチェックします

メールアドレスのフォーマットをチェックします
(簡易のチェックですので全てのタイプのメールアドレスを厳格にチェックできるわけではありません)
以下はメールアドレスは必須で、フォーマットチェック
自動返信メールの送り先メールアドレス以外にメールアドレスの入力がある場合に指定します
<input type="text" SIZE="20" name="メールアドレス(mailf//ch)">

エラーメッセージ ----> メールアドレスのフォーマットを確認してください

mailc=メールアドレスの再入力をチェック

メールアドレスの入力ミスを防ぐための再入力項目で前のメールアドレスと同じであるかチェックします。
<input type="text" SIZE="20" name="メールアドレス(mailc)">

エラーメッセージ ----> メールアドレスが一致しません
この場合の name は1回目の入力項目名と同じ名前にして下さい。

mailx=自動返信メールの送信先メールアドレス項目を指定します

メールアドレスを複数入力してもらう場合に自動返信メールをどの項目のアドレスに送るのかを明示します。
<input type="text" SIZE="20" name="メールアドレス2(mail//mailx)">

mailk=この入力欄で入力されたメールアドレスに管理者へ送られる同じメールが送られます

この入力欄で入力されたメールアドレスに管理者へ送られる同じメールが送られます。
<input type="checkbox" name="メールアドレス2(mailk)" value="mail@aaa.co.jp">
この入力値は保存データ、管理者、自動返信メールには反映しません。反映させるには mailK を指定します。

url=URLアドレスのフォーマットをチェック

(簡易のチェックですので全てのタイプのURLアドレスを厳格にチェックできるわけではありません)
以下はURLアドレスは必須で、フォーマットチェック
<input type="text" size="20" name="URLアドレス(url//ch)">

エラーメッセージ ----> URLが正しく入力されていません

rg4:1-5=半角数字または半角英数字項目の入力桁数、範囲をチェックします(範囲が指定されると半角数字項目)

半角数字の入力では小数点、マイナス記号も入力できます( rg を Rg と指定すると半角数字のみの入力)、また全角は半角に変換されます。
rg3:1-50入力は半角数字で桁数は3桁まで、範囲は1〜50まで
rg3-5:1-50入力は半角数字で桁数は3桁〜5桁、範囲は1〜50まで
rg3-3:1-50入力は半角数字で桁数は3桁、範囲は1〜50まで
rg3:入力は半角数字で桁数は3桁まで
rg3-5:入力は半角数字で桁数は3桁〜5桁まで
rg3入力は半角英数字で桁数は3桁まで(初期設定では半角英数字以外に-_が入力可)
rg3-5入力は半角英数字で桁数は3桁〜5桁まで(初期設定では半角英数字以外に-_が入力可)

Tips 範囲に # (本年)を含めて指定すると本年の数を相対で指定することができます。
#+9 は本年に9をプラスした数、#-9は本年に9をマイナスした数になります。
例:rg4-4:#-9-#+9 この例では入力値は4桁の半角数字で本年から3年先の年までが入力可能です。

以下は年齢は半角の数字で、最大3桁、10歳から120歳の入力がOKです
<input type="text" size="20" name="年齢(rg3:10-120)"> 歳

rgオプションの数字に関するエラーメッセージ一覧
rg3桁数がオーバーしてします(>3)
rg3-3桁数エラー(3桁入力してください)
rg3-5桁数エラー(3〜5桁で入力してください)
rg3:1-50許容範囲外です (1〜50)

半角数字で入力してください

crg2-5=文字項目の入力桁数をチェックします

crg5-50入力桁数は半角換算で5文字〜50文字まで
crg10入力文字数は半角換算で10文字まで
以下は住所は全角20文字まで入力可能
<input type="text" size="20" name="住所(crg40)">

crgオプションの文字に関するエラーメッセージ一覧
crg3-3文字数エラー(半角換算で3文字入力してください)
crg3-10文字数エラー(半角換算で3〜5文字で入力してください)

crG2-5=文字項目の入力文字数をチェックします(全角文字、半角文字も同様に1文字でカウントされます)

crG5-50入力文字数は5文字〜50文字まで
crG10入力文字数は10文字まで
以下は住所は40文字まで入力可能
<input type="text" size="20" name="住所(crG40)">

crGオプションの文字に関するエラーメッセージ一覧
crG3-3文字数エラー(3文字入力してください)
crG3-10文字数エラー(3〜5文字で入力してください)

tel?=電話番号、ファックス番号、携帯番号など半角数字、区切り文字 ? をチェック

zip?またはtno?=郵便番号を3桁+区切り文字+4桁、半角数字をチェック

No?=半角数字を区切り文字で2つに分けて入力、半角数字をチェック

commaX=3桁ごとのカンマを入力後に挿入します。

commadX=3桁ごとのカンマを確認画面で挿入します。

br=入力値の改行を <br> に置き換えて保存します。

blk=入力値がブランクの場合、確認画面で表示しません。

conti=最終確認画面で前の項目に改行せず続けて表示します。

NOCP=擬似会員処理で前回入力したデータをセットさせない項目に指定します

blkd=入力値がブランクの場合、確認画面で表示せず、送信も行いません。

dateX=西暦年月日を4桁+区切り文字+2桁+区切り文字+2桁、半角数字をチェック

ltd_date=西暦年月日を4桁+区切り文字+2桁+区切り文字+2桁、半角数字をチェック

hira=全角ひらがなの入力項目

kata=全角カタカナの入力項目

asc=半角の入力項目

zen=全角の入力項目

h_kata=半角カタカナが含まれているとエラー表示

hz_kata=半角カタカナを全角カタカナに変換します

only:X=入力テキストの中に指定したキャラクターX(任意)以外のキャラクターがないかチェックします

dame:X=入力テキストの中に指定した許されないキャラクターX(任意)がないかチェックします

max?=複数選択項目の最大選択数Xを指定できます。

name=項目が名前であることを明示

etc=自動返信メールの%etc%と差し替える項目を指定します

unrec=この項目はサーバーへの保存をしません(ブランクで保存されます)

pass4-16=パスワードに許されない文字が含まれていないかをチェックします

パスワードとして許される文字は設定プログラム calendar_set.pl で指定することができます。
初期値は 0-9A-Za-z-_ です。
また、桁数範囲を指定すると桁数をチェックします(この場合は4〜16桁でチェック)。

passr= pass と同じチェックを行うと同時に暗号化して送信します

暗号化されて送信されると管理者には元のパスワードが何であったかはわかりませんので注意して下さい。
暗号化は Perl のcrypt 関数を使って暗号化しています、パスワードを復元する場合は以下のスクリプトで復元できます。
チェックしたいパスワード $FORM{'pass'} は $pass の暗号化されたパスワードと一致しているかどうかを判定します。

if(not &pwd_match($FORM{'pass'},$pass)){&err("パスワードが違います!")}

#パスワード複元
sub pwd_match {
  my($inpass,$cpass)=@_;
  my($crptkey)=0;
  if($cpass=~/^\$1\$/){$crptkey=3} # FreeBSDサーバ対応
  return crypt($inpass, substr($cpass,$crptkey,2)) eq $cpass;
}

passc=パスワードを確認するための2回目の入力項目で指定し一回目のパスワード入力値と同じかチェックします

この場合の name は1回目の入力項目名と同じ名前にして下さい。

dck=このオプションがついた項目で重複送信をチェック

#:XXXX=入力エラー画面で項目名を name="" 属性以外の項目名を表示させる

cookie=この項目名の入力値をクッキーに保存させます

id_chk=この項目名の入力値はIDとして既に登録済みかどうかをチェックします

mobile_id=この項目名に携帯電話のIDを自動取得しセットします

fix=この項目名の入力値は変更処理で変更できません

edit=この項目は変更処理でIDとなります

hidisp=このhidden項目名の入力値は確認画面に表示します(hidden項目のみに指定できます)

today=このhidden項目名の入力値には本日の日付をセットします(hidden項目のみに指定できます)

minus=「初期設定」で送信可能数を設定した場合、減数する項目に設定します

val=保存するテキストと表示するテキストを分けません

 並 順

 入力タイプ

 項目名

 項目名表記

 上の項目に続けて右側に表示

 初期値

 選択値

 選択値に対する表示テキスト

 必 須

 桁 数

 オプション

 コメント

 画像

カスタムHTMLの記述ルール(サンプルを参考に)

テンプレートには以下のタグが配置できそれぞれの項目が置換して挿入されます。
タグを使用しない場合は自由に記述する事ができます。
テンプレートHTMLファイルの漢字コードを明確にできるよう metaタグを記述してください。
<meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS">
タグ置換される項目
<!--title-->フォームタイトル
<!--tbg_color-->タイトルバーのバックグラウンドカラー
<!--top_comment-->トップの説明文
<!--form-->指定した入力項目が表形式で繰り返して挿入されます
<!--bottom_comment-->ボトムの説明文
<!--button-->送信ボタンのvalue値
<!--reset-->リセットボタンのvalue値
<!--er_form-->入力エラーの表示位置

テンプレートには以下のタグが配置できそれぞれの項目が置換して挿入されます。
タグを使用しない場合は自由に記述する事ができます。
タグ置換される項目
#cgisubmit で実行されるCGI名
#id1フォームIDコード1
#id2フォームIDコード2
#kjcソースの漢字コード

テンプレートには以下のタグが配置できそれぞれの項目が置換して挿入されます。
タグ置換される項目
<!--uyear-->集計年
<!--umonth-->集計月
<!--udate-->集計日
<!--uhour-->集計時
<!--uminute-->集計分
<!--cnt-->集計したデータ件数
<!--form_id-->集計対象のフォームID
<!--fromto-->指定した集計対象の範囲
<!--start-->集計結果の表

 入力タイプ

「到着、予約開始日」「到着、予約開始日固定」(予約フォーム専用項目)

状況タイプ(予約フォーム専用項目)

終了時刻(予約フォーム専用項目)

状況タイプ補足コメント(予約フォーム専用項目)

予約数(予約フォーム専用 select 項目)

「出発、予約終了日」「 同 (開始日翌日)」(予約フォーム専用項目)

予約、宿泊日数(予約フォーム専用項目)

「復路予約日」「復路タイプ」(予約フォーム専用項目)

 input

 select、radio、checkbox

 西暦年月日(3段階選択)、和暦年月日(4段階選択)、西暦年月(2段階選択)、和暦年月(3段階選択)

 西暦生年月日、和暦生年月日

 年月日(type=input)

 月日、時分

 hidden

 ※定型入力項目

 ※郵便番号