ラジオボタンからの入力への応答(CGI)


 ラジオボタンからの入力に応答をするCGIプログラムの例として, 「インターネットDOチェックページ」を示します。

 このページ上で,ラジオ

ボタンを選択し,「チェック開始」ボタンを押すと,下の check.cgiプログラムが実行されます。



#!/usr/bin/perl ←perlプログラムを実行するプログラム(インタプリタ) $m=$ENV{"REQUEST_METHOD"}; ←データの送信方式を得る if($m eq "GET"){ $data=$ENV{'QUERY_STRING'}; ←GETなら環境変数から読む }else{ read(STDIN,$data,$ENV{"CONTENT_LENGTH"}); ←POSTなら標準入力から読む } &decode(); ←データを分離し,値を取出すサブルーチンの実行 &check_count(); ←yesの個数を数え,率を計算するサブルーチンの実行 &browse(); ←HTMLを出力するサブルーチンの実行 sub check_count{ ←yesの個数を数え,率を計算するサブルーチン $count = 2; foreach $i(1..$count){ $tmp = $tmp + $cgi{'check'.$i}; } $total = sprintf("%.1f", $tmp/$count*100); } sub browse{ ← HTMLを出力するサブルーチン print "Content-type:text/html\n\n"; print << EOF; <HTML> <HEAD> <TITLE> Determine Your Internet DO</TITLE> </HEAD> <BODY> <H2>決定! あなたのインターネットDO</H2> <HR> あなたのインターネットDOは,$total %です。<BR> <HR> <A HREF="../check.html">チェックに戻る</A><BR> </BODY> </HTML> EOF } sub decode{ ←データを分離し,値を取出すサブルーチン @parts=split('&',$data); foreach(@parts){ ($name,$value)=split("="); $cgi{$name}=$value; } }