#!/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.