#!/usr/local/bin/perl
#┌─────────────────────────────────
#│ Web Forum v5
#│ admin.cgi - 2007/02/16
#│ 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 $cgi_lib;
require $uploadpl;
# カラーデータファイル
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 && -s "$colordata") { &read_color; }
# 利用者色選択
if (!$boardmode && $usercolor) { &color_data; }
&agent;
&decode;
$in{"$bbscheckmode"} = &decode_bbsmode($in{"$bbscheckmode"});
if ($in{'pass'} eq "") { &enter; }
elsif ($mode eq "edit" && $in{'no'}) { &edit; }
elsif ($mode eq "edit2" && $in{'no'}) { &edit2; }
elsif ($mode eq "dele" && $in{'no'}) { &dele; }
elsif ($mode eq "Maintenance") { &Maintenance; }
elsif ($mode eq "sage") { &sage; }
elsif ($mode eq "spam") { &spam; }
elsif ($mode eq "error") { &spam; }
elsif ($mode eq "spammsg") { &spammsg; }
elsif ($mode eq "spamclear") { &spamclear; }
elsif ($mode eq "spamdata") { &spamdata; }
elsif ($mode eq "editspam") { &editspam; }
elsif ($mode eq "deltempimg") { &deltempimg; }
elsif ($mode eq "admin_repost_form") { &admin_repost_form; }
elsif ($mode eq "reopen") { &reopen; }
elsif ($mode eq "sendmaillog") { &sendmaillog; }
elsif ($mode eq "maillogclear") { &maillogclear; }
elsif ($mode eq "htmllog") { require $pasthtmlpl; &htmllog; }
elsif ($mode eq "set_cmode") { &set_cmode; }
elsif ($mode eq "cmode") { &save_cmode; }
elsif ($mode eq "chcolor") { &change_color; }
elsif ($mode eq "color_clear") { &color_clear; }
elsif ($mode eq "usercolor") { &usercolor; }
elsif ($mode eq "u_color_change") { &u_color_change; }
elsif ($mode eq "change_mode") { &change_mode; }
&loglist;
#-------------------------------------------------
# リスト画面
#-------------------------------------------------
sub loglist {
local($no,$re,$lx,$sub,$eml,$url,$nam,$dat,$msg,$t,
$hos,$pw,$wr,$oya,$sml,$res,$col,$ext,$wi,$hi,$id,$uni);
if ($in{'pass'} ne $pass) { &error("パスワードが違います"); }
&header;
print <
|
|
EOM
if ($boardmode) {
print <
EOM
} elsif ($usercolor) {
print <
EOM
}
# 掲示板再開
if ($clday) {
my $last = (stat $logfile)[9];
if (time - $last > $clday*24*3600) {
print <
EOM
}
}
if(-s $er_log) {
my $i = 0;
open(IN,"$er_log");
while () {
$i++;
}
close(IN);
print <
EOM
}
if (-e $spamdata) {
print <
EOM
}
if(-s $spamlogfile) {
my $i = 0;
open(IN,"$spamlogfile");
while () {
$i++;
}
close(IN);
print <
EOM
}
if($webmail && (-e "$mailchk$sendmaillog")) {
print <
EOM
}
print <
\n";
} else {
print "\n";
print "\n";
}
print <
- 登録した先頭記事番号のツリーを強制的にsage指定できます。
EOM
if($pastloghtml) {
print <
過去ログの新規追加分をhtmlファイル化します。
過去ログが多いときはかなり時間がかかります。
保守点検モードにしてから行ってください。
html過去ログファイルリストはこちらに作成されます。
EOM
}
# 未公開添付ファイルの削除
open(IN,"$logfile");
my @lines = ;
eval { flock(IN, 1); };
close(IN);
my $top = shift(@lines);
my ($count,$ip,$tim) = split(/<>/, $top);
opendir DIR,"$imgdir";
@files = grep { /(\.\w+)$/ } readdir DIR;
close DIR;
my $i = 0;
my @temp = ();
my @uptime = ();
my @ex = ();
foreach (@files) {
($uptime[$i],$ex[$i]) = split(/\./, $_);
if ($uptime[$i] > $count) {
push (@temp,"$_");
}
$i++;
}
if (@temp) {
print <
未公開添付ファイルの削除
エラーログやスパムログを削除すると自動的に下記の不要ファイルは削除されますが、
「削除」をクリックして、下記の不要ファイルを直接削除することもできます。
EOM
my ($wi, $hi);
my $files = "";
my $imgcheck = 0;
require $uploadpl;
foreach (@temp) {
$files = "$imgdir$_";
if ($files =~ /(\.\w+)$/) {
$ext = $1;
}
# 画像サイズ取得
if ($ext eq ".jpg") {
($wi, $hi) = &JpegSize("$files");
$imgcheck = 1;
} elsif ($ext eq ".gif") {
($wi, $hi) = &GifSize("$files_");
$imgcheck = 1;
} elsif ($ext eq ".png") {
($wi, $hi) = &PngSize("$files");
$imgcheck = 1;
} else {
$imgcheck = 0;
}
my $size = int(( -s "$files" )/1000);
$size = ($size < 1000) ? ($size)."kB" : (int(($size+50)/100)/10)."MB";
if ($imgcheck) {
$size = qq|$wi×$hi $size|;
}
print <このファイル[ $_ ($size) ]を
|
|
EOM
}
print "
\n\n
";
}
print "";
if ($in{'sort'} eq "new") {
print "- 通常表\示に切り替えます。\n";
} else {
print "
- 新着表\示順に切り替えます。\n";
}
print "
";
print <
処理を選択して送信ボタンを押してください。
ツリーの先頭記事を削除すると、ツリーごと一括削除されます。
\n";
$next = $page + $p_tree;
$back = $page - $p_tree;
print "\n";
if ($back >= 0) {
print " | \n";
}
if ($next < $i) {
print " | \n";
}
print <