#!/usr/local/bin/perl
#
# 簡易バナーランキングシステム Banners Ranking System
#
# http://www.rescue.ne.jp/
# (c)www.rescue.ne.jp
# 最終更新日:1998年5月21日
#
# -設置構成-
#
# /banners/
# |
# |--/data/ (777) ここには、「月日.登録番号」というファイル名でデータファイルが作成/削除されます。
# |
# |- banners.cgi (755)
# |- ranking.cgi (755)
# |- bar.gif (ランキング表のバー)
# |- error1.gif (エラーメッセージ画像)
# |- error2.gif (エラーメッセージ画像)
# |- error3.gif (エラーメッセージ画像)
# |- error4.gif (エラーメッセージ画像)
# |- banners.gif (自分のバナー:相手先に表示される)
# -- Usage --
#
#-----------------------------------------------------------------------------------------
# 参加登録設定
#
# ■参加サイト名設定 $NAME[参加番号] = '名称';
# ■参加サイトURL設定 $URL[参加番号] = 'URL';
# ■紹介バナーの保存先 $IMG[参加番号] = 'URL';
# ■貼るページのURL設定 $REF[参加番号] = '参照URL';
# (呼び出したページのURLが$REF[参加番号]設定した参照URLを含む場合にのみ有効となる)
# (設定しなければそのチェックはしません)
#-----------------------------------------------------------------------------------------
# (これらはサンプルでの設定のままです)
$NAME[1] = 'バナーを置いてくれたどこかのページ名1';
$URL[1] = 'http://www.rescue.ne.jp/cgi/banners/sample/test1.html';
$IMG[1] = 'http://www.rescue.ne.jp/images/resweb.gif';
$REF[1] = 'http://www.rescue.ne.jp/cgi/banners/sample/test1.html';
$NAME[2] = 'バナーを置いてくれたどこかのページ名2';
$URL[2] = 'http://www.rescue.ne.jp/cgi/banners/sample/test2.html';
$IMG[2] = 'http://www.rescue.ne.jp/images/rescue_top.gif';
$REF[2] = '';
$NAME[3] = 'バナーを置いてくれたどこかのページ名3';
$URL[3] = 'http://www.rescue.ne.jp/cgi/banners/sample/test3.html';
$IMG[3] = 'http://www.rescue.ne.jp/images/rsa16.gif';
$REF[3] = 'http://www.rescue.ne.jp/cgi/banners/sample/test3.html';
$NAME[4] = 'バナーを置いてくれたどこかのページ名4';
$URL[4] = 'http://www.rescue.ne.jp/cgi/banners/sample/test4.html';
$IMG[4] = 'http://www.rescue.ne.jp/images/nsr.gif';
$REF[4] = 'http://www.rescue.ne.jp/cgi/banners/sample/test4.html';
$NAME[5] = 'バナーを置いてくれたどこかのページ名5';
$URL[5] = 'http://www.rescue.ne.jp/cgi/banners/sample/test5.html';
$IMG[5] = '';
$REF[5] = 'http://www.rescue.ne.jp/cgi/banners/sample/test5.html';
# 登録番号が足らなくなったら同様に追加してください.
#-----------------------------------------------------------------------------------
#時刻調整
#$ENV{'TZ'} = "GMT-9";
#表示バナー
$BANNERS = './banners.gif';
#エラー画像ディレクトリ
$image_dir = './';
#データディレクトリ
$data_day = './data/';
#-----------------------------------------------------------------------------------
#番号取得
$number = $ENV{'QUERY_STRING'};
#参照取得
$ref = $ENV{'HTTP_REFERER'};
$ref =~ tr/+/ /;
$ref =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
#エラーチェック
if ($number eq '') { &error(1); } #参加番号指定なし
if ($URL[$number] eq '') { &error(2); } #登録なし
if ($ref =~ /$REF[$number]/i) { ; } else { &error(3); } #参照エラー
#---
#ログ(一昨日分)を削除
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time - 48*60*60);
$log = sprintf("%02d%02d",$mon +1,$mday);
$log = $data_day . $log . '.' . $number;
unlink("$log");
#---
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
#ログ
$log = sprintf("%02d%02d",$mon +1,$mday);
$log = $data_day . $log . '.' . $number;
if (!open(OUT,">>$log")) { &error(4); } #記録エラー
print OUT "\n";
close(OUT);
chmod(0666,$log);
#バナー出力
print "Content-type: image/gif\n\n";
open(FOO,$BANNERS);
while() { print; }
close(FOO);
exit;
sub error {
$file = $image_dir . 'error' . $_[0] . '.gif';
print "Content-type: image/gif\n\n";
open(FOO,$file);
while() { print; }
close(FOO);
exit;
}
# End of Script.