フリーCGIスクリプト配布サイト。
ファイルからデータを読み込んだり、ファイルにデータを書き込んだりする事ができるようになれば、アクセスカウンタを作成することができます。
アクセスカウンタの処理の流れは以下のようになります。
今回はアクセス数をカウントするCGIを counter.cgi
、アクセス数を保存するファイルを counter.txt
として作成します。counter.cgi
の内容は以下のとおりです。
#!/usr/local/bin/perl
print "Content-Type: text/html; charset=Shift_JIS\n\n";
print "<html>\n";
print "<head><title>アクセスカウンタ</title></head>\n";
print "<body>\n";
if (open(FH, "counter.txt")) {
$count = <FH>;
close(FH);
$count++;
print "<p>あなたは$count人目の訪問者です。</p>\n";
if (open(FH, ">counter.txt")) {
print FH $count;
close(FH);
} else {
print "<p>ファイルに書き込めません。</p>";
}
} else {
print "<p>ファイルを読み込めません。</p>";
}
print "</body>\n";
print "</html>\n";
exit;
また、counter.cgi
と同じフォルダの中に counter.txt
を作成しておきます。(内容はカラのままで大丈夫です。)
これで準備は完了です。以降で counter.cgi
の内容を上から順に解説していきます。まず、
if (open(FH, "counter.txt")) {
$count = <FH>;
close(FH);
この部分で counter.txt
を開き、内容を $count
に読み込んでいます。つまり $count
には、これまでのアクセス数が代入されます。
$count++;
この部分で、これまでのアクセス数に1を加えています。$count++;
は、$count = $count + 1;
と同じ意味です。
print "<p>あなたは$count人目の訪問者です。</p>\n";
この部分で、今回のアクセス数を表示しています。
if (open(FH, ">counter.txt")) {
print FH $count;
close(FH);
この部分で、今回のアクセス数を counter.txt
に書き込んでいます。前回までのアクセス数は消去され、counter.txt
には今回のアクセス数のみ保存されることになります。
これでアクセスカウンタの完成です。counter.cgi
に何度もアクセスすると、表示されるアクセス数が増えていきます。