ホーム » スタッフ » 斉藤徹 » CGIの基本サンプル

2013年11月
« 10月   12月 »
 12
3456789
10111213141516
17181920212223
24252627282930

最近の投稿(電子情報)

アーカイブ

カテゴリー

CGIの基本サンプル

専攻科実験でのRSSを用いた、情報活用の実験で、 パラメータの入力などの希望があったので、 最も簡単なCGIのサンプルを示す。

CGIサンプル

最初に、CGIを使えるようにするために、.htaccess ファイルにて、 CGI を使えるような設定を加える。

(( .htaccess ))
Options ExecCGI
AddType application/x-httpd-cgi .cgi

CGI モジュールを使う、極力短いサンプルコード。 セキュリティについては、考慮していないので十分に注意すること。

#!/usr/bin/perl
# なお、このサンプルプログラムは、
# セキュリティについては考慮していない。
use CGI qw/:standard/ ;
use Jcode ;
my $cgi = new CGI ;
# cgiのパラメータをもらう
my $DATA = Jcode->new( param('DATA') )->utf8 ;
# データ前後の空白を取る
$DATA =~ s/\s+$// ;
$DATA =~ s/^\s+// ;
if ( "$DATA" eq "" ) {
# パラメータが無い時は、ファイルから読み出す
if ( -r "data.txt" ) {
open( FH , "data.txt" )
or die( "Can't access for read" ) ;
$DATA = <FH> ;
close( FH ) ;
}
} else {
# パラメータがあったら、ファイルに書き込む
open( FH , ">data.txt" )
or die( "Can't access for write" ) ;
print FH "$DATA\n" ;
close( FH ) ;
}
# CGIの最初の決まり文句を出力
print header(-charset=>'UTF-8') ;
print start_html(-title=>'Title',
-charset=>'UTF-8',
-encoding=>'UTF-8',
-lang=>'UTF-8') ;
# 画面に出力するHTMLの内容
print "<form method='GET' action='test.cgi'>\n" ;
print "<input type='text' name='DATA' value='$DATA' />" ;
print "</form>\n" ;
print "入力値は<pre>$DATA</pre>\n" ;
# CGIの終わりの決まり文句を出力
print end_html ;