if(phpversion()>="4.1.0"){
extract($_REQUEST);
extract($_SERVER);
}
/*
* P-BBS by ToR
* http://php.s3.to
*
* 2000/12/02 pre 完成
* 2001/03/06 v1.0 完成ー
* 2001/03/11 v1.1 HTML書き出すOnOff、書き込み後Locationで飛ばす、管理モードpass→apass
* 2001/04.16 v1.2 過去ログ対応、>がつくと色変わる。デザイン変更
* 2001/04/24 v1.23 書き込み後表示関数化、ページング変更、管理モード実行後修正、ホスト表示、Re:[2]
* 2001/05/04 v1.231 クッキーをHTMLに書き出してしまうバグ修正,過去ログモードの非表示
* 2001/05/17 v1.232 文字数制限、行数制限追加
* 2001/05/27 v1.24 autolink修正、書き込み後refreshで飛ばす、編集機能(仮
* 2001/06/02 v1.25 GET投稿禁止、外部投稿禁止
* 2001/11/15 v1.26 >の後のスペース無くす。PHP3の時レスで
となるバグ修正
* 2002/05/25 v1.27 i18n削除、空白チェック修正
* 2002/02/11 v1.28 クッキーの文字化け対策
*
* シンプルな掲示板です。管理モード付
* 空のログファイルを用意して、パーミッションを606にしてください
* HTMLを書き出す場合は、そのディレクトリが707か777じゃないとダメです
*/
//-------------設定ここから-------------
/*
に入れるタイトル */
$title1 = 'P-BBS';
/* 掲示板のTOPタイトル(HTML可)*/
$title2 = 'P-BBS';
/* タグ */
$body = '';
/* 管理者用パスワード。必ず変更して下さい。*/
$admin_pass = '0123';
/* ログ保存ファイル */
$logfile = 'bbs.log';
/* TOPページをHTMLに書き出すか (yes=1 no=0)*/
$htmlw = 0;
/* 静的HTMLを書き出す場合のHTMLファイル */
$html_file = 'pbbs.html';
/* 戻り先(HOME)*/
$home = 'http://hogehoge.com';
/* 一ページあたりの表示記事数 */
$page_def = 10;
/* 最大記録件数 これを越えると古い物から過去ログへ移ります。*/
$max = 30;
/* 文字数制限(名前、題名、本文)全角だとこの半分です */
$maxn = 40;
$maxs = 40;
$maxv = 1500;
/* 本文の改行数制限 */
$maxline = 25;
/* 同一ホストからの連続投稿を制限
--> 秒数を記述するとその時間以上を経過しないと連続投稿できない*/
$w_regist = 30;
/* 文中で自動リンクするかどうか(yes=1 no=0)*/
$autolink = 1;
/* HTMLタグを有効にするか(yes=1 no=0)*/
$tag = 0;
/* タイトル無しで投稿された場合 */
$mudai = '(無題)';
/* >がついた時の色 */
$re_color = "#06979b";
/* ホストを表示するか(表示しない=0 内で表示=1 表示=2)*/
$hostview = 1;
/* 外部書き込み禁止にする?(する=1,しない=0) */
define("GAIBU", 0);
/* 使用するファイルロックのタイプ(mkdir=1 flock=2 使わない=0)*/
define("LOCKEY", 2); //通常は2でOK
/* mkdirロックを使う時はlockという名でディレクトリを作成して777にしてください */
define("LOCK" , "lock/plock"); //lockの中に作るロックファイル名
/* 過去ログ作成する? */
$past_key = 0;
/* 過去ログ番号ファイル */
$past_no = "pastno.log";
/* 過去ログ作成ディレクトリ(書き込み権限必要) */
$past_dir = "./";
/* 過去ログ一つに書き込む行数 */
$past_line= "50";
// 閲覧禁止ホスト(正規表現可
$no_host[] = 'kantei.go.jp';
$no_host[] = 'anonymizer.com';
$no_host[] = "pt$";
$no_host[] = "ph$";
$no_host[] = "my$";
$no_host[] = "th$";
$no_host[] = "rr.com";
// 使用禁止ワード
$no_word[] = '死ね';
$no_word[] = '馬鹿';
$no_word[] = 'novapublic';
$no_word[] = 'http:';
//---------設定ここまで--------------
// 禁止ホスト
if (is_array($no_host)) {
$host = gethostbyaddr(getenv("REMOTE_ADDR"));
foreach ($no_host as $user) {
if(preg_match("/$user/i", $host)){
header("Status: 204\n\n");//空白ページ
exit;
}
}
}
//---------設定ここまで--------------
function head(&$dat){ //ヘッダー表示部
global $mode,$no,$PHP_SELF,$logfile,$title1,$title2,$body,$p_bbs,$htmlw;
//クッキーを頂きます
if (get_magic_quotes_gpc()) $p_bbs = stripslashes($p_bbs);
if(!$htmlw) list($r_name,$r_mail) = explode(",", $p_bbs);
if($mode == "resmsg"|| $mode == "edit"){ //レス、編集の場合
$res = file($logfile);
$flag = 0;
while (list($key, $value) = each ($res)) {
list($rno,$date,$name,$email,$sub,$com,$url) = explode("<>", $value);
if ($no == "$rno"){ $flag=1; break; }
}
if ($flag == 0) error("該当記事が見つかりません");
if($mode == "edit"){
$r_name= $name;
$r_sub = $sub;
$r_com = $com;
$r_com = eregi_replace("
","\r",$r_com);
$r_mail= $email;
$r_url = "http://$url";
$r_no = $no;
}else{
if(ereg("Re\[([0-9]+)\]:", $sub, $reg)){
$reg[1]++;
$r_sub=ereg_replace("Re\[([0-9]+)\]:", "Re[$reg[1]]:", $sub);
}elseif(ereg("^Re:", $sub)){
$r_sub=ereg_replace("^Re:", "Re[2]:", $sub);
}else{ $r_sub = "Re:$sub"; }
$r_com = ">$com";
$r_com = eregi_replace("
","\r>",$r_com);
}
}
$head='
'.$title1.'
';
$dat=$head.$body.'