#!/usr/bin/perl # --------------------------------------------------------------------------------------------- # K's DownLoad Counter v1.1(ダウンロードカウンター) # Programing By ジェッターK (99-12-01) # E-Mail: webmaster@ks-power.net # HomePage: http://www.ks-power.net/ # --------------------------------------------------------------------------------------------- # ■スクリプトの概要及び注意事項 # 1.このスクリプトは、ダウンロード数をカウントするスクリプトです。 # ソフト等のダウンロード数をカウントしたい場合にご使用になれます。 # ダウンロード情報がCSV形式の為、FTP等でダウンロードする事によりExcel等の表計算 # ソフトで簡単にデータの処理が行えます。 # また、アクセスログも合わせて取得しています。 # 2.先頭行のPerlのパスをご使用のプロバイダに合わせて下さい。 # 3.このスクリプトは個人使用に限り、フリーソフトです。但し、著作権は放棄していません。 # 転載、再配布の際にはオリジナルのまま配布をお願いします。 # また、商用目的でご使用の場合は別途メールにて連絡をお願い致します。 # (著作権表示部の削除・編集は行わないで下さい。) # 4.このスクリプト使用における損害の発生に対して作者(ジェッターK)は一切の責任を負いません。 # 5.設置に関する質問はサポート掲示板にお願い致します。メールによる質問はご遠慮下さい。 # --------------------------------------------------------------------------------------------- # ■設置方法 # 入力フォームのタグを ; close(DAT); @new = (); $flag = 0; foreach (@down) { chop($_); ($NAME,$VALUE) = split(/\,/,$_); if ($NAME eq $name) { $VALUE++; $flag = 1; } unshift(@new,"$NAME,$VALUE,\n"); } if ($flag == 0) { unshift(@new,"$name,1,\n"); } # ダウンロードデータファイルの更新 open(DAT,">$file") || &error("File Not Found ! (error 02)"); if ($lock_key == 1) { flock(LOG,2); } # File Lock print DAT @new; if ($lock_key == 1) { flock(LOG,8); } # File UnLock close(DAT); # Host名を取得 $addr = $ENV{'REMOTE_ADDR'}; $host = gethostbyaddr(pack("C4",split(/\./,$addr)),2); if ($host eq '') { $host = $addr; } # 日時を取得 $ENV{'TZ'} = "JST-9"; ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time); $year = 1900 + $year; $mon++; $thisday = (Sun,Mon,Tue,Wed,Thu,Fri,Sat) [$wday]; if ($mon < 10) { $mon = "0$mon"; } if ($mday < 10) { $mday = "0$mday"; } if ($hour < 10) { $hour = "0$hour"; } if ($min < 10) { $min = "0$min"; } if ($sec < 10) { $sec = "0$sec"; } $date = "$year\/$mon/$mday-$hour:$min:$sec"; # アクセスファイルの取得 open(ACS,"$access") || &error("File Not Found ! (error 03)"); @acs = ; close(ACS); unshift(@acs,"$date,$name,$host,\n"); $log = @acs; if ($log > $acs_log) { pop(@acs); } # アクセスファイルの更新 open(ACS,">$access") || &error("File Not Found ! (error 04)"); if ($lock_key == 1) { flock(LOG,2); } # File Lock print ACS @acs; if ($lock_key == 1) { flock(LOG,8); } # File UnLock close(ACS); # IISサーバ(PerlIS)対応 if ($ENV{PERLXS} eq "PerlIS") { print "HTTP/1.0 302 Temporary Redirection\r\n"; print "Content-type: text/html\n"; } print "Location: $value\n\n"; exit; ### ■Error処理 sub error { print "Content-type: text/html\n\n"; print "\n\n"; print "\n"; print "\"$_[0]\"
\n"; print "

\n"; print "\n"; print "ホームへ戻る\n"; print "\n"; print "\n"; exit; }