#!/usr/local/bin/perl
#┌─────────────────────────────────
#│ Web Forum v5
#│ wforum.cgi - 2007/02/14
#│ Copyright (c) KentWeb
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#│
#│ Antispam Version Modified by isso.
#│ http://swanbay-web.hp.infoseek.co.jp/index.html
#└─────────────────────────────────
# 外部ファイル取込み
require './init.cgi';
require $jcodepl;
require $foldpl;
require $cgi_lib;
#-------------------------------------------------
# 設定チェック
#-------------------------------------------------
if(!$writevalue || !$postvalue) {
&error("init.cgiファイルが正しく転送されていないか設定値が正しくありません。");
}
if($writevalue eq $postvalue) {
&error("\$writevalueと\$postvalueの文字は同じにしないでください");
}
# ログファイル
unless(-e "$logfile") {
&error("ログファイル $logfile がありません(wf_log.cgi → log.cgiにファイル名変更)。");
}
# 過去ログデータファイル
if($pastkey) {
unless(-d "$pastdir") {
mkdir ($pastdir, 0707) || die "$pastdir ディレクトリを作成できません : $!";
}
unless(-e "$nofile") {
&error("過去ログデータファイル $nofile がありません。");
}
}
# 添付ファイル用ディレクトリ
if($upload){
unless(-d "$imgdir") {
mkdir ($imgdir, 0707) || die "$imgdir ディレクトリを作成できません : $!";
}
if ($imgurl) {
if ($imgurl ne $imgdir) {
unless(-d "$imgurl") {
mkdir ($imgurl, 0707) || die "$imgurl ディレクトリを作成できません : $!";
}
}
} else {
$imgurl = $imgdir;
}
}
# 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 (-e "$colorfile") {
open(COL,"$colorfile");
$boardmode =
;
close(COL);
} else {
open(OUT,">>$colorfile");
print OUT "0";
close(OUT);
$boardmode = 0;
}
unless(-e "$colordata") {
&error("カラーデータファイル $colordata がありません。");
}
if(!$boardmode) {
# 利用者色選択
if ($usercolor) { &color_data; }
}
# 表示モード設定
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;
}
}
# メンテナンスモードで過去ログのhtmlファイル作成用(ファイル作成後削除可)
if ($mode eq "allread" && $in{'pastlog'} && $in{'act'} eq 'past') { require $allreadpl; &allread; }
if (-e "maintenance") { &mainte; }
elsif ($mode eq "msgview") { &msgview; }
elsif ($mode eq "allread") { require $allreadpl; &allread; }
elsif ($mode eq "find") { require $searchpl; &find; }
elsif ($mode eq "past") { require $pastlogpl; &past_view; }
elsif ($mode eq "fullsize") { require $messagepl; &fullsize; }
elsif ($mode eq "exif") { require $messagepl; &exif; }
elsif ($mode eq "newpost") { require $formpl; &newpost; }
elsif ($mode eq "check") { require $checkpl; ✓ }
elsif ($webmail && $mode eq "writemail") { require $webmailpl; &writemail; }
elsif ($webmail && $mode eq "sendmail") { require $webmailpl; &sendmail; }
elsif ($mode eq "note") { require $howtopl; ¬e; }
elsif ($mode eq "sage") { require $howtopl; &sage; }
elsif ($mode eq "noscript") { require $howtopl; &noscript; }
elsif ($mode eq "select") { require $colorpl; &selectcolor; }
elsif ($mode eq "change") { require $colorpl; &changecolor; }
elsif ($mode eq "initialized_color") { require $colorpl; &initialized_color; }
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 "dele" && $in{'no'}) { &k_dele; }
elsif ($keitai ne 'p' && $mode eq "newpost") { &k_form; }
&list_view;
#-------------------------------------------------
# リスト表示
#-------------------------------------------------
sub list_view {
# 携帯モード
if (-e "$kscript" && $keitai ne 'p') {
if ($list_ini eq "tree") { &k_list; } else { &k_new; }
}
&header;
# 表示形式設定
if (!$in{'list'}) { $in{'list'} = $list_ini; }
if ($fpage) {$fpage = $page;}
if ($phlist && !$fpage) { print "$pheader\n"; }
print "\n";
# タイトル部
if ($t_img) {
print "
\n";
} else {
print "
$title\n";
}
# ダミー
&pseudo;
# スパムログチェック
if (-s $spamlogfile) {
open(IN,"<$spamlogfile");
eval { flock(IN, 2); };
my @spmlog =
;
close(IN);
if ($#spmlog >= $spamlog_max) {
print qq|
\n
\n|;
print qq||;
print qq|$postmodeログが許容数を超えました。管理モードから$postmodeログを削除して下さい。|;
print qq|
\n
\n|;
}
}
# メニュー部
if ($boardmode) {
print "\n";
print "\n",
"\n";
# 新規投稿表示
if ($in{'list'} eq "tree") {
print "\n";
} elsif ($in{'list'} eq 'newsort' && !$form_newsort) {
print "\n";
} elsif ($in{'list'} eq 'new' && !$form_new) {
print "\n";
} else {
print "\n";
}
print "\n";
print "\n";
print "\n";
print "\n";
print "\n";
print "\n" if ($pastkey);
print "\n";
print "
\n";
print "\n";
} else {
print " \n",
"\n",
"[ホーム]\n";
if ($in{'list'} eq "tree") {print "[新規投稿]\n";
} elsif ($in{'list'} eq 'newsort' && !$form_newsort) {
print "[新規投稿]\n";
} elsif ($in{'list'} eq 'new' && !$form_new) {
print "[新規投稿]\n";
} else {print "[新規投稿]\n";}
print "[タイトル表\示]\n",
"[ツリー表\示]\n",
"[新着記事]\n";
print "[留意事項]\n",
"[ワード検索]\n";
print "[過去ログ]\n" if ($pastkey);
print "[表\示色変更]\n" if($usercolor);
print "[管理用]\n",
"
\n";
}
if ($in{'list'} =~ /new/ ) {
print "『インナーチャイルドが叫んでる!』『愛じゃ!人生をかけて人を愛するのじゃ!』関連の掲示板です。\n";
print "「インナーチャイルド体験談」などのご投稿もお待ちしています。\n";
print "以下は新規投稿順のリスト(投稿記事)表\示です。\n";
} else {
print "『インナーチャイルドが叫んでる!』『愛じゃ!人生をかけて人を愛するのじゃ!』関連の掲示板です。\n";
print "「インナーチャイルド体験談」などのご投稿もお待ちしています。\n";
print "ツリー先頭部の $treehead をクリックすると関連記事を一括表\示します。\n";
}
# 掲示板の注意書き表示
foreach (0 .. $#attention) {
print "$attention[$_]\n";
}
print " | \n";
# ログを開く
if (-s $logfile) {
if (!$page) {
if ($alltitle) {
if ($in{'list'} eq "tree") {
&SubjectList;
}
}
}
}
if ($in{'list'} eq "new") { require $newsort; &ListNewOpen; }
elsif ($in{'list'} eq "newsort") { require $newsort; &newsort; }
else { &ListTreeOpen; }
# 著作権表示(削除禁止)
print "\n \n |