#!/usr/bin/perl
################################
## かんたんグラフィカル ##
## アクセスカウンター Ver 1.0 ##
## 解説と原本は、http://www.paddie.com/cgiroom.html ##
## by Paddie. 28 Apr.2000 ##
################################
$keta = 5;# 表示される最低桁数です。
$| = 1; # おまじない
$imagedir = 'http://www.paddie.com/images';
$width = 12;
$height = 17;
$cgidir = '/home/httpd/cgi-bin';
$lock_file = "$cgidir/gcount.dat";
$count_file = "$cgidir/gcount.count";
if ($ENV{'REQUEST_METHOD'} !~ /(GET)|(POST)/)
{exit (0);}#不正なアクセスを遮断
#同時アクセスの検出
$wait = 0;
while(-f "$lock_file")
{
$wait++;
if ($wait > 20)
{
open (IN,"$lock_file");
$check = ;
close IN;
if ($check <= time - 20)
{unlink($lock_file);}
else
{
print "Content-type: text/plain\n\nカウント失敗";
exit(0);
}
}
sleep(1);
}
## ロックファイル作成 ##
open(LOCK, ">$lock_file");
print LOCK time;
close(LOCK);
## カウント数読み込み ##
open (IN,"$count_file");
$count = ;
close IN;
$count++;
## 現在のカウント数書き込み ##
open (OUT,">$count_file");
print OUT "$count";
close OUT;
## 桁調整 ##
while (length $count < $keta)
{$count = "0".$count;}
## 出力 ##
@counter = split (//,$count);
print "Content-type: text/plain\n\n";
foreach $number (@counter)
{print "";}
## ロックファイル削除 ##
unlink($lock_file);
## 処理終了 ##
exit;