#!/usr/local/bin/perl #飛ばないカウンター(SSI用) V1.10 # # Copyright(c) 1999 Yuumi # http://gochagocha.ribbon.to/ # gochagocha@ribbon.to # # 本プログラムはフリーソフトウェアーです。使用するには以下の使用許諾事項をお守りください # # 使用許諾事項 # 1.商用目的に使用してはいけません # 2.著作権を削除して使用してはいけません # 3.著作権を削除して2次創作物を作成する、又は2次配布を行ってはいけません # # # 設置方法 # 1.上記のPerlの位置と、以下の $imagepath を設定します # 2.設置する場所にアップロードをし、パーミッションを700又は705に変更します # 3.表示するHTMLにSSIのコードを書いて完成! # # # 特徴 # 1.追記書き込みですので、データが飛ぶ心配がありません # 2.初期設定が楽です、lockの為のディレクトリやカウンターのデータをアップロードする必要がありません #イメージファイルがあるディレクトリまでの設置するURLからのパス( 0.gif 〜 9.gifが存在すること) $imagepath = 'http://www.yourdomain.des/imagedir/'; #1番目のカウンタデータファイル サイズ*$stepcountがカウントになる $datafile = "./cdat.dat"; #2番目のカウンタデータファイル $stepcountまでの細かいカウント用、$stepcountを越えるとリセットされる $datafile2 = "./cdat2.dat"; #2番目のファイルでカウントする最大値 $stepcount = 1000; # n 桁表示( 0 ならそのまま、それ以上なら数字分桁を増やす ) $countlevel = 7; #print "Content-type: text/html\n\n"; #デバッグ時は先頭の#をはずしてね print ''; if( -e $datafile ){ @cbfstat = stat $datafile; } $cbase = $cbfstat[7] * $stepcount; if( -e $datafile2 ){ @cfstat = stat $datafile2; } $cnumber = ++$cfstat[7] + $cbase; $onebyte = '1'; if( ($cfstat[7] % $stepcount) == 0 ){ if ( !open(DATA,">>$datafile") ) { &error; } print DATA $onebyte; close (DATA); if ( !open(DATA,">$datafile2") ) { &error; } close (DATA); }else{ if ( !open(DB,">>$datafile2") ) { &error; } print DB $onebyte; close(DB); } my $keta = ( @counter = split(//,$cnumber)); if( $countlevel > 100 ){ $countlevel = 7; } $countlevel--; for( $keta .. $countlevel ){ unshift @counter,'0'; } foreach $count (@counter) { $imgfile = "$imagepath$count.gif"; print "\"$count\""; } exit; # ============================== sub error { print "ERROR"; exit; } _END_