#!/usr/bin/perl #┌───────────────────────────────── #│ [ YY-BOARD ] #│ yybbs.cgi - 2007/09/17 #│ Copyright (c) KentWeb #│ webmaster@kent-web.com #│ http://www.kent-web.com/ #│ #│ YY-BOARD Antispam Version Modified by isso. #│ http://swanbay-web.hp.infoseek.co.jp/index.html #└───────────────────────────────── # 外部ファイル取込 require './init.cgi'; require $jcode; #------------------------------------------------- # 設定チェック #------------------------------------------------- if(!$writevalue || !$postvalue) { &error("init.cgiファイルが正しく転送されていないか設定値が正しくありません。"); } if($writevalue eq $postvalue) { &error("\$writevalueと\$postvalueの文字は同じにしないでください"); } # データ用ディレクトリ unless(-d "./data/") { mkdir ("./data/", 0707) || die "ディレクトリを作成できません : $!"; } # ログファイル unless(-e "$logfile") { &error("ログファイル $logfile がありません。"); } # 過去ログデータファイル if($pastkey) { unless(-e "$nofile") { &error("過去ログデータファイル $nofile がありません。"); } } # カウンターデータファイル unless(-e "$cntfile") { &error("カウンターデータファイル $cntfile がありません。"); } # Webmail認証用ディレクトリ if($webmail){ unless(-d "$mailchk") { mkdir ($mailchk, 0707) || die "ディレクトリを作成できません : $!"; } # ディレクトリ内を掃除 opendir DIR, $mailchk; my @files = grep { !m/^(\.|\.\.|$sendmaillog)$/g } readdir DIR; close DIR; foreach (@files) { my $wt = (stat "$mailchk$_")[9]; if (time - $wt > $maxtime) { unlink ("$mailchk$_"); } } } # カラーデータファイル if($boardmode) { unless(-e "$colorfile") { open(OUT,">>$colorfile"); print OUT "0"; close(OUT); } unless(-e "$colordata") { &error("カラーデータファイル $colordata がありません。"); } } # 表示モード設定 if ($boardmode && -s "$colordata") { &read_color; } # 投稿キー暗号用パスワードチェック if ($regist_key) { if (!$pcp_passwd) { &error("投稿キー暗号用パスワード \$pcp_passwd が設定されていません。"); } } #------------------------------------------------- # メイン処理 #------------------------------------------------- &agent; &decode; &axsCheck; # 自動閉鎖 if ($clday) { my $last = (stat $logfile)[9]; if (abs(time - $last) > $clday*24*3600) { &header; &pseudo; &autoclose; } } if ($mode eq "find") { &find; } elsif ($mode eq "image") { ℑ } elsif ($mode eq "form") { require $formpl; &postform; } elsif ($mode eq "past") { require $pastlogpl; &past_log; } elsif ($mode eq "howto") { require $howtopl; &howto; } elsif ($mode eq "check") { require $checkpl; ✓ } elsif ($mode eq "noscript") { require $howtopl; &noscript; } elsif ($mode eq "writemail") { require $webmailpl; &writemail; } elsif ($mode eq "sendmail") { require $webmailpl; &sendmail; } elsif ($mode eq "postform") { require $formpl; &postform; } elsif ($mode eq "wana") { &wana; } # 携帯対応改造 elsif ($keitai ne 'p' && $mode eq "knew") { &k_new; } elsif ($keitai ne 'p' && $mode eq "klist") { &k_list; } elsif ($keitai ne 'p' && $mode eq "klview") { &k_view; } elsif ($keitai ne 'p' && $mode eq "kaview") { &k_msg; } elsif ($keitai ne 'p' && $mode eq "kmsgview") { &k_msg; } elsif ($keitai ne 'p' && $mode eq "k_admin") { &k_new; } elsif ($keitai ne 'p' && $mode eq "newpost") { &k_form; } elsif ($keitai ne 'p' && $mode eq "admin" && $in{'no'}) { &k_dele; } &log_view; #------------------------------------------------- # 記事表示部 #------------------------------------------------- sub log_view { # 携帯モード if (-e "$kscript" && $keitai ne 'p') { &k_list; } # ページ繰越 local($resfm); foreach ( keys(%in) ) { if (/^page_(\d+)$/) { $page = $1; } if (/^res_(\d+)$/) { $resfm = $1; last; } } # 返信フォーム押下 if ($resfm) { &res_form; } # クッキー取得 local($cnam,$ceml,$curl,$cpwd,$cico,$ccol,$csmail,$caikotoba,$cref) = &get_cookie; &set_cookie($cnam,$ceml,$curl,$cpwd,$cico,$ccol,$csmail,$caikotoba,$cref); # ヘッダを出力 if ($ImageView == 1) { &header('ImageUp'); } else { &header; } # カウンタ処理 if ($counter) { &counter; } # ダミー &pseudo; # 投稿キー local($str_plain,$str_crypt); if ($regist_key) { require $regkeypl; ($str_plain,$str_crypt) = &pcp_makekey; } # タイトル部 print qq|
\n"; }
if ($t_img eq '') {
print qq|$title\n|;
} else {
print qq|\n|;
}
# 表示ヘッダ
print qq|$header
\n|;
# スパムログチェック
if (-s $spamlogfile) {
open(IN,"<$spamlogfile");
eval { flock(IN, 2); };
my @spmlog =
\n
\n|;
print qq||;
print qq|$postmodeログが許容数を超えました。管理モードから$postmodeログを削除して下さい。|;
print qq|
\n
\n|;
}
}
# 表示初期設定
if (!$in{'list'}) { $in{'list'} = $list_ini; }
# メニュー部
if ($boardmode) {
if (!defined($list_type{$in{'list'}})) {
if (defined($list_type{$view_type})) {
$in{'list'} = $view_type;
} else {
$in{'list'} = 'thread';
}
}
print qq|
\n|; print qq|\n\n|; } else { print qq|\n
| Page:\n|; &mvbtn("$bbscgi?page=", $i, $pglog{$in{'list'}}); print qq| |
| \n|; } print qq| | \n