#! /usr/local/bin/perl # #========================================================================================== # # 多機能(?)掲示板システム 『SSBoard』 : メッセージ削除スクリプト # # 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.3'; # 本スクリプトのバージョン $script = 'ssboard.cgi'; # 掲示板スクリプト名 $bg_col = '#e0e0e0'; # 背景色 $title_col = '#000080'; # タイトルの色 $text_col = '#000000'; # テキストの色 $link_col = '#0000ff'; # リンクの色 $alink_col = '#ff0000'; # リンク中の色 $vlink_col = '#800080'; # 既リンクの色 $subject_col = '#ff0000'; # 題名の色 $name_col = '#009000'; # 投稿者名の色 $indexname = '戻る'; # remove.cgiからの戻り先 $index = 'ssboard.cgi'; # remove.cgiからの戻り先(URL) #---------------------------------------------------------- # 管理用パスワード # 当然のことですが、できるだけ類推できにくいものを設定し # てください。できれば8文字より長いものにしましょう # ・ssboard.cgiと別のパスワードでも構いません # ・同じパスワードの方が便利かな? #---------------------------------------------------------- $user_pass = "1234"; #---------------------------------------------------------- # ログファイル名についてはセキュリティ上、変更しておいた方 # がよいと思います。 #---------------------------------------------------------- $log_file = "ssboard.log"; #---------------------------------------------------------- # ボード情報定義ファイル名 # 例) $cfg_name = "ssboard.cfg"; #---------------------------------------------------------- $cfg_file = ""; #---------------------------------------------------------- # ボード定義情報:デフォルト値 # ・定義ファイルを使用する場合は、そちらが優先されます。 # ・定義ファイルには、他にも項目がありますが、このスクリ # プトでは、以下の項目だけしか参照していません。 # ・定義ファイルを使用する場合は、この項目は削除してもか # まいませんが削除しない方がなにかと安全です。 #--- こ こ か ら ------------------------------------------ $security = '0'; # デフォルトセキュリティレベルの設定 # 0:制限なし # 1:JPドメインのみ許可 # 2:プロキシの禁止 # 3:JPおよびプロキシ $maintenance = '0'; # 掲示板メンテナンス中の制限フラグ # 0:通常の運用 1:書き込みを禁止 2:表示も禁止 #--- こ こ ま で ------------------------------------------ #---------------------------------------------------------- # 許可したいプロキシ(と誤判定されるドメイン)を設定する #---------------------------------------------------------- @proxylist = ( "aikis.or.jp", "cypress.ne.jp" ); #---------------------------------------------------------- # 利用制限するドメインリストのファイル名 # 省略すると、ドメイン制限は行われません # $domain_file = "domain.lst"; #---------------------------------------------------------- $domain_file = ""; #---------------------------------------------------------- # ファイル入出力時にファイルロックを行う設定。これにより、 # 同時アクセス時の問題が多少マシになる(?) # サーバーが flock()関数を使える設定の場合のみ利用できます # 0:ファイルロックを行わない # 1:flock()でファイルロックを行う #---------------------------------------------------------- $lockmode = 0; #---------------------------------------------------------- # CERN系のサーバーなどで、ファイル関係でエラーが出る場合、 # 以下に設置するディレクトリのサーバー内でのフルパスを指定 # してみると、正常に動作することがあるかもしれません ^^;; # # 最後は / で終わること。 # 例:$path = '/home/user/foo/public_html/cgi-bin/bbs/'; #---------------------------------------------------------- $path = ''; #---------------------------------------------------------- # 外部からの(イタズラ)書き込みを禁止する場合、以下に、ス # クリプトのURLを記入する。(サーバーやブラウザによっては # うまく働かないこともあります) # 例:$script_url = 'http://www.foo.com/~foo/ssboard.cgi'; #---------------------------------------------------------- $script_url = ''; #---------------------------------------------------------- # 書き込みの後のリロードに失敗する場合(File Not Foundので # る場合)、CGIスクリプトを設置するディレクトリ名をURLで指 # 定すると成功する場合があるそうです。 # ※この機能については未確認です # ※biglobeでは成功するそうです # ※v1.27より記述方法を変更しています # ※最後は / で終わること。 # 例:$rerload_url = 'http://www.aikis.or.jp/~s-suzuki/multibbs/'; #---------------------------------------------------------- $reload_url = ''; #========================================================================================= # 設定ここまで # これより、処理の開始 #========================================================================================= $| = 1; # ファイルバッファリングをしない &form; # フォーム入力された値の分解 &init; # 各種データ変数の初期化 &read_domainlist; # 制限するドメインリストの読み込み &read_cfg; # ボード定義情報の読み込み #---------------------------------------------------------- # スクリプトの動作を決定($FORM{'task'}で判定) #---------------------------------------------------------- if ( $FORM{'task'} eq 'list' ) { # 削除データのリスト表示 &removelist; } elsif ( $FORM{'task'} eq 'remove' ) { # データの削除ルーチンへ &remove_data; } else { &main; } #========================================================================================= # 処理はここまで(以下は、各サブルーチン) #========================================================================================= #----------------------------------------------------------------- # メイン画面 #----------------------------------------------------------------- sub main { if ($CFG_DATA{'maintenance'} ne "0" ) { &error("ただ今、メンテナンス中です。"); } &html_header("SSBoard:メッセージの削除"); print "