第3日目の授業は、アクセスカウンターの作成。


ホームページへの訪問者数をカウントするCGIだ。


おやおや、お題目はアクセスカウンターですが、今日の授業は今までと同じ

さいころのようだ。


なになに、さいころの目の数だけ黒丸を表示させるプログラムをつくるようだ。



では早速、コーディング。


----------------------------------

#! c:/perl/bin/perl


#さいころを振る

$role = int(rand 6) +1;


#サーバ出力

print "content-type: text/html\n\n";


print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>perl さいころ</title></head>\n";
print "<body>\n";

print "<p>さいころの目は<big>$role</big>です。</p>\n<p>";

#さいころの目出力

$i = $role;

While($i > 0){

print "●";
$i--;

};

print "</p></body>\n";

print "</html>\n";
------------------------------------------------


さあ、実行。 http://127.0.0.1/tendays/3-1.cgi


Internal Server Error


がっがーんガーン



while文を閉じる括弧のあとにセミコロンがあるぞ。


セミコロンを消して再実行!


Internal Server Error


かわらず・・・。どこだどこだ。


わからんerror logをみるか。


C:ApacheGroup\Apache2\logs\error.logをみる。


[Tue Dec 19 23:19:08 2006] [error] [client 127.0.0.1] Premature end of script headers: 3-1.cgi
[Tue Dec 19 23:19:08 2006] [error] [client 127.0.0.1] syntax error at C:/ApacheGroup/Apache2/htdocs/tendays/3-1.cgi line 25, near "){"\r
[Tue Dec 19 23:19:08 2006] [error] [client 127.0.0.1] syntax error at C:/ApacheGroup/Apache2/htdocs/tendays/3-1.cgi line 30, near "}"\r
[Tue Dec 19 23:19:09 2006] [error] [client 127.0.0.1] Execution of C:/ApacheGroup/Apache2/htdocs/tendays/3-1.cgi aborted due to compilation errors.\r


25行目と30行目がおかしいらしい。


早速チェック



あっ、whileがWhileになってる。



再実行。


さいころの目は6です。

●●●●●●



でたでた。


今日のポイント


●関係演算子


$a < $b

$a <= $b

$a > $b

$a >=$b


オートインクリメント演算子オートデクリメント演算子


++$a $a++

--$a $a--


繰り返し構文While文


繰り返し同じ文を実行することが可能。


今日はこれでおしまい