演習問題
上のようなフォーム入力を作り(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」を押すと
実行される。