#!/usr/local/bin/perl #---------------------------------------# # PETIT BOARD v5.22 (2001/03/21) # # Copyright(C) Kent Web 1997-2001 # # webmaster@kent-web.com # # http://www.kent-web.com/ # #---------------------------------------# # バージョン情報 $ver = 'PETIT BOARD v5.22'; #--- [注意事項] ------------------------------------------------# # 1. このスクリプトはフリーソフトです。このスクリプトを使用した # # いかなる損害に対して作者は一切の責任を負いません。 # # 2. 設置に関する質問はサポート掲示板にお願いいたします。 # # 直接メールによる質問は一切お受けいたしておりません。 # # 3. 添付の home.gif は L.O.V.E の mayuRin さんによる画像です。 # #---------------------------------------------------------------# # 【ファイル構成例】 # # public_html (ホームディレクトリ) # | # +-- petit / petit.cgi [755] # | petit.log [666] # | count.dat [666] # | jcode.pl [644] # | pastno.dat[666] # | home.gif # | # +-- lock [777] / # | # +-- past [777] / 1.dat [666] ... #============# # 設定項目 # #============# # 文字コードライブラリ取込 require './jcode.pl'; # タイトル名を指定 $title = "山下の掲示版"; # タイトルの色 $t_color = "#008080"; # タイトルの大きさ(ポイント数:スタイルシートで有効) $t_size = '18pt'; # タイトル文字のフォントタイプ $t_face = "MS Pゴシック"; # 本文の文字大きさ(ポイント数:スタイルシートで有効) $b_size = '10pt'; # 壁紙を指定する場合(http://から指定) $backgif = ""; # 背景色を指定 $bgcolor = "#E1F0F0"; # 文字色を指定 $text = "#000000"; # リンク色を指定 $link = "#0000FF"; # 未訪問 $vlink = "#800080"; # 訪問済 $alink = "#FF0000"; # 訪問中 # 戻り先のURL (index.htmlなど) $homepage = "http://www.indsys.chuo-u.ac.jp/~yamasita/index.html"; # 最大記事数 $max = 100; # 管理者用マスタパスワード (英数字で8文字以内) $pass = '7233c6'; # 返信がつくと親記事をトップへ移動 (0=no 1=yes) $topsort = 1; # 返信フォーム複数行化 (0=no 1=yes) $res_forms = 0; # ホスト名取得モード # --> 0 : $ENV{'REMOTE_HOST'} で取得できる場合 # --> 1 : gethostbyaddr で取得できる場合 $get_remotehost = 0; # タイトルにGIF画像を使用する時 (http://から記述) $title_gif = ""; $tg_w = '150'; # GIF画像の幅 (ピクセル) $tg_h = '50'; # 〃 高さ (ピクセル) # ファイルロック形式 # → 0=no 1=symlink関数 2=mkdir関数 # → 設定する場合は、ロックファイルを生成するディレクトリ # のパーミッションは原則として「777」に設定する。 $lockkey = 0; # ロックファイル名 $lockfile = './lock/petit.lock'; # ミニカウンタの設置 # --> 0=no 1=テキスト 2=GIF画像 $counter = 1; # ミニカウンタの桁数 $mini_fig = 6; # テキストのとき:ミニカウンタの色 $cnt_color = "#DD0000"; # GIFのとき:画像までのディレクトリ # → 最後は必ず / で閉じる $gif_path = "./img/"; $mini_w = 8; # 画像の横サイズ $mini_h = 12; # 画像の縦サイズ # カウンタファイル $cntfile = './count.dat'; # タグの許可 (0=no 1=yes) $tagkey = 0; # スクリプトのファイル名 # --> フルパスで指定する場合は http:// から記述 $script = './petit.cgi'; # ログファイルを指定 # --> フルパスで指定する場合は / から記述 $logfile = './petit.log'; # 記事 [タイトル] 部の長さ (全角文字換算) $sub_len = '14'; # 記事の [タイトル] 部の色 $sub_color = "#006400"; # 記事表示部の下地の色 $tbl_color = "#FFFFFF"; # 家アイコンの使用 (0=no 1=yes) $home_icon = 1; $home_gif = "./home.gif"; # 家アイコンのファイル名 $home_wid = 16; # 画像の横サイズ $home_hei = 20; # 〃 縦サイズ # methodの形式 (POST/GET) $method = 'POST'; # 記事の更新は method=POST 限定 (0=no 1=yes) # --> 連続投稿などの荒らし対策 $MethPost = 1; # 同一IPアドレスからの連続投稿時間(秒数) # --> 連続投稿などの荒らし対策 # --> 値を 0 にするとこの機能は無効になります $wait = 60; # 1ページ当たりの記事表示数 (親記事) $p_log = 10; # 投稿があるとメール通知する (sendmail必須) # 0 : 通知しない # 1 : 通知するが、自分の投稿記事はメールしない。 # 2 : 通知する。自分の投稿記事も通知する。 $mailing = 2; # メールアドレス(メール通知する時) $mailto = 'yamasita@indsys.chuo-u.ac.jp'; # sendmailパス(メール通知する時) $sendmail = '/usr/lib/sendmail'; # 他サイトから投稿排除時に指定 (http://から書く) $base_url = ""; # 文字色の設定。 @color1 = ('800000','DF0000','008040','0000FF','C100C1','FF80C0','FF8040','000080'); @color2 = ('茶','赤','みどり','青','紫','ピンク','オレンジ','あい色'); # 投稿フォーム改行形式 (soft=手動 hard=強制) $wrap = 'soft'; # URLの自動リンク (0=no 1=yes) # --> タグ許可の場合は no とすること。 $autolink = 1; # タグ広告挿入オプション (FreeWebなど) # → の代わりに「広告タグ」を挿入する。 # → 広告タグ以外に、MIDIタグ や LimeCounter等のタグにも使用可能です。 $banner1 = ''; # 掲示板上部に挿入 $banner2 = ''; # 掲示板下部に挿入 # アクセス制限(ホスト名、IPアドレスを記述) @deny = ( "*.anonymizer.com", "cache*.*.interlog.com", "211.154.120.*", "", "", "", "", "", "" ); #---(以下は「過去ログ」機能を使用する場合の設定です)---# # # 過去ログ生成 (0=no 1=yes) $pastkey = 1; # 過去ログ用NOファイル $nofile = './pastno.dat'; # 過去ログのディレクトリ # → フルパスなら / から記述(http://からではない) # → 最後は必ず / で閉じる $pastdir = './past/'; # 過去ログ1ファイルの行数 # → この行数を超えると次ページを自動生成します $log_line = '600'; #============# # 設定完了 # #============# # メイン処理 &decode; &axs_check; if ($mode eq "howto") { &howto; } elsif ($mode eq "find") { &find; } elsif ($mode eq "usr_del") { &usr_del; } elsif ($mode eq "regist") { ®ist; } elsif ($mode eq "admin") { &admin; } elsif ($mode eq "image") { ℑ } elsif ($mode eq "past") { &past; } elsif ($mode eq "check") { ✓ } &html_log; #----------------# # アクセス制限 # #----------------# sub axs_check { # ホスト名を取得 &get_host; $flag=0; foreach (@deny) { if (!$_) { next; } $_ =~ s/\*/\.\*/g; if ($host =~ /$_/i) { $flag=1; last; } } if ($flag) { &error("アクセスを許可されていません"); } } #--------------# # 記事表示部 # #--------------# sub html_log { # クッキーを取得 &get_cookie; # フォーム長を調整 &get_agent; # ヘッダを出力 &header; # カウンタ処理 if ($counter) { &counter; } # タイトル部 print "
\n"; }
if ($title_gif eq '') {
print "$title\n";
} else {
print "\n";
}
print "
\n"; print "
| \n";
$flag=1;
}
if ($reno && !$res_flag) {
print " \n"; $res_flag=1; } elsif (!$reno && $res_flag) { $res_flag=0; } if (!$reno) { $res_num = $no; print "$sub "; print "投稿者:$name 投稿日:$date "; print "No\.$no"; print " $url \n"; print " $comment\n"; } else { print "$name > $comment ($date) "; print "No\.$no \n"; } } close(IN); if ($rf_flag) { print " |
\n"; print "
\n"; if ($back_page >= 0) { print " \n"; } if ($next_page < $i) { print " \n"; } print "
\n"; print "
\n"; print "- PetitBoard -\n"; print "