演習問題


上のようなフォーム入力を作り(form.htmlという名前を付ける。)、 以下の渡されたフォームデータを表示するCGIプログラム(print.cgi)を実行し (<FORM>タグにACTION=print.cgiと書き、METHOD=POSTとする。)どのようなデータが 渡されるか確認する。

以下のプログラムをprint.cgiとして保存してHTMLと同じフォルダーに置く。
#!/usr/local/bin/perl
read(STDIN,$a,$ENV{'CONTENT_LENGTH'});
print "Content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>結果</TITLE></HEAD><BODY>";
print "渡されたデータは<BR>";
print $a;
print "</BODY></HTML>";

1行目:このファイルがPerlプログラムであることを示している。
2行目:フォームから渡されたデータを$aに代入する。
3行目:ブラウザにHTMLデータであることを知らせる文をprint文で表示する。通常のHTML文 の場合はサーバーがこの部分を自動的に送信するが、CGIの場合は指定する必要がある。
4行目:HTMLの本文の前の基本部分を表示。
5行目:「渡されたデータは」という文を表示し改行する。
6行目:変数$aの内容を表示。
7行目:HTMLの基本部分の終わりを表示する。

An httpdを実行してから、ブラウザのURL欄にhttp://127.0.0.1/form.htmlと書いて HTMLファイルを呼び出し、フォームに入力してSUBMITボタンでCGIを実行する。
1行入力(または、パスワード入力)が一つだけの場合は入力して「Enter」を押すと 実行される。