インターネット自体はメールやチャットなど、双方向でコミュニケーションがとれる物なのですが、ホームページは基本的に作者から見ている人への一方通行のメディアです。もちろん「mailto:アドレス」で見に来た人から感想などをもらう手だてはありますが、それにしても実際にメールなどレスポンスをもらえるのはごくわずかでしょう。そこで、少しでも見に来た人とコミュニケーションがとれるよう、メッセージなどを直接書き込んでもらい、クリック一つで送信できるようにするHTMLタグがあります。これをフォームと言います。
しかし、このフォームというタグは現実問題HTMLとブラウザだけでは手に余る処理を必要とします。「ホームページを見る」というのは、見る人がサーバーにアクセスして、そこにしまってあるHTMLファイルと画像ファイルを持ち出し、自分のマシン上のブラウザソフトで持ってきたHTMLを元に画面を組み立てて表示しています。つまり見ている人のマシンとあなたのプロバイダのサーバの間でDATAが往復しているだけなのです。
これを、見ている人が起こしたアクションを、サーバを経由してあなたのマシンへ届けるには、サーバを動かす為の命令が必要になります。この命令をCGIと言います。つまりフォームは基本的にCGIとセットで使うタグなのです。CGIはHTMLに比べると修得が非常に難しく、またサーバに負担をかけるため使用を禁止しているプロバイダもめずらしくありません。具体的にフォームの場合、CGIを使わずに送るとどうなるかというと、日本語がすべて文字化けし、せっかく送ってもらった感想などを読むことが出来なくなります。この文字化けしたメールを日本語に変換してくれるソフトもありますが、完全には戻らないケースがあり、仮に大切なメールを頂いたとしたら、この変換ソフトに頼っていては何かしらの事故にもなりかねません。ただ、フォームメールを日本語化して送信するためのCGIは、需要が多いためか、あらかじめこれに限って使って良いとするプロバイダもありますので、もし使いたい場合はご自分のプロバイダに問い合わせてみてください。
さて、ではここで作るアンケートはCGI無しでは意味がないのか?というと、そうでもありません。なぜならフォームは日本語は不可ですが、英語ならある程度問題なく使えるからです。サンプルに使用したフォームタグは日本語情報を一切送らずに使える物だけを掲載しました。直接感想文などは受け取れないものの、これだけでもメールボタンのみよりは、気軽にレスポンスを貰いやすいのではないでしょうか?
●<FORM ACTION="n" METHOD="post">
フォームタグは<FORM>と書きます。この<FORM>から</FORM>の間にラジオボタンやプルダウンメニュー、メールアドレスを書いてもらう欄、送信ボタンなどを書き込みます。また<FORM>と</FORM>の間に他のタグや文章が入っても構いませんので、<FORM>タグ内は自由なレイアウトが可能です。
オプションタグACTIONは書き込んで貰った情報をどこに送るのかを指定するためのタグです。通常はCGIファイルへのパスを書き込みますが、CGIを使わない場合はmailto:に続けて受け取りたいメールアドレスを書き込みます。
METHODはACTIONで指定された送信先へどのような形式で送るかを指定するタグです。CGIの場合postかgetを選べますが、CGIを使わない場合はpostとします。
<FORM ACTION="mailto:abc@defg.ne.jp" METHOD="post">
とりあえず、アンケートページの下準備をしてしまいましょう。下のHTMLを参考に「enquete」ディレクトリに置いたダミーの「index.html」を作り直してください。