#!/usr/bin/perl require './jcode.pl'; # タイトル名を指定 $title = ""; # タイトルの色 $t_color = ""; # タイトルの大きさ(ポイント数:スタイルシートで有効) $t_size = ''; # タイトル文字のフォントタイプ $t_face = ""; # 本文の文字大きさ(ポイント数:スタイルシートで有効) $b_size = '10pt'; # 壁紙を指定する場合(http://から指定) $backgif = ""; # 背景色を指定 $bgcolor = "#ffFFff"; # 文字色を指定 $text = "#000000"; # リンク色を指定 $link = "#0000FF"; # 未訪問 $vlink = "#800080"; # 訪問済 $alink = "#FF0000"; # 訪問中 # 戻り先のURL (index.htmlなど) $homepage = ""; # 最大記事数 $max = 1000; # 管理者用マスタパスワード (英数字で8文字以内) $pass = '1235'; # アイコン画像のある「ディレクトリ」 # → フルパスなら http:// から記述する # → 最後は必ず / で閉じる $imgurl = "./img/"; # アイコンを定義(上下は必ずペアで) @icon1 = (''); @icon2 = (''); # 管理者専用アイコン機能 (0=no 1=yes) # → 【使い方】記事投稿時に「管理者アイコン」を選択し、パスワードに # 「管理用パスワード」を入力して下さい。 $my_icon = 0; # 管理者専用アイコンの「ファイル名」を指定 $my_gif = 'admin.gif'; # アイコンモード (0=no 1=yes) $icon_mode = 0; # 返信がつくと親記事をトップへ移動 (0=no 1=yes) $topsort = 0; # タイトルにGIF画像を使用する時 (http://から記述) $title_gif = ""; $tg_w = 150; # GIF画像の幅 (ピクセル) $tg_h = 50; # 〃 高さ (ピクセル) # ファイルロック形式 # → 0=no 1=symlink関数 2=mkdir関数 $lockkey = 0; # ロックファイル名 $lockfile = './lock/yybbs.lock'; # ミニカウンタの設置 # → 0=no 1=テキスト 2=GIF画像 $counter = 0; # ミニカウンタの桁数 $mini_fig = 6; # テキストのとき:ミニカウンタの色 $cnt_color = "#DD0000"; # GIFのとき:画像までのディレクトリ # → 最後は必ず / で閉じる $gif_path = "./img/"; $mini_w = 8; # 画像の横サイズ $mini_h = 12; # 画像の縦サイズ # カウンタファイル $cntfile = './count.dat'; # スクリプトのファイル名 # → フルパスで指定する場合は http:// から記述 $script = './mailfoam.cgi'; # ログファイルを指定 # → フルパスで指定する場合は / から記述 $logfile = './cpp7888.log'; # メールアドレスの入力必須 (0=no 1=yes) $in_email = 0; # 記事 [タイトル] 部の長さ (全角文字換算) $sub_len = '12'; # 記事の [タイトル] 部の色 $sub_color = "#006400"; # 記事表示部の下地の色 $tbl_color = "#FFFFff"; # 家アイコンの使用 (0=no 1=yes) $home_icon = 0; $home_gif = "home.gif"; # 家アイコンのファイル名 $home_wid = 16; # 画像の横サイズ $home_hei = 20; # 〃 縦サイズ # イメージ参照画面の表示形態 # 1 : JavaScript # 2 : HTML (JavaScriptが不安定なブラザが多い場合はこちら) $ImageView = 2; # イメージ参照画面のサイズ (JavaScriptの場合) $img_w = 550; # 横幅 $img_h = 450; # 高さ # 記事の更新は method=POST 限定 (0=no 1=yes) # → セキュリティ対策 $MethPost = 1; # 同一IPアドレスからの連続投稿時間(秒数) # → 連続投稿などの荒らし対策 # → 値を 0 にするとこの機能は無効になります $wait = 10; # 1ページ当たりの記事表示数 (親記事) $p_log = 15; # 投稿があるとメール通知する (sendmail必須) # 0 : 通知しない # 1 : 通知するが、自分の投稿記事はメールしない。 # 2 : 通知する。自分の投稿記事も通知する。 $mailing = 0; # メールアドレス(メール通知する時) $mailto = 'xxx@xxx.xxx'; # sendmailパス(メール通知する時) $sendmail = '/usr/lib/sendmail'; # 他サイトから投稿排除時に指定 (http://から書く) $base_url = ""; # 文字色の設定。 @COLORS = (''); # URLの自動リンク (0=no 1=yes) $autolink = 1; # タグ広告挿入オプション # → の代わりに「広告タグ」を挿入する。 # → 広告タグ以外に、MIDIタグ や LimeCounter等のタグにも使用可能です。 $banner1 = ''; # 掲示板上部に挿入 $banner2 = ''; # 掲示板下部に挿入 # アクセス制限(ホスト名、IPアドレスを記述) @deny = ( "", "", "", "", "", "", "", "", "" ); # 投稿後の処理 # → 掲示板自身のURLを記述しておくと、投稿後リロードします # → ブラウザを再読み込みしても二重投稿されない措置。 # → Locationヘッダの使用可能なサーバのみ $location = ''; #---(以下は「過去ログ」機能を使用する場合の設定です)---# # # 過去ログ生成 (0=no 1=yes) $pastkey = 0; # 過去ログ用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 "usr_edt") { &usr_edt; } elsif ($mode eq "regist") { ®ist; } elsif ($mode eq "res") { &res_form; } 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; local($flag)=0; foreach (@deny) { if (!$_) { next; } s/\*/\.\*/g; if ($host =~ /$_/i) { $flag=1; last; } } if ($flag) { &error("アク禁中"); } } #--------------# # 記事表示部 # #--------------# sub html_log { local($no,$reno,$date,$name,$mail, $sub,$comment,$url,$host,$pw,$color,$icon,$p_flag); # クッキーを取得 local($cnam,$ceml,$curl,$cpwd,$cico,$ccol) = &get_cookie; # ヘッダを出力 if ($ImageView == 1) { &header('ImageUp'); } else { &header; } # カウンタ処理 if ($counter) { &counter; } # タイトル部 print "
\n"; }
if ($title_gif eq '') {
print "$title\n";
} else {
print "\n";
}
print "
\n";
print <<"EOM";
\n"; print "
\n"; # ページ区切り処理 $start = $page + 1; $end = $page + $p_log; # 記事を展開 open(IN,"$logfile") || &error("Open Error : $logfile"); $top =; $i=0; $flag=0; while ( ) { ($no,$reno,$date,$name,$mail,$sub, $comment,$url,$host,$pw,$color,$icon) = split(/<>/); if ($reno eq "") { $i++; } if ($i < $start) { next; } if ($i > $end) { next; } # 題名の長さ if (length($sub) > $sub_len*2) { $sub = substr($sub,0,$sub_len*2); $sub .= "..."; } if ($mail) { $name = "$name"; } if ($home_icon && $url) { $url = " "; } elsif (!$home_icon && $url) { $url = "<HOME>"; } if (!$icon_mode) { $comment = "
$comment"; } if (!$reno && $flag) { print "\n"; $flag=1; } if (!$reno) { print "\n"; $flag=1; } if ($reno) { print "\n"; } print "\n"; if ($reno) { print ""; } print ""; if (!$reno) { print ""; } else { print " "; } print ""; print "\n"; if (!$reno) { print "\n"; } else { print "\n"; } print "\n"; if ($reno) { print "\n"; } # アイコンモード if ($icon_mode) { print ""; } print "\n"; } close(IN); print "\n"; $next_page = $page + $p_log; $back_page = $page - $p_log; $p_flag=0; print "
\n"; if ($back_page >= 0) { $p_flag=1; print " \n"; } if ($next_page < $i) { $p_flag=1; print "\n"; print "\n"; print "\n"; print "\n"; } # ページ移動ボタン表示 if ($p_flag) { print "\n"; $x=1; $y=0; while ($i > 0) { if ($page == $y) { print "\n"; } else { print "\n"; } $x++; $y = $y + $p_log; $i = $i - $p_log; } print "\n"; } print "\n \n"; # 著作権表示(削除不可) print "\n"; print "\n