F2Mail.CGI  help

フォームは form タグに属性を付けることでデータ送信の働きをします。
【例】 <form method="POST" action="f2mail.cgi">
属性の記述順に規則があるサーバがあります。 省略した属性はデフォルト値が適用されます。
nameフォームの名前(任意)
action送信先を指定します。
(1) データを処理するCGIプログラム   フォームとは別の場所にある場合はパス付きで指定します。
methodをPOSTにした場合はパラメータを付加することができます。
(2) mailto:email@address     ただし、このアクションはユーザの環境に依存します。
method送信方法を指定します。
(1) GET (デフォルト)
データは action属性値に付加して送信され、環境変数 $ENV{'QUERY_STRING'} にセットされます。
GETメソッドは、元々ブラウザなどからサーバのファイルをリクエストするためのものですから限られた少し(概ね200バイト以下)のデータしか送ることができません。
フォームである程度以上のデータを送るような場合は次の POSTメソッドを使います。
(2) POST
データは標準入力(STDIN)に渡され、データ長が環境変数 $ENV{'CONTENT_LENGTH'} にセットされます。
enctype送信形式を指定します。
(1) application/x-www-form-urlencode (デフォルト)
入力されたデータを%エンコードし、 keyword=data の形式て、項目が複数の場合は & で連結して送信されます。
(2) multipart/form-data
ファイルをアップロードするときはこの形式を指定します。
入力されたままのデータがキーワードごとに Content-Disposition: form-data; name="keyword" というヘッダを付けて送信されます。 (ヘッダとデータの1セットをパートといいます。)
添付ファイルパートのヘッダには、filename="filename" と、ファイルの種類を示す Content-Type: MIMEtype/FILEtype が付加されます。
ヘッダとデータは2個の改行コードで区切られています。
各パートは環境変数 $ENV{'CONTENT_TYPE'} にセットされた "boundary" という境界文字列で区切られて送信されます。
(3) text/plain
入力されたデータをそのまま keyword=data の形式て、項目が複数の場合は & で連結して送信されます。
ただし、この形式はユーザの環境に依存しますから、日本語文字を送信すると受信側ではまったく意味の無い英数字の羅列になってしまうことがあります。
targetサーバからの応答を表示するウィンドウまたはフレームを指定します。 (デフォルトは self)
iモードID を取得するには、action属性値に 「 ?guid=ON 」 を付加します。
ただし、method属性値が GET の場合は、<input type="hidden" name="guid" value="ON">タグを form要素に加えます。

       フォーム項目設定
フォームの入力項目とデータの処理について設定します。
無記入を許可しない項目は左端のチェックボックスをオンにします。
[項目キーワード] 入力データを識別するキーワード(フォームの入力項目タグの name属性値)です。
プログラム内部ではこのキーワードの頭に $ 記号を付け「変数」 として使います。 この変数で入力値を画面表示やメールに引用することができます。
キーワードには英数字と日本語(全角文字)が使えますが、数字で始まるものは使えません。
【入力照合】 2つの項目の入力内容を照合してその一致することをチェックする場合は、同じキーワードを使い、照合する方のキーワードの頭に cchk_ を付けます。
【システム環境変数】 次のキーワードで使用できます。
ip  ローカルIPアドレス
host  ローカルホスト名
uagent  ブラウザ情報
mid  アクセス元個体ID(携帯の場合)
【フォーム2画面構成】 最初のフォームにキーワード nextf で後のフォームファイルのパスを設定します。
[保存項目名]ログに保存する項目名です。設定しない項目はログに記録されません。
[指示子]プログラムがフォームデータを処理する上での補足情報や指示事項を設定します。
たとえば、テキスト入力項目に 入力許容字種字数を設定すると入力された文字の半角全角と字数をチェックし、設定に反している場合はエラーを出します。
なお、フォームHTMLの場所がベースディレクトリとも、f2mail.cgiとも別の場所にあるときはここにファイルパスを設定しないといけません。 (キーワード thisp で、hidden=ファイルパス として入力します)
淡色表示は hiddenタイプの項目で確認ページには表示されません。表示する場合はいったん必須を解除し再設定します。
フォームの大幅な変更の場合は、上のファイル送信フォームからHTMLを送信して設定し直す方が手間がかかりません。 [保存] をクリックするとファイルが上書き保存されます。

      指示子の詳細
入力許容字種字数半角(英数字)、全角(カナ、漢字)、字数の入力制限を設定することができます。 ただし、
全角指定であっても英数字は半角入力が許されます。
【例】 h20(半角20字以内)  z200(全角200字以内)  h7-8(半角7字以上8字以内)
ファイルアップロードアップロードを許可するファイルの種類(拡張子)とサイズ制限値、画象拡縮サイズ、保存パスを設定します。
保存パスを設定しないとファイルは保存されません。 (メール添付はできます)
【例】 .gif.jpg.png.txt.csv  100KB  ./att       (区切りはコンマまたは半角スペース)
ファイルの種類ごとにサイズ制限をする場合は、.gif(100KB).jpg(100KB).png(100KB).txt(50KB).csv(50KB) というように設定します。
画象ファイルのピクセル値を拡縮して保存するときは ヨコ x タテ をピクセルで指定します。どちらかを * にすると他方との拡縮率になります。
入力内容確認ページ ファイル名をフォームファイル名に _k を付けたものにするか、キーワードを checkp としてそのファイルパスを設定します。
設定しないときは入力フォームを兼用します。 ただし、フォーム2画面構成の場合は入力内容確認ページのファイルが必須です。
送信完了ページフォーム送信完了後に表示またはジャンプするページを設定します。
ジャンプ先ページは、キーワード jump でそのURLを設定します。
表示するページはHTMLで作成し、キーワード thankp でそのファイルパスを設定します。 この場合は、if 文を用いてアクセス元に応じた表示をすることができます。
【例】
if (pc) パソコンだけに表示
if (docomo) ドコモだけに表示
if (au) auだけに表示
if (softbank) ソフトバンクだけに表示
if (willcom) ウイルコムだけに表示
カッコ内の頭に ! を付けると否定になり、たとえば
if (!pc) は パソコン以外に表示 → 携帯だけに表示する になります。
if ($XXXX = = YYYY) 変数 $XXXX の値(数値、文字)が YYYY の場合に表示
if ($XXXX != YYYY) 変数 $XXXX の値(数値、文字)が YYYY ではない場合に表示
if ($XXXX /YYYY/) 変数 $XXXX の値(数値、文字)に YYYY を含む場合に表示
if ($XXXX !/YYYY/) 変数 $XXXX の値(数値、文字)に YYYY を含まない場合に表示
if ($XXXX > YYYY) 変数 $XXXX の値(数値)が YYYY より大の場合に表示
if ($XXXX < YYYY) 変数 $XXXX の値(数値)が YYYY より小の場合に表示
なお、if 文の効果はその行だけです。また、見やすくするためにスペースを入れて例記してありますがスペース無しで記述します。
不可視項目指定hidden=設定値  と入力すると入力確認ページには表示されません。
項目キーワード fnum はここに登録する必要はありません。
項目キーワード fnum 以外はフォームHTMLに <input>タグを挿入する必要はありません。

      郵便番号から住所の自動入力
head要素として、 <script type="text/javascript" src="f2mail.js"></script> タグを、
form要素の 郵便番号入力タグに、 autocomplete="off" onchange="getad('0','ken','addr')"   を挿入します。
getad のパラメータは次のとおりです。
(1) フォーム番号 (HTMLにフォームが1つだけなら 0、複数ならば 1番目=0、 2番目=1、の順)
(2) 都道府県項目キーワード (都道府県と住所を分けて入力するのでなければカラにします)
(3) 住所項目キーワード
この機能は、javascript OFF に設定したブラウザ および携帯では無効です。

      会員登録フォーム
会員登録フォームとして設定したフォームから送信すると、確認メールが自動返信され、このメールに記載されたURLにアクセスすることで会員登録が完了します。
24時間以内に確認用URLにアクセスがない場合、その会員登録申し込みは無効になります。
会員登録フォームとして設定するには次のようにします。
(1) キーとする項目を最初の入力項目にします
(2) すべての項目を入力必須項目に設定します
(3) <input type="hidden" name="mailing" value="entry"> を設定します
(4) 次のキーワード(不可視項目)を登録します
  confirmp − 確認用アクセスページのシステムパス

      メーリングリスト
会員登録フォームと投稿フォームをセット(連番)にして設定するとメーリングリストになります。
メーリングリストの会員登録フォームには次のキーワード(不可視項目)を追加登録します。
  mlform − 投稿フォームのシステムパス

      ほかのプログラムからの会員認証
このプログラムで会員登録したデータを利用して、ほかのプログラムから会員認証を実行する場合は次の構文を使います。
  require 'cgi-conv.pl';
  membercheck(id,pass,ini,db,f2mscr);
認証成功は 1 を返します。リストに返す場合は、先頭1、次から IDを除く登録データです。(失敗は戻り値なし)
パラメータは次のとおりです。
(1) 認証するID
(2) 認証するパスワード
(3) フォーム登録ファイルのシステムパス
(4) 会員登録データベースファイルのシステムパス
(5) f2mail.cgiファイルのシステムパス

       メール送信設定
このフォームから投稿があったときにメール自動返信またはメール転送を実行する場合に設定します。
[sendmailパス]  sendmailコマンドのシステムパス
SMTPを使う場合はここにそのサーバ名、アカウント、パスワードなどを入力します。
[Return-Path] メールヘッダの Return-Path にセットするメールアドレス (任意)
ここには自動返信するように設定したアドレスを指定してはいけません。
[From] メールヘッダの From にセットするメールアドレス
[To] 送信先メールアドレス、複数の場合はコンマ区切りで入力します。
フォーム投稿者に返信する場合はその項目のキーワードの頭に $ を付けて記入します。
ただし、投稿者が自分のアドレスを記入するとは限りません。
他人のアドレスを記入した場合はそちらにメールが届きます。このフォームを使う場面を考慮して決めてください。
[Copy-To] コピーを送るメールアドレス、複数の場合はコンマ区切りで入力します。 (任意)
[Reply-To] メールヘッダに返信先としてセットするアドレス (任意)
ただし、「To」に設定した投稿者以外には投稿者のアドレスがセットされます。
[題名] メールの題名、 フォームデータを引用する場合は項目のキーワードの頭に $ を付けて記入します。
[本文] メールの本文、         〃
if 文を用いることができます。(フォーム設定ヘルプ 「送信完了ページ」項参照)
<end> と書くとそれ以降はメモと見なしメールには転載されません。
なお、送信するメール本文は全角35字で改行されます。ただし、URL、メールアドレスがある行は改行されません。
[添付ファイル] ファイルを添付するときに記入します。 複数の場合はコンマ区切りとします。
(1)このフォームの添付ファイルはその項目のキーワードの頭に $ を付けて指定します。
(2)自サイトの他のファイルはシステムパスで指定します。
(3)他サイトのファイルはURLで指定します。
(1) (3)でHTMLファイルを添付した場合は、HTML対応メールソフトで閲覧すると展開されます。
なお、「To」 「Copy-To」 でアドレスの頭に FX- を付けておくとそのアドレスにはファイルを添付しません。


      日本語キーワードを使う場合の注意
フォームの項目キーワードに日本語文字を使うときは、入力内容をメール送信や画面表示に引用する場合、変数を次のように記述してください。
    ${'項目キーワード'}    (シングルクォート ' で括り、さらにそれを大カッコ { } で括って、頭にドルマーク $ を付けます)

      メールアドレスの書式
メールアドレスは次のいずれかの書式で入力します。(混在してもかまいません)
(1) 名前 <メールアドレス>
(2) メールアドレス (名前)
(3) メールアドレス のみ
なお、英数字 @ . _ + − 以外を含むもの、先頭が英数字以外のものはメールアドレスとして認識しません。

Toアドレスが多数のときは別に登録することができます。
アドレスリストを別に登録する場合は、上のメール送信設定の 「To」の <<List をクリックすると登録ページが開きます。
登録したリストを使う場合は送信設定の 「To」に useList と記入します。

      SMTPを使う場合の設定
sendmailの代わりにSMTPを使う場合は次のように入力します。
(1)SMTP認証の場合 SMTPサーバ名SMTPポート番号ユーザ名(アカウント)パスワード
(2)POP before SMTPの場合 SMTPサーバ名SMTPポート番号,POPポートPOPサーバ名,ユーザ名パスワード
※ SMTPサーバ名と同じ場合は 「 POPサーバ名, 」 は不要です。
なお、認証用アカウントのアドレスを Return-Path に設定します。

      会員登録の返信メール
会員登録フォームの送信メールの本文には次のURLを付記します。
  $script?mailing=$fnum&confirm=$key − 確認用アクセスURL

      メーリングリスト
投稿フォームの送信メールの設定は次のようにします。
(1) To は useList とします。 (送信先リストは自動作成されます)
(2) 本文は $フォームに設定した項目キーワード とし、次のURLを付記します。
  $script?mailing=$ml&reply=$mp&msgid=$msgid − 返信投稿フォーム表示
  $script?mailing=$ml&form=$mp − 新規投稿フォーム表示

v5.00 2009.07.18