#! /usr/local/bin/perl # ↑この上のPerlのパスを書き換えるのはお約束ですね #========================================================================================== # # マルチボード掲示板システム 『MultiBBS』ver 1.3 : 過去ログ表示スクリプト # # Copyright Shinobu Suzuki 1998. All rights reserved. #------------------------------------------------------------------------------------------ # HomePage : http://www.aikis.or.jp/~s-suzuki/cgilabo/ # E-mail : s-suzuki@aikis.or.jp # Version : 1.32 # Update : 1999/02/27 #------------------------------------------------------------------------------------------ # ■makelog.cgiで作成された過去ログを表示します # ■過去ログデータはMultiBBSの設置ディレクトリ下の oldlog ディレクトリに格納されています # ■過去ログファイルは、ボード名に000〜999までの連番が付加されて作成されています # ■過去ログファイルの拡張子は .bkl となっています # ■過去ログを表示するときの画面の配色等は、ボード定義ファイルより読み込みます # ■このCGIの呼び出しは以下のように行います # viewlog.cgi?bordname=ボード名 # ■ボード名を指定していないときは、表示可能な過去ログの作成されたボードの一覧になります # **** # ■このスクリプトは config.cgi を参照しています #========================================================================================== # 初期設定 #------------------------------------------------------------------------------------------ # CERN HTTPDなどのサーバーの場合で、ファイル関係のエラーが # 出る場合、設置するディレクトリのフルパスを指定してみて下 # さい。なお、最後は / で終わること。 # 例) $path = "/home/users/s-suzuki/public_html/bbs/"; #---------------------------------------------------------- $path = ""; #---------------------------------------------------------- # 共通設定ファイルの指定 #---------------------------------------------------------- require "$path"."config.cgi"; #---------------------------------------------------------- # 日本語コード変換ライブラリの指定 #---------------------------------------------------------- require "$path"."jcode.pl"; #---------------------------------------------------------- # このスクリプトでのみ必要な設定 #---------------------------------------------------------- $indexname = '戻る'; # makelog.cgiからの戻り先 $index = './'; # makelog.cgiからの戻り先(URL) #===================================================================== # これより、処理の開始 #===================================================================== &form; # フォーム入力された値の分解 #---------------------------------------------------------- # ボード名のチェック #---------------------------------------------------------- if ($FORM{'bordname'} eq "" ) { &bordlist; } $bordname = "$FORM{'bordname'}"; &read_cfg; # ボード定義ファイルの読み込み #---------------------------------------------------------- # スクリプトの動作を決定($FORM{'task'}で判定) #---------------------------------------------------------- if ( $FORM{'task'} eq 'view' ) { # 過去ログ表示ルーチンへ &view_log; } else { # 通常の画面表示 &loglist; } #---------------------------------------------------------------------- # 過去ログが作成されているボード名のリスト表示 #---------------------------------------------------------------------- sub bordlist { if ( $path ne "" ) { opendir(DIR,"$path/oldlog/"); } else { opendir(DIR,"./oldlog/"); } @datalist = grep(/bkl/, readdir(DIR)); closedir(DIR); @readlist = sort @datalist; $i = 0; $name1 = ""; $name2 = ""; foreach $fname (@readlist) { $name1 = substr($fname, 0, length($fname)-7); if ( $name1 ne $name2 ) { push( @data, $name1 ); $name2 = $name1; $i++; } } print "Content-type: text/html\n\n"; print "\n
\n