#!/usr/bin/perl # ↑プロバイダの指定に合わせて書き換えてください #┌───────────────────────────────────── #│ BBSの番人2 ver1.00 (2004/09/14) #│ Copyright(C) Usagi all rights reserved. #│ http://kiriusa.cool.ne.jp/living/ #│ #└───────────────────────────────────── $ver = 'The keeper in BBS 2 v1.00'; #┌───────────────────────────────────── #│注意事項: #│ #│ このスクリプトはフリーソフトです。 #│ このスクリプトを使用したために生じたいかなる損害に関しても、 #│ 作者は一切の責任を負いません。 #│ #│ 設置に関するご質問は、掲示板でお受けいたします。 #│ 但し、適切なお答えができるとは限りません^^;。 #│ あくまでもダメ元でご相談ください。 #└───────────────────────────────────── # # 【ファイル構成例】 # # お使いの掲示板と同じディレクトリにでも置いてやってくださいまし。 # # public_html (ホームディレクトリ) # | # +-- cgibin / bbskeeper2.cgi [755] # # upマークを表示したいhtmlファイルのソースの中に、 # # のように書き込んで、このcgiプログラム呼び出してください。 # cgiへのパスをお間違えなく! # ?のあとには数字を入れます。チェックしたいファイルが1つの場合は1を入れてください。 # 複数のファイルのチェックをこのプログラム一つで行いたい場合は、下記の@logfileで # 何番目に指定したファイルについてチェックをするかを指定します。(1以上) # widthやheightの数値は、下の設定に合わせて適宜調節してください。 # #----------------------------------------------------------------------# # ▼設定項目 # #----------------------------------------------------------------------# # 更新日時を知りたいファイルへのパス(掲示板の場合は、ログファイルへのパス) # 絶対アドレス(http://〜)不可。相対パスで指定してください。複数指定可能。 @logfile = ("./logfile.log","",""); # 何時間以内に更新されたら、文字の色を変えるか $since = 6; # 背景色 $bcolor = '#ffffff'; # 通常時の文字の色 $ucolor = '#000000'; # 書き込みがあったときの文字の色 $xcolor = '#ff0000'; # 文字の大きさ $fsize = '12px'; # 表示のフォーマット # 0:月と日付だけ (例:3/15) # 1:時間と分もいれる (例:3/15 04:25) # 3:時間と分だけ (例:04:25) $format = 1; # 時間の前や後ろにつける文字列 $before = ''; $after = '更新'; # オプション:斜体(i)やボールド(b)のご用命(0:いいえ 1:はい) $b = 0; $i = 0; #----------------------------------------------------------------------# # ▲設定完了 # #----------------------------------------------------------------------# # # 引数のデコードとエラーチェック $val = $ENV{'QUERY_STRING'}; if (!$val){ $val=0;} else { $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; if($val > @logfile){ &error("invalid value specified: $val");} elsif(!$val) { $val=0;} $val--; } # 現在時刻取得 $current = time; # ファイルが存在するかどうかのチェック if (-e $logfile[$val]){ # ファイルの更新時間取得 $update = (stat($logfile[$val]))[9]; #ローカルタイムに変換 (undef,$min,$hour,$date,$mon,undef,undef) = localtime($update); #出力文字列作成 if ($format == 0) { $string = sprintf("%d\/%d",$mon +1,$date);} elsif ($format == 2) { $string = sprintf("%02d\:%02d",$hour,$min);} else { $string = sprintf("%d\/%d\ \;%02d\:%02d",$mon +1,$date,$hour,$min);} $string = "$before" . "$string" . "$after"; if ($i) { $string = "" . "$string" . "";} if ($b) { $string = "" . "$string" . "";} if ($current - $update < $since * 60 * 60) { $string = "$string";} } else { &error("no such file: $logfile[$val]");} # 画像を表示する print "Content-type: text/html; charset=Shift_JIS\n\n"; print ""; print ""; print "$string"; print ""; exit; #----------------------# # エラー用サブルーチン # #----------------------# sub error { print "Content-type: text/html; charset=Shift_JIS\n\n"; print "$_[0]\n"; exit; }