宿題13

1. showlist.cgi

list.txtは、番号、名前、性別がコンマで区切られたCSVファイルである。 list.txtの内容を読み取って、各行の項目の値をタブで区切って、webページで表示するCGIスクリプトとして、以下のように作成してみた。

  1. 各自の~/public_htmlにcgiという名前のサブディレクトを作成せよ。
  2. showlist.cgiとlist.txtを~/public_html/cgi中にアップロードせよ。
  3. chmod 755 showlist.cgiとパーミッションを設定せよ(FFFTPでも設定可)。

サンプル

[showlist.cgi]
#! /usr/bin/perl

$top_page = "index.html";
$filename = "list.txt";

@data =();

# 読み取りモードでファイルを開く
open(IN, "<$filename") || &error("Cannot read $filename: $!");

while(<IN>){
	chomp;
	( $number, $name, $gender) = split(/,/, $_);
	# 無名ハッシュを配列にする
	push  @data, 
	{ 
		'number'=>$number, 
		'name'=>$name, 
		'gender' =>$gender
	};
}
# ファイルを閉じる
close(IN);


print "Content-Type: text/html\n\n";
print "<html><head><title>CGI sample</title></head>\n";
print "<body>\n";
print "<h2>リストの表\示</h2>\n";


foreach (@data){
	print "$_->{number}\t$_->{name}\t$_->{gender}<br>\n";
}

print "</body></html>\n";
exit;



################### subroutines ##################

# エラー表示
sub error
{
	print "Content-Type: text/html\n\n";
	print <<"---EOF---";
<html><head><title>Information</title></head>
<body>
<span sylte="color: red;"> $_[0]</span>
<form method="GET" action="$top_page">
<input type=SUBMIT value="最初のページに戻る">
</form>
</body></html>
---EOF---
	exit;
}

2. showmen.cgi

showlist.cgiを改造して、男性のデータだけの番号、名前を表示するようにした。

  1. showmen.cgiを~/public_html/cgi中にアップロードせよ。
  2. chmod 755 showmen.cgiとパーミッションを設定せよ(FFFTPでも設定可)。

サンプル

[showmen.cgi]
#! /usr/bin/perl

$top_page = "index.html";
$filename = "list.txt";

@data =();

# 読み取りモードでファイルを開く
open(IN, "<$filename") || &error("Cannot read $filename: $!");

while(<IN>){
	chomp;
	( $number, $name, $gender) = split(/,/, $_);
	# 無名ハッシュを配列にする
	push  @data, 
	{ 
		'number'=>$number, 
		'name'=>$name, 
		'gender' =>$gender
	};
}
# ファイルを閉じる
close(IN);


print "Content-Type: text/html\n\n";
print "<html><head><title>CGI sample</title></head>\n";
print "<body>\n";
print "<h2>リストの表示</h2>\n";


foreach (@data){
	if($_->{gender} eq "男"){
		print "$_->{number}\t$_->{name}<br>\n";
	}
}

print "</body></html>\n";
exit;



################### subroutines ##################

# エラー表示
sub error
{
	print "Content-Type: text/html\n\n";
	print <<"---EOF---";
<html><head><title>Information</title></head>
<body>
<span sylte="color: red;"> $_[0]</span>
<form method="GET" action="$top_page">
<input type=SUBMIT value="最初のページに戻る">
</form>
</body></html>
---EOF---
	exit;
}

3. showmentbl.cgi

showmen.cgiを改造して、男性のデータだけの番号、名前を、表形式(table要素)で表示するように工夫せよ。

  1. showmentbl.cgiを~/public_html/cgi中にアップロードせよ。
  2. chmod 755 showmentbl.cgiとパーミッションを設定せよ(FFFTPでも設定可)。

サンプル


戻る