[もくじへ|トップページへ|前ページへ|次ページへ]
に更新
9.フォームメール
フォームメールというのは、当HPでもあちこちに置いてありますが、フォー
ムに入力されたデータ(名前、メールアドレス、感想など)を、メールで送信
するものです。
ここでは、次のフォームを作成した後、入力されたデータをメール送信するプ
ログラムの作成について解説します。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
このフォーム部分のソースは次のようになっています。なお、説明のために、
部分的に調整してあります。スペースや改行はブラウザで表示させながら適宜
変えてください。IE付属のFrontPage
Expressを使うと簡単に作成できます。
<form action="http://www.minc.ne.jp/~ryokan/
cgi-bin/lecture/formml.cgi"
method="POST">
<input type="hidden" name="subject" value="感想メール"><br>
<font face="MS ゴシック">感想をどうぞ</font><p>
<font face="MS ゴシック">お名前(ハンドル可)</font><br>
<input type="text" size="30"
name="name"><p>
<font face="MS ゴシック">メールアドレス(半角英数)</font><br>
<input type="text" size="30"
name="mail"><p>
<font face="MS ゴシック">感 想</font><br>
<textarea name="message" rows="4"
cols="50"></textarea><p>
<input type="submit" value="送信">
<input type="reset" value="リセット">
</form>
赤字の部分は、プログラムの中にスペルミスのないように記述しなければなり
ません。
このフォームにデータを入力後送信ボタンを押すと、データはURLエンコー
ドされ、次のような文字列がform
action=・・・で指定されたCGIプログラ
ムに渡されます。
subject=%A0%52%32%B4%51&name=%C5%D2mail=ryokan@po.minc.ne.jp
&message=%ED%53・・・・・・・
ご覧のとおり、半角英数はそのままですが、2バイト文字はエンコードされて
います。また、「=」や「&」でつながっています。したがって、この文字列を、
次のプログラムでデコードする必要があるのです。
次のようなプログラム(formml.cgi)を作成しました。コメントを入れてあり
ますので、スクロールボタンを操作しながら解読してください。
プログラムの流れは、概略次のようになります。
------------------------------------------------------------
開始
フォームの送信ボタンが押されたとき、このプログラムが実行
されます。先頭行はPerlへのパスを書きます。
先頭行の「#」はコメントにはなりません。
------------------------------------------------------------
↓
------------------------------------------------------------
日本語コード変換プログラム(jcode.pl)を取り込む
------------------------------------------------------------
↓
------------------------------------------------------------
変数の初期設定(メールの送信先アドレスの指定など)
------------------------------------------------------------
↓
------------------------------------------------------------
送信時刻の取得(5.日付・時刻で説明済み)
------------------------------------------------------------
↓
------------------------------------------------------------
フォームデータの受信
フォームからのデータの送信方法は、POSTとGETの2通りが
あります。受信方法がそれぞれ異なるので、ここで選択します。
------------------------------------------------------------
↓
------------------------------------------------------------
受信データの編集
受信されたデータはURLエンコードされていますので、この
ままでは読めません。ここでデコード(解読)します。
------------------------------------------------------------
↓
------------------------------------------------------------
入力データのエラー検出
ここは、もっと強力にしなければいけませんが、説明を簡単に
するために、空白のチェックのみ行っています。この他には、
例えば、メールアドレスが半角になっているか、「@」が入って
いるかなどのチェックが考えられます。
------------------------------------------------------------
↓
------------------------------------------------------------
メール送信
これまでの送信はプログラムへの送信でしたが、今度はそれを
プログラムがメール送信することになります。
------------------------------------------------------------
↓
------------------------------------------------------------
送信後の画面表示
送信後のHTMLを表示します。送信のお礼など表示するよう
にします。
------------------------------------------------------------
↓
------------------------------------------------------------
終了(exit;)
------------------------------------------------------------
プログラムを自分でカスタマイズして使う場合は、次をクリックして表示させ
formml.txtはformml.cgi、jcode.txtはjcode.plという名前で保存してくださ
い。( )内はパーミッションです。
formml.txt → formml.cgi(755)
jcode.txt → jcode.pl(644)※Kazumasa
Utashiroさん開発
必ずテキストモード(アスキーモード)でアップロードしてください。
テスト実行
上記フォームに入力して、送信ボタンをクリックしてください。
うまく動きましたか?
動かないときは、サポート掲示板へどうぞ。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
[もくじへ|トップページへ|前ページへ|次ページへ]
|