%PDF- %PDF-
Direktori : /home/rappan/www/_cgi_cnt/ |
Current File : //home/rappan/www/_cgi_cnt/param.cgi |
#================================================================ # らくらく日計カウンタv1.0 設定データ&ライブラリ (2002/11/23) # Copyright(C) 2002 Mura's… # http://www1.harenet.ne.jp/~a-mura/ #================================================================ $newfile = 1; #-- ファイル自動生成(一度カウンタ表示後は外部からの不正使用防止の為0にするのをお勧めします) #--------------------------------------------------------------------------------------------- $imgbase = './gif/'; #-- イメージファイルを格納するディレクトリパス(必ず最後を / でくくること) $basepath = './dat/'; #-- 各種設定ファイルベースパス $lockdir = './lock_dir/'; #-- ロックディレクトリ $retry = 5; #-- ファイルロックリトライ回数 $delete = 7; #-- 一度に削除する過去ログファイルの日数 $password = '0000'; #-- パスワード(初期値) $termflg = 1; #-- カウント条件(IPチェック無し:0 IP/時間チェック有り:1) $termtime = 30; #-- カウント条件の時間(分) $totalfigure = 5; #-- トータル桁数 $todayfigure = 3; #-- 本日の桁数 $ydayfigure = 3; #-- 昨日の桁数 $totalimg = $imgbase.'image1/';#-- 画像ファイルトータルパス $todayimg = $imgbase.'image1/';#-- 画像ファイル本日パス $ydayimg = $imgbase.'image1/'; #-- 画像ファイル昨日パス #==========================# # 設定ファイル読み込み #==========================# sub readSetup { my($path) = "$basepath$_[0]set\.cgi"; if((-e $path)){ open(FILE, "< $path") or return ''; my(@data) = <FILE>; close(FILE); if($data[0] eq ''){return '';} foreach(@data){$_ =~ s/\r//; $_ =~ s/\n//;} for(my($i)=1; $i<=5; $i++){ $data[$i] =~ s/\D//g; } $password = $data[0]; $termflg = $data[1]; $termtime = $data[2]; $totalfigure = $data[3]; $todayfigure = $data[4]; $ydayfigure = $data[5]; $totalimg = $data[6]; $todayimg = $data[7]; $ydayimg = $data[8]; }else{ if($newfile != 1){return 'NG';} open(FILE, "> $path") or return ''; print FILE "$password\n"; print FILE "$termflg\n"; print FILE "$termtime\n"; print FILE "$totalfigure\n"; print FILE "$todayfigure\n"; print FILE "$ydayfigure\n"; print FILE "$totalimg\n"; print FILE "$todayimg\n"; print FILE "$ydayimg\n"; close(FILE); chmod(0666, $path); } } #=========================================# # IPファイルパスおよびカウントパス作成 # (flg, before, ID) # true:IPファイルパス false:カウントパス # before 日前 #=========================================# sub getPath { my($time) = time; $time += 32400; $time -= (86400*$_[1]); my($day,$mon,$year) = (gmtime($time))[3..5]; $mon++; $year += 1900; if($_[0] eq 'true'){ return "$basepath$year$mon$day$_[2]ip\.cgi"; }else{ return "$basepath$year$mon$day$_[2]cnt\.cgi"; } } #======================# # カウント処理 #======================# sub countUp { my($value); if((-e $_[0])){ if($_[1] eq 'true'){ open(FILE, "+< $_[0]") or return ''; $value = <FILE>; seek(FILE, 0, 0); print FILE ++$value; }else{ open(FILE, "< $_[0]") or return ''; $value = <FILE>; } close(FILE); }else{ open(FILE, "> $_[0]") or return ''; if($_[1] eq 'true'){$value = 1;} else{$value = 0;} print FILE $value; close(FILE); chmod(0666, $_[0]); } return $value; } #======================# # ファイルロック #======================# sub lock { my($count) = $retry; while(!mkdir($lockdir, 0755)){ #-- ディレクトリが作成されるまで繰り返す if(--$count <= 0){ if($_[0] eq ''){ if(((-M $lockdir)*86400) > 600){ return 'ok'; }else{exit;} }else{return '';} } sleep(1); } return 'ok'; } #======================# # ロック解除 #======================# sub unlock { rmdir($lockdir); } 1;