#!/usr/bin/perl

#┌─────────────────────────────────
#│ LIGHT BOARD - admin.cgi (2005/11/27)
#│ Copyright (c) KentWeb
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#│
#│ Modified by isso. May, 2006
#│ http://swanbay-web.hp.infoseek.co.jp/index.html
#└─────────────────────────────────

# 外部ファイル取り込み
require './jcode.pl';
require './init.cgi';

&agent;
&decode;
&setfile;
if ($mode eq "admin") { &admin; }
elsif ($mode eq "setup") { &setup; }
elsif ($mode eq "spam") { &spam; }
elsif ($mode eq "spammsg") { &spammsg; }
elsif ($mode eq "spamclear") { &spamclear; }
elsif ($mode eq "spamdata") { &spamdata; }
elsif ($mode eq "editspam") { &editspam; }
elsif ($mode eq "admin_repost_form") { &admin_repost_form; }
&error("不正なアクセスです");

#-------------------------------------------------
#  管理モード
#-------------------------------------------------
sub admin {
	# ログイン画面
	if ($in{'pass'} eq "") {
		&header;
		print "<div align=\"center\">\n";
		print "<h4>パスワードを入力してください</h4>\n";
		print "<form action=\"$admin\" method=\"$method\">\n";
		print "<input type=radio name=mode value=admin checked>記事\n";
		print "<input type=radio name=mode value=setup>設定<br><br>\n";
		print "<input type=password name=pass size=8>\n";
		print "<input type=submit value=\" 認証 \"></form></div>\n";
		print "</body></html>\n";
		exit;
	# 認証
	} elsif ($in{'pass'} ne $pass) {
		&error("パスワードが違います");
	}

	# 削除
	if ($in{'job'} eq "del" && $in{'no'}) {

		# ロック開始
		&lock if ($lockkey);

		# 削除記事抜き取り
		@new=();
		open(IN,"$logfile") || &error("Open Error: $logfile");
		while (<IN>) {
			($no) = split(/<>/);
			next if ($in{'no'} == $no);
			push(@new,$_);
		}
		close(IN);

		# 更新
		open(OUT,">$logfile") || &error("Write Error: $logfile");
		print OUT @new;
		close(OUT);

		# ロック解除
		&unlock if ($lockkey);

	# 修正フォーム
	} elsif ($in{'job'} eq "edit" && $in{'no'}) {

		open(IN,"$logfile") || &error("Open Error: $logfile");
		while (<IN>) {
			($no,$dat,$nam,$eml,$sub,$com,$url) = split(/<>/);
			last if ($in{'no'} == $no);
		}
		close(IN);

		&edit_form($no,$dat,$nam,$eml,$sub,$com,$url);

	# 修正実行
	} elsif ($in{'job'} eq "edit2") {

		# 入力チェック
		if ($in{'url'} eq "http://") { $in{'url'}=""; }

		# ロック開始
		&lock if ($lockkey);

		# 削除記事抜き取り
		@new=();
		open(IN,"$logfile") || &error("Open Error: $logfile");
		while (<IN>) {
			($no,$dat,$nam,$eml,$sub,$com,$url,$hos,$pwd,$tim) = split(/<>/);
			if ($in{'no'} == $no) {
				$_="$no<>$dat<>$in{'name'}<>$in{'email'}<>$in{'sub'}<>$in{'comment'}<>$in{'url'}<>$hos<>$pwd<>$tim<>\n";
			}
			push(@new,$_);
		}
		close(IN);

		# 更新
		open(OUT,">$logfile") || &error("Write Error: $logfile");
		print OUT @new;
		close(OUT);

		# ロック解除
		&unlock if ($lockkey);
	}

	# 管理画面
	&header;
	print "[<a href=\"$script?\">掲示板に戻る</a>]<br>\n";

	if (-e $spamdata) {
	print <<EOM;
<hr>
<h3>設定画面</h3>
<table border=0><tr>
<td>
<UL>
<li>NGワードの一括編集
<form action="$admin" method="$method">
<input type=hidden name=mode value="spamdata">
<input type=hidden name=action value="$mode">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value='NGワードの一括編集'><br>
</form>
</ul>
</td>
EOM
	}

	if(-s $spamlogfile) {
	print <<EOM;
<td>
<UL>
<LI>投稿拒否された迷惑投稿を閲覧できます。
<form action="$admin" method="$method">
<input type=hidden name=mode value="spam">
<input type=hidden name=action value="$mode">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value="迷惑投稿を閲覧">
</form>
</UL>
</td>
EOM
	}
	print "</tr></table>\n";

	print <<EOM;
<hr>
<h3>記事メンテナンス</h3>
<form action="$admin" method="$method">
<input type=hidden name=mode value="admin">
<input type=hidden name=pass value="$in{'pass'}">
<select name=job>
<option value="edit">修正
<option value="del">削除</select>
<input type=submit value="送信する">
<DL>
EOM

	# 記事展開
	open(IN,"$logfile") || &error("Open Error: $logfile");
	while (<IN>) {
		($no,$dat,$nam,$eml,$sub,$com,$url,$hos,$pwd) = split(/<>/);
		$nam = "<a href=\"mailto:$eml\">$nam</a>" if ($eml);
		$com =~ s/<([^>]|\n)*>//g;
		if (length($com) > 70) {
			$com = substr($com,0,70);
			$com .= "...";
		}

		print "<DT><hr><input type=radio name=no value=\"$no\">";
		print "[<b>$no</b>] <b style='color:$subcol'>$sub</b> - <b>$nam</b> ";
		print "- $dat<DD>$com <font color=\"$subcol\">&lt;$hos&gt;</font>\n";
	}
	close(IN);

	print "<DT><hr></DL></form>\n</body></html>\n";
	exit;
}

#-------------------------------------------------
#  設定処理
#-------------------------------------------------
sub setup {
	if ($in{'pass'} ne $pass) { &error("パスワードが違います"); }

	# 編集実行
	if ($in{'job'} eq "setup") {

		# チェック
		if (!$in{'home'}) { &error('戻り先の入力がありません'); }
		if (!$in{'max'}) { &error('最大記事数の入力がありません'); }
		if (!$in{'plog'}) { &error('表示件数の入力がありません'); }
		if (!$in{'b_size'}) { &error('本文文字サイズの入力がありません'); }
		if ($in{'t_img'} eq "http://") { $in{'t_img'}=""; }
		if ($in{'bg'} eq "http://") { $in{'bg'}=""; }

		# 更新
		open(OUT,">$setfile") || &error("Write Error : $setfile");
		print OUT "$in{'title'}<>$in{'t_col'}<>$in{'t_size'}<>$in{'t_face'}<>$in{'t_img'}<>$in{'bg'}<>$in{'bc'}<>$in{'tx'}<>$in{'li'}<>$in{'vl'}<>$in{'al'}<>$in{'home'}<>$in{'max'}<>$in{'subcol'}<>$in{'refcol'}<>$in{'plog'}<>$in{'b_size'}<>$in{'mail'}<>$in{'deny'}<>$in{'link'}<>$in{'wait'}<>";
		close(OUT);

		# 完了メッセージ
		&header;
		print "<div align=center><h3>設定が完了しました</h3>\n";
		print "<form action=\"$script\">\n";
		print "<input type=submit value='掲示板に戻る'></form>\n";
		print "</body></html>\n";
		exit;
	}

	&header;

	$t_img ||= "http://";
	$bg    ||= "http://";
	$home  ||= "http://";
	$b_size =~ s/\D//g;

	print <<"EOM";
[<a href="$script?">掲示板に戻る</a>]
<h3>設定画面</h3>
<UL>
<LI>修正する部分のみ変更してください。
<form action="$admin" method="$method">
<input type=hidden name=pass value="$in{'pass'}">
<input type=hidden name=mode value="setup">
<input type=hidden name=job value="setup">
<table border=0>
<tr><td colspan=2><hr></td></tr>
<tr>
  <td>タイトル名</td>
  <td><input type=text name=title size=30 value="$title"></td>
</tr>
<tr>
  <td>タイトル色</td>
  <td><input type=text name=t_col size=12 value="$t_col">
	<font color="$t_col">■</font></td>
</tr>
<tr>
  <td>タイトルサイズ</td>
  <td><input type=text name=t_size size=5 value="$t_size"> ピクセル</td>
</tr>
<tr>
  <td>タイトルフォント</td>
  <td><input type=text name=t_face size=30 value="$t_face"></td>
</tr>
<tr>
  <td>タイトル画像</td>
  <td><input type=text name=t_img size=40 value="$t_img"> （任意）</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr>
  <td>壁紙</td>
  <td><input type=text name=bg size=40 value="$bg"> （任意）</td>
</tr>
<tr>
  <td>背景色</td>
  <td><input type=text name=bc size=12 value="$bc">
	<font color="$bc">■</font></td>
</tr>
<tr>
  <td>文字色</td>
  <td><input type=text name=tx size=12 value="$tx">
	<font color="$tx">■</font></td>
</tr>
<tr>
  <td>リンク色</td>
  <td><input type=text name=li size=12 value="$li">
	<font color="$li">■</font> （未訪問）</td>
</tr>
<tr>
  <td>リンク色</td>
  <td><input type=text name=vl size=12 value="$vl">
	<font color="$vl">■</font> （訪問済）</td>
</tr>
<tr>
  <td>リンク色</td>
  <td><input type=text name=al size=12 value="$al">
	<font color="$al">■</font> （訪問中）</td>
</tr>
<tr><td colspan=2><hr></td></tr>
<tr>
  <td>記事題名色</td>
  <td><input type=text name=subcol size=12 value="$subcol">
	<font color="$subcol">■</font></td>
</tr>
<tr>
  <td>引用符色</td>
  <td><input type=text name=refcol size=12 value="$refcol">
	<font color="$refcol">■</font></td>
</tr>
<tr>
  <td>戻り先</td>
  <td><input type=text name=home size=40 value="$home"></td>
</tr>
<tr>
  <td>最大記事数</td>
  <td><input type=text name=max size=5 value="$max"></td>
</tr>
<tr>
  <td>表\示件数</td>
  <td><input type=text name=plog size=5 value="$plog">
	（1ページ当りの記事表\示数）</td>
</tr>
<tr>
  <td>本文文字</td>
  <td><input type=text name=b_size size=5 value="$b_size"> ピクセル</td>
</tr>
<tr>
  <td>URLリンク</td>
  <td>
EOM
	if ($link) {
		print "<input type=radio name=link value=1 checked>する\n",
		"<input type=radio name=link value=0>しない\n";
	} else {
		print "<input type=radio name=link value=1>する\n",
		"<input type=radio name=link value=0 checked>しない\n";
	}
	print "&nbsp;&nbsp;（記事中のURLを自動リンク）</td></tr>\n";
	print "<tr><td>投稿間隔</td><td>";
	print "<input type=text name=wait size=5 value=\"$wait\"> 秒 &nbsp; ";
	print "（同一ホストの連続投稿制御）</td></tr>\n";

	if ($sendmail) {
		print "<tr><td colspan=2><hr></td></tr>\n";
		print "<tr><td>Ｅメール</td>";
		print "<td><input type=text name=mail size=30 value=\"$mail\"><br>\n";
		print "（メール通知する場合）</td></tr>\n";
	}

	print <<"EOM";
<tr><td colspan=2><hr></td></tr>
<tr>
  <td>拒否ホスト</td>
  <td><input type=text name=deny size=40 value="$deny"><br>
	（アクセス拒否するホスト情報をスペースで区切る）</td>
</tr>
<tr><td colspan=2><hr></td></tr>
</table>
<input type=submit value="上記設定を修正する"></form>
</UL>
EOM
	if (-e $spamdata) {
	print <<EOM;
<hr>
<h3>設定画面</h3>
<UL>
<li>NGワードの一括編集
<form action="$admin" method="$method">
<input type=hidden name=mode value="spamdata">
<input type=hidden name=action value="$mode">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value='NGワードの一括編集'><br>
</form>
</ul>
EOM
	}

	if(-s $spamlogfile) {
	print <<EOM;
<UL>
<LI>投稿拒否された迷惑投稿を閲覧できます。
<form action="$admin" method="$method">
<input type=hidden name=mode value="spam">
<input type=hidden name=action value="$mode">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value="迷惑投稿を閲覧">
</form>
</UL>
EOM
	}

	print <<EOM;
</body>
</html>
EOM
	exit;
}

#-------------------------------------------------
#  スパムログ
#-------------------------------------------------
sub spam {
	# POST限定
	if ($postonly && !$post_flag) { &error("不正なアクセスです"); }

	if ($in{'pass'} eq "") { &enter; }
	elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); }

	&header;
	print <<EOM;
<UL>
<table border=0>
<tr><td><form action="$script">
<input type=submit value="掲示板に戻る">
</form>
</td><td>
<form action="$admin" method="$method">
<input type=hidden name=mode value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value=" 管理画面に戻る ">
</form>
</td></tr>
</table></div>
</UL>
<UL><li>投稿拒否ログ<br>
「再投稿処理」をクリックすると誤ってスパム投稿として拒否された投稿を復活させることができます。<br>
必用な投稿を復活させたあとは、「投稿拒否ログを削除」しておいて下さい。
<form action="$admin" method="$method">
<input type=hidden name=mode value="spamclear">
<input type=hidden name=action value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value=" 投稿拒否ログを削除する ">
</form>
EOM
	open(IN,"$spamlogfile") || &error("Open Error : $spamlogfile");
	$i=0;
	while (<IN>) {
		local ($no,$date,$name,$email,$sub,$comment,$url,$host,$pwd,$tim,
		$reason,$fcheck,$referer,$useragent) = split(/<>/);
		$date{$i}      = $date;
		$pdate{$i}     = &get_time($tim);
		$name{$i}      = $name;
		$email{$i}     = $email;
		$sub{$i}       = $sub;
		$msg{$i}       = $comment;
		$url{$i}       = $url;
		$host{$i}      = $host;
		$pwd{$i}       = $pwd;
		$tim{$i}       = $tim;
		$reason{$i}    = $reason;
		$timecheck{$i} = &encode_bbsmode($fcheck);
		if ($fcheck) { $fcheck{$i} = &get_time($fcheck); }
		else { $fcheck{$i} = "アクセス記録なし"; }
		$useragent{$i} = $useragent;
		if ($keychange) {
			if ($url{$i} && $url{$i} =~ /\@/) { ($email{$i},$url{$i})=($url{$i},$email{$i}); }
			elsif ($email{$i} && $email{$i} !~ /\@/) { ($email{$i},$url{$i})=($url{$i},$email{$i}); }
		}
		$i++;
	}
	close(IN);

	# ソート処理
	$j=0;
	$x=0;
	$page = $in{'page'};
	foreach (sort { ($date{$b} cmp $date{$a}) } keys(%date)) {
		$j++;
		if ($j < $page + 1) { next; }
		if ($j > $page + $spamlog_page) { next; }

		$useragent = "<small>$useragents</small>";
		print "<P><table border='1'>\n<tr>";
		print "<tr><td>投稿日時</td><td>$pdate{$_}</td><td>タイトル</td><td>$sub{$_}</td></tr>",
		"<tr><td>アクセス日時</td><td>$fcheck{$_}</td><td>投稿拒否理由</td><td>$reason{$_}</td></tr>",
		"<tr><td>投稿者名</td><td>$name{$_}</td><td>URL</td><td>$url{$_}</td></tr>",
		"<tr><td>ホストアドレス</td><td>$host{$_}</td><td>ブラウザ</td><td>$useragent{$_}</td></tr>",
		"<tr><td rowspan=2>メールアドレス</td><td rowspan=2>$email{$_}</td><td>投稿内容</td><td> ";
	print <<EOM;
<form action="$admin" method="$method">
<input type=hidden name=mode value="spammsg">
<input type=hidden name=action value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
<input type=hidden name=msg value="$msg{$_}">
<input type=submit value="投稿内容を閲覧">
</form></td></tr>
<tr><td>再投稿(復活)</td><td>
<form action="$admin" method="$method">
<input type=hidden name=mode value="admin_repost_form">
<input type=hidden name=pass value="$in{'pass'}">
<input type=hidden name=date  value="$date{$_}">
<input type=hidden name=name  value="$name{$_}">
<input type=hidden name=email value="$email{$_}">
<input type=hidden name=sub   value="$sub{$_}">
<input type=hidden name=msg   value="$msg{$_}">
<input type=hidden name=url   value="$url{$_}">
<input type=hidden name=host  value="$host{$_}">
<input type=hidden name=pwd   value="$pwd{$_}">
<input type=hidden name=tim   value="$tim{$_}">
<input type=hidden name=$bbscheckmode value="$timecheck{$_}">
<input type=hidden name=reason value="$reason{$_}">
<input type=submit value="再投稿処理">
</form></td></tr></table>
EOM
	}

	print "</table><br>\n";
	$next = $page + $spamlog_page;
	$back = $page - $spamlog_page;

	print "<table><tr>\n";
	if ($back >= 0) {
		print "<td><form action=\"$admin\" method=\"POST\">\n";
		print "<input type=hidden name=pass value=\"$in{'pass'}\">\n";
		print "<input type=hidden name=mode value=\"$in{'mode'}\">\n";
		print "<input type=hidden name=page value=\"$back\">\n";
		print "<input type=submit value=\"前画面\"></form></td>\n";
	}
	if ($next < $i) {
		print "<td><form action=\"$admin\" method=\"POST\">\n";
		print "<input type=hidden name=pass value=\"$in{'pass'}\">\n";
		print "<input type=hidden name=mode value=\"$in{'mode'}\">\n";
		print "<input type=hidden name=page value=\"$next\">\n";
		print "<input type=submit value=\"次画面\"></form></td>\n";
	}
	print "</tr></table>\n";
	print <<EOM;
<form action="$admin" method="$method">
<input type=hidden name=mode value="spamclear">
<input type=hidden name=action value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value=" 投稿拒否ログを削除する ">
</form>
</div>
</body>
</html>
EOM
	exit;
}

#-------------------------------------------------
#  投稿拒否ログ初期化
#-------------------------------------------------
sub spamclear {
	# POST限定
	if ($postonly && !$post_flag) { &error("不正なアクセスです"); }

	if ($in{'pass'} eq "") { &enter; }
	elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); }

	# 投稿拒否ログの削除
	unlink($spamlogfile);

	&header();
	print <<EOM;
<div align="center">
<h4>投稿拒否ログを削除しました</h4>
<table border=0>
<tr><td><form action="$script">
<input type=submit value="掲示板に戻る">
</form>
</td><td>
<form action="$admin" method="$method">
<input type=hidden name=mode value="$in{'action'}">
<input type=hidden name=action value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value=" 管理画面に戻る ">
</form>
</td></tr>
</table></div>
</div>
</body>
</html>
EOM
	exit;
}

#-------------------------------------------------
#  投稿拒否コメント
#-------------------------------------------------
sub spammsg {
	# POST限定
	if ($postonly && !$post_flag) { &error("不正なアクセスです"); }

	if ($in{'pass'} eq "") { &enter; }
	elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); }

	$in{'msg'} =~ s/&lt;br&gt;/<br>/ig;

	&header();
	print <<EOM;
<div align="center">
<h4>コメント</h4>
<div align'left'>
<P><table border='1'>
<tr><td>$in{'msg'}</td></tr>
</table><BR>
<table border=0>
<tr><td><form action="$admin" method="$method">
<input type=hidden name=mode value="spam">
<input type=hidden name=action value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value=" 投稿拒否ログ閲覧に戻る ">
</form>
</td><td>
<form action="$admin" method="$method">
<input type=hidden name=mode value="$in{'action'}">
<input type=hidden name=action value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value=" 管理画面に戻る ">
</form>
</td></tr>
</table></div>
</body>
</html>
EOM
	exit;
}

#-------------------------------------------------
#  NGワード編集
#-------------------------------------------------
sub spamdata {
	# POST限定
	if ($postonly && !$post_flag) { &error("不正なアクセスです"); }

	if ($in{'pass'} eq "") { &enter; }
	elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); }

	&header;
	print <<EOM;
<div align="left">
<table border=0>
<tr><td>
<form action="$admin" method="$method">
<input type=hidden name=mode value="$in{'action'}">
<input type=hidden name=action value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value=" 管理画面に戻る ">
</form>
</td></tr>
</table></div>
<BR>
<li>NGワードを一括登録できます(半角のカンマで区切る)。<br>
たとえば <b>http://www.hogehoge.com/sample/inde.cgi?mode=test</b> を<br>
拒否したい場合は<b> www.hogehoge.com </b>を登録します。
<form action="$admin" method="$method">
<input type=hidden name=mode value="editspam">
<input type=hidden name=action value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
EOM
	if (-e $spamdata) {
		open(IN,"$spamdata");
		$SPMLST = <IN>;
		close(IN);
	}

	print <<EOM;
<textarea name=SPMLST rows=30 cols=80 wrap=soft>$SPMLST</textarea><br>
<br>
<input type=submit value="更新する">
</form>
</ul>
</div>
</body>
</html>
EOM
	exit;
}

#-------------------------------------------------
#  NGワード更新
#-------------------------------------------------
sub editspam {

	# POST限定
	if ($postonly && !$post_flag) { &error("不正なアクセスです"); }

	if ($in{'pass'} eq "") { &enter; }
	elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); }

	$SPMLST = $in{"SPMLST"};

	# 空データ・改行・空白を削除
	$SPMLST =~ s/，/\,/g;
	$SPMLST =~ s/<br>//ig;
	$SPMLST =~ s/\n//g;
	$SPMLST =~ s/\r//g;
	$SPMLST =~ s/　//g;
	$SPMLST =~ s/\,{2,}/\,/g;
	$SPMLST =~ s/^\,{1,}//;

	open(OUT,">$spamdata") || &error("Write Error");
	print OUT $SPMLST;
	close(OUT);

	&header;

	print <<EOM;
<div align="center">
<h4>NGワードを更新しました</h4>
<BR>
<table border=0>
<tr><td>
<form action="$admin" method="$method">
<input type=hidden name=mode value="$in{'action'}">
<input type=hidden name=action value="$in{'action'}">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value=" 管理画面に戻る ">
</form>
</td></tr>
</table></div>
</body>
</html>
EOM
	exit;
}

#-------------------------------------------------
#  管理者再投稿画面
#-------------------------------------------------
sub admin_repost_form {

	# POST限定
	if ($postonly && !$post_flag) { &error("不正なアクセスです"); }

	if ($in{'pass'} eq "") { &enter; }
	elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); }
	$in{"$bbscheckmode"} = &encode_bbsmode($in{"$bbscheckmode"});
	$f_c_d = int(rand(5E07)) + 11E08;

	$in{'msg'} =~ s/<br>/\n/g;
	$in{'msg'} =~ s/&lt;br&gt;/\n/g;

	&header;
	print <<EOM;
<h3>スパム投稿として処理された下記の投稿を復活させます。</h3>
<hr>
<table border=0 cellspacing=1>
<form action="$script" method="$method">
<input type=hidden name=mode value="admin_repost">
<input type=hidden name=pass value="$in{'pass'}">
<input type=hidden name=date value="$in{'date'}">
<input type=hidden name=host value="$in{'host'}">
<input type=hidden name=pwd value="$in{'pwd'}">
<input type=hidden name=tim value="$in{'tim'}">
<input type=hidden name=$bbscheckmode value=$in{"$bbscheckmode"}>
<tr>
  <td><b>投稿拒否理由&nbsp;:&nbsp;$in{'reason'}</b><br><br></td>
</tr>
<tr>
  <td><b>お名前</b>&nbsp;:&nbsp;
    <input type=hidden name=name value="$in{'name'}" class=f>$in{'name'}</td>
</tr>
<tr>
  <td><b>Ｅメール</b>&nbsp;:&nbsp;
    <input type=text name=email size=28 value="$in{'email'}"></td>
</tr>
<tr>
  <td><b>タイトル</b>&nbsp;:&nbsp;
    <input type=hidden name=sub value="$in{'sub'}" class=f>$in{'sub'}
  </td>
</tr>
<tr>
  <td>
    <b>メッセージ</b><br>
    <textarea cols=56 rows=7 name=comment wrap="soft" class=f>$in{'msg'}</textarea>
  </td>
</tr>
<tr>
  <td><input type=hidden name=$formcheck value="$f_c_d">
  </td>
</tr>
<tr>
  <td><b>参照先</b>&nbsp;:&nbsp;
  <input type=text name=url size=50 value="$in{'url'}" class=f></td>
</tr>
</table>
<table><tr><td>
<input type=submit value="投稿復活処理する">
</form>
</td>
<td><form action="$admin" method="$method">
<input type=hidden name=mode value="spam">
<input type=hidden name=pass value="$in{'pass'}">
<input type=submit value=" 投稿拒否ログ閲覧に戻る ">
</form>
</td></tr></table>
</body>
</html>
EOM
	exit;
}

__END__

