#!/usr/local/bin/perl

#====================================================================
# File name: lightex.cgi v1.00 [KENT氏のlight.cgi v5.7を母体]
# Copyright: ツー (e-mail: yama2-db@ipc-tokai.or.jp)
#                 (URL: http://yama2-db.cside.com/
#
# 	Ver 0.01  lightex.cgi	2002/08/12	light.cgi(v5.7)を母体に改造。
#										(EZweb[WAP2.0用]対応),Cookie変更
#	Ver 0.10				2002/08/22	EZweb[WAP2.0非対応機],
#										i-mode/J-sky対応
#	Ver 0.11				2002/08/27	ドットi対応
#	Ver 1.00				2002/09/05	過去ログが欠落してしまう場合があるのを修正
#										(最大記事数の設定を以前より小さくした場合)
# 	Ver 1.10				2002/09/09	絵文字削除機能サポート。
# 										投稿時に絵文字を削除するか表示時に削除するかを選択可能。
#   Ver 1.1a				2002/10/22	PCにおいて投稿文を表示した際、URLの記述がない投稿文に対して
#										それより新しい投稿文のURLを表示してしまう不具合対策。
#										なお、データログには問題はありません。
# 	Ver 1.1b				2004/08/10	i-mode/Vodafoneにおいてエラーが発生するとフッターのみが
#										表示されてしまう不具合を対策。
# 	Ver 1.1c				2004/11/07	Vodafoneにおいて次頁キー、前頁キーともに表示される場合でも
#										前頁キーしか表示されない不具合対策(旧J-PHONE機では問題なし）
# 	Ver 1.20				2006/04/06	Vodafone3G端末サポート,禁止サーバ設定サポート
#	Ver 1.21 bara1			2006/04/24	キーワードサポート
#
#====================================================================
# [母体の著作権]
#┌─────────────────────────────────
#│ LIGHT BOARD v5.7 (2002/08/01)
#│ Copyright(c) KENT WEB 2002
#│ E-MAIL: webmaster@kent-web.com
#│ WWW: http://www.kent-web.com/
#└─────────────────────────────────
$ver = 'LIGHT v5.7';
$verex = 'LIGHTex v1.21bata1';
#┌─────────────────────────────────
#│[ 注意事項 ]
#│ 1.このスクリプトはフリーソフトです。このスクリプトを使用した
#│   いかなる損害に対して作者はその責任を一切負いません。
#│ 2.設置に関する質問はサポート掲示板にお願いいたします。メールに
#│   よる質問にはお答えできません。
#└─────────────────────────────────
#
# [設置例] かっこ内はパーミッション
#    public_html / index.html (ホームページ)
#       |
#       +-- light / lightex.cgi  [755]
#             |     light.log    [666]
#             |     jcode.pl     [644]
#             |     light2ex.cgi [755] .. 補助プログラム(過去ログ/ログ編集)
#             |     pastno.dat   [666] .. 過去ログ用カウントファイル
#             |
#             +-- lock [777] /
#             |
#             +-- past [777] / ... (過去ログ用)
#------------------------------------------------------------------------------
# 事前処理（ブラウザ種別確認）
#------------------------------------------------------------------------------
$u_agent = $ENV{'HTTP_USER_AGENT'};
$u_msname = $ENV{'HTTP_X_JPHONE_MSNAME'};
if (($u_agent =~ /UP\.Browser\//) && ($u_msname eq "")) {
 if ($u_agent =~ /(GUI)/) 					{ $agent = 6; }	# EZweb(WAP2.0)
 else 										{ $agent = 1; }} #EZweb
elsif ($u_agent =~ /UPSim/)					{ $agent = 1; }	# UP.Simulator
elsif ($u_agent =~ /^OPWV-GEN-99\/UNI10/) 	{ $agent = 6; } # EZweb
elsif ($u_agent =~ /DoCoMo\//)				{ $agent = 2; } # i-mode
elsif (($u_agent =~ /J-PHONE\//) || ($u_agent =~ /Vodafone\//) || ($u_agent =~ /^MOT/))
											{ $agent = 3; } # J-Sky,Vodafone
elsif ($u_agent =~ /ASTEL\//)				{ $agent = 4; } # ドットi
#elsif ($u_agent =~ /PDXGW\/\d\.\d/)		{ $agent = 5; } # H"
else										{ $agent = 0; } # PC

#==================#
#  設定項目(共通)  #
#==================#

# 文字コード変換ライブラリ
require './jcode.pl';

# 管理者用マスタパスワード(半角英数字)
$pass = 'fksmysyk';

# 過去ログ機能 (0=no 1=yes) : light2.cgi必須
$pastkey = 1;

# 過去ログのあるディレクトリ
$past_dir  = "./past";

# 過去ログカウントファイル
$nofile = './pastno.dat';

# 過去ログ１ファイル当りの行数の限度
$log_line  = '150';

# 補助プログラムのファイル名
$light2 = './bbs1.cgi';

# URLの自動リンク (0=no 1=yes)
$autolink = 1;

# 日付のタイプ (0=洋式 1=和式)
$date_type = 0;

# スクリプト名
$script  = './bbs.cgi';

# スクリプトアドレス
$fscript = 'http://www.ban-ban-bazar.com/hw/cgibin/bbs/bbs.cgi';

# ログファイル名
$logfile = './light.log';

# ファイルロック形式
#  → 0=no 1=symlink関数 2=mkdir関数
$lockkey = 2;

# ロックファイル名
$lockfile = './lock/light.lock';

# コメント欄改行形式 (soft=手動 hard=強制)
$wrap = 'soft';

# sendmailパス（メール通知する時）
$sendmail = '/usr/lib/sendmail';

# 自分の記事をメール送信する (0=no 1=yes)
$mail_me = 0;

# 他サイトから投稿排除する時 (http://からURLを記述)
$base_url = ".";

# 携帯専用の絵文字の表示
# 0:絵文字投稿を認めない[推奨]
# (メッセージが絵文字付きで投稿の場合書き込み処理時削除)
# 1:同一キャリアにおいて表示する。そのほかは表示しない。
# (書き込みは投稿通り。表示時同じキャリアのメッセージの絵文字のみ表示)
$emojimode = 0;

#============#
#  設定完了  #
#============#

## LIGHT BOARDのメイン処理
&decode;
if ($agent == 1)	{ &wap_main; }	# EZweb端末用処理
elsif ($agent == 2)	{ &c_main; }	# i-mode端末用処理
elsif ($agent == 3)	{ &c_main; }	# J-Sky端末用処理
elsif ($agent == 4)	{ &c_main; }	# ドットi端末用処理
elsif ($agent == 6) { &wap2_main; } # EZwebWAP2.0端末処理
else			 	{ &pc_main; }	# PC端末用処理
exit;

#--------------------------------------------------------------------
# 基本処理（PC）
#--------------------------------------------------------------------
sub pc_main {
	if ($mode eq "howto") {
		&howto;
	} elsif ($mode eq "find") {
		&find;
	} elsif ($mode eq "usr_del") {
		&usr_del;
	} elsif ($mode eq "msg") {
		&regist;
	}
	&html_log;
}

#--------------------------------------------------------------------
# 基本処理(EZweb WAP2.0用)　V1.00
#--------------------------------------------------------------------
sub wap2_main {
	if ($mode eq "howto") {
		&wap2_howto;
	} elsif ($mode eq "find") {
		&wap2_find;
	} elsif ($mode eq "find_view") {
		&wap2_find_view;
	} elsif ($mode eq "usr_del") {
		&usr_del;
	} elsif ($mode eq "msg") {
		&regist;
	} elsif ($mode eq "frm") {
		&wap2_form;
	} elsif ($mode eq "res") {
		&wap2_form;
	}
	&wap2_html_log;
}

#--------------------------------------------------------------------
# 基本処理(EZweb用)　V1.10
#--------------------------------------------------------------------
sub wap_main {
	if ($mode eq "howto") {
		&wap_howto;
	} elsif ($mode eq "find") {
		&wap_find;
	} elsif ($mode eq "menu") {
		&wap_menu;
	} elsif ($mode eq "find_view") {
		&wap_find_view;
	} elsif ($mode eq "dfrm") {
		&wap_dform;
	} elsif ($mode eq "usr_del") {
		&usr_del;
	} elsif ($mode eq "msg") {
		&regist;
	} elsif ($mode eq "frm") {
		&wap_form;
	} elsif ($mode eq "res") {
		&wap_form;
	}
	&wap_html_log;
}

#--------------------------------------------------------------------
# 基本処理(i-mode/J-SKY用/ドットi)　V1.11
#--------------------------------------------------------------------
sub c_main {
	if ($mode eq "howto") {
		&c_howto;
	} elsif ($mode eq "find") {
		&c_find;
	} elsif ($mode eq "menu") {
		&c_menu;
	} elsif ($mode eq "find_view") {
		&c_find_view;
	} elsif ($mode eq "dfrm") {
		&c_dform;
	} elsif ($mode eq "usr_del") {
		&usr_del;
	} elsif ($mode eq "msg") {
		&regist;
	} elsif ($mode eq "frm") {
		&c_form;
	} elsif ($mode eq "res") {
		&c_form;
	}
	&c_html_log;
}

#--------------------------------------------------------------------
# HTMLのヘッダー　Edit V1.00
#--------------------------------------------------------------------
sub header { 
	# PC処理
	if ($agent == 0) {
	print "Content-type: text/html\n\n";
	print "<html>\n<head>\n";
	print "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n";
	print "<title>$title</title></head>\n";
		if ($bgr) {
			print "<body background=\"$bgr\" bgcolor=$bgc text=$text link=$link vlink=$vlink alink=$alink>\n";
		} else {
			print "<body bgcolor=$bgc text=$text link=$link vlink=$vlink alink=$alink>\n";
		}
	}
	# EZweb 用処理
	if ($agent == 1) {
		print "Content-type: text/x-hdml; charset=Shift_JIS\n\n";
		print "<HDML version=\"3.0\" markable=\"true\" ttl=\"0\">\n";
	}
	# i-mode/J-SKY用処理
	if ($agent =~ /2|3|4/) {
		$content = "<HTML>\n";
		if ($agent != 3) {
			 $content .= "<HEAD>\n";
			 $content .= "<TITLE>$i_title</TITLE>\n";
		}
		$content .= "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n";
		if ($agent != 3) {
			$content .= "</HEAD>\n";
			$content .= "<BODY BGCOLOR=$i_bgc TEXT=$i_text LINK=$i_link vlink=$i_vlink alink=$i_alink>\n";
		} else {
			$content .= "<BODY BGCOLOR=$j_bgc TEXT=$j_text LINK=$j_link>\n";
		}
	}
	# EZweb WAP2.0用処理
	if ($agent == 6) {
		$content = <<"_HTML_";
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN"
"http://www.openwave.com/DTD/xhtml-basic.dtd">
_HTML_
		$content .= "<html>\n";
		$content .= "<head>\n";
		$content .= "<meta http-equiv=\"Content-type\" content=\"text/html; charset=Shift_JIS\" />\n";
		$content .= "<meta http-equiv=\"Cache-Control\" content=\"no-cache\" />\n";
		$content .= "</head>\n";
		$content .= "<body bgcolor=\"$e2_bgc\" text=\"$e2_text\" link=\"$e2_link\">\n";
	}
}

#--------------------------------------------------------------------
# HTMLのフッター　V1.00
#--------------------------------------------------------------------
sub footer {
	if ($agent == 0) {
	## 著作権表示（削除不可）
	print "<P><center><small><!-- $ver --><!-- $verex -->\n";
	print "- <a href=\"http://www.kent-web.com/\" target='_top'>Light Board</a> -<br>\n";
	print "- Edit by<a href=\"http://yama2-db.cside.com/\" target='_top'>Light Board-ex</a> -\n";
	print "</small></center>\n";
	print "</body></html>\n";
	}
	# EZweb用処理
	if ($agent == 1) {
		print "<CENTER>&nbsp;--------------&nbsp;<BR>\n";
		print "<CENTER><A TASK=\"GO\" DEST=\"http://www.kent-web.com/\" LABEL=\"ｵﾘｼﾞﾅﾙ\">Light Board</A><br>\n";
		print "<CENTER>Edit by <A TASK=\"GO\" DEST=\"http://yama2-db.cside.com/\">Light Board-ex</A>";
		print "</DISPLAY>\n";
		print "</HDML>\n";
	}
	# i-mode/J-SKY/iドット用
	if ($agent =~ /2|3|4/) {
		$content .= "<center>-<a href=\"http://www.kent-web.com\">Light Board</a>-<br>\n";
		$content .= "-Edit by <a href=\"http://yama2-db.cside.com/\">Light Board-ex</a>-\n";
		$content .= "</center>\n";
		$content .= "</BODY></HTML>\n";
	}
	# EZweb WAP2.0処理
	if ($agent == 6) {
		$content .= "<center><small><!-- $ver -->\n";
		$content .= "-<a href=\"http://www.kent-web.com/\" title=\"ｵﾘｼﾞﾅﾙ\">Light Board</a>-<br />\n";
		$content .= "-Edit by <a href=\"http://yama2-db.cside.com/\" title=\"EZ版\">Light Board-ex</a>-\n";
		$content .= "</small></center>\n";
		$content .= "</body></html>\n";
	}
}

#--------------------------------------------------------------------
# 出力処理(i-mode/J-SKY/EZweb) V1.00
#--------------------------------------------------------------------
sub l_print {
	$len = length($content);
	print "Content-type: text/html\n";
	if ($agent == 2) {
		print "Content-length: $len\n";
	}
	print "\n";
	print $content;
	exit ;
}

#--------------------------------------------------------------------
# フォーム表示　(i-mode/J-SKY/iドット)　V1.10
#--------------------------------------------------------------------
sub c_form {
	# ブラウザを判断
	&get_agent;
	
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	$init = $lines[0];
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$init);

	# ログチェック
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }

	shift(@lines);
	
	# クッキーを取得
	if ($agent != 2) { &get_cookie; }
	
	if ($agent == 3) {
		$c_name = &emojidel( $c_name,1 );
		$c_email = &emojidel( $c_email,1 );
		$c_url   = &emojidel( $c_url,1 );
	}

	&header;

	# タイトル表示
	if ($agent !=3) {
		$content .= "<center><font color=\"$i_t_color\">\n";
		$content .= "$i_title </font>\n";
		$content .= "<hr width='90%' size=\"2\">\n";
	} else {
		$content .= "<center><font color=\"$j_t_color\">\n";
		$content .= "$j_title </font>\n";
		$content .= "<hr>\n";
	}

	$s_keyword =~ s/\r|\n//g;

	if ($s_keyword ne "") {
		@kanji = ();
		@hiragana = ();
		foreach (split(/!/,$s_keyword)) {
			($s_keyword_kan,$s_keyword_hira) = split(/=/,$_);
			push (@kanji,$s_keyword_kan);
			push (@hiragana,$s_keyword_hira);
		}

		$times = time;
		$back_key = $times;
		$kei = int(rand(8)) + 1;
		$back_key2 = $back_key * $kei;

		$to_kens = $#kanji + 1;
		$soeji = $back_key2 % $to_kens;
	}

	# 返信モードの場合
	if ($mode eq "res") {
		foreach $line (@lines) {
			($number,$date,$name,$email,$subj,$comment) = split(/<>/,$line);
			if ($number eq "$in{'resmode'}") { last; }
		}
#		$res_comment = "\&gt\; $comment";
#		$res_comment =~ s/<br>/\r\&gt\; /g;
		$res_comment = "";
		
		# 返信用項目を作成
		if ($subj =~ /^Re/) {
			$subj =~ s/Re//;
			$res_sub = "Re\[$number\]" . "$subj";
		} else {
			$res_sub = "Re\[$number\]\: $subj";
		}
		if ($emojimode) { $res_sub = &emojidel( $res_sub,1 ); }
		$content .= "レス書き込み";
		$com_win = $com_wid + 2;
	} else {
		$res_sub = "";
		$res_comment = "";
		$content .= "新規書き込み";
	}
	
	# フォーム条件指定
	if ($agent == 2) {
		$zenkaku = 'istyle="1"';
		$alpha = 'istyle="3"';
		$passwd = 'password';
		$sizea = 12;
		$sizeb = 14;
		$sizec = 16;
		$u_method = 'POST';
		$mailmark = "\&\#63863;";
		$homemark = "\&\#63684;";
		$key_mark = "\&\#63869;";
	}
	if ($agent == 3) {
		$zenkaku = 'mode="hiragana"';
		$alpha = 'mode="alphabet"';
		$passwd = 'password';
		$sizea = 10;
		$sizeb = 12;
		$sizec = 14;
		$u_method = 'GET';
		$mailmark = '$E!';
		$homemark = '$GV';
		$key_mark = '$G_';
	}
	if ($agent == 4) {
		$zenkaku = 'astyle="1"';
		$alpha = 'astyle="3"';
		$passwd = 'password';
		$sizea = 12;
		$sizeb = 14;
		$sizec = 16;
		$u_method = 'POST';
		$mailmark = "\&\#61825;";
		$homemark = "\&\#61829;";
		$key_mark = "\&\#61861;";
	}
		
	$content .= "<hr width='90%' size=\"2\"></center>\n";
	$content .= "<form method=\"$u_method\" action=\"$script\">\n";
	$content .= "<input type=\"hidden\" name=\"mode\" value=\"msg\">\n";
	if ($s_keyword ne "") {
		$content .= "<input type=\"hidden\" name=\"ushi\" value=\"$kanji[$soeji]\">\n";
	}
	$content .= "名前";
	$content .= "<input type=\"text\" name=\"name\" size=\"$sizea\" value=\"$c_name\" $zenkaku>\n";
	$content .= "<br>\n";
	$content .= "題名";
	$content .= "<input type=\"text\" name=\"sub\" size=\"$sizea\" value=\"$res_sub\" $zenkaku>";
	$content .= "<br>\n";
	$content .= "コメント　　　　\n";
	$content .= "<textarea cols=\"$sizec\" rows=\"2\" name=\"comment\" $zenkaku>$res_comment";
	$content .= "</textarea><br>\n";
	$content .= "$mailmark";
	$content .= "<input type=\"text\" name=\"email\" size=\"$sizeb\" value=\"$c_email\" maxlength=\"100\" $alpha>";
	$content .= "<br>\n";
	$content .= "$homemark";
	$content .= "<input type=\"text\" name=\"url\" size=\"$sizeb\" value=\"http://$c_url\" maxlength=\"100\" $alpha>";
	$content .= "<br>\n";
	if ($s_keyword ne "") {
		$content .= "キーワード<br>\n";
		$content .= "<small>(ｷｰﾜｰﾄﾞ<b><font color=blue>$kanji[$soeji]</font></b>をひらがなで入力</small><br>\n";
		$content .= "<input type=\"text\" name=\"aikotoba\" size=\"$sizec\" value=\"\" $zenkaku>";
		$content .= "<br>\n";
	}
	$content .= "$key_mark";
	$content .= "<input type=\"$passwd\" name=\"pwd\" size=\"8\" maxlength=\"8\" value=\"$c_pwd\">";
	$content .= "<br>(8文字以内)";
	$content .= "<br>\n";
	$content .= "<center>\n";
	$content .= "<input type=\"submit\" value=\"投稿\">\n";
	$content .= "<input type=\"reset\" value=\"取消\">\n";
	$content .= "</center>\n";
	$content .= "</form>\n";

	if ($agent != 3) {
		$content .= "<center><hr width='90%' size=\"2\">\n";
		$content .= "<a href=\"$i_home\" accesskey=\"1\">1.Home</a>\n";
		$content .= "&nbsp;<a href=\"$script?mode=menu\" accesskey=\"2\">2.ﾒﾆｭｰ一覧</a>";
		$content .= "<hr width='90%' size=\"2\"></center>\n";
	} else {
		$content .= "<center><hr>\n";
		$content .= "<a href=\"$j_home\" directkey=\"1\">Home</a><br>\n";
		$content .= "<a href=\"$script?mode=menu\" directkey=\"2\">ﾒﾆｭｰ一覧</a><br>";
		$content .= "<hr></center>\n";
	}
	
	&footer;
	&l_print;
	exit;
}


#--------------------------------------------------------------------
# フォーム表示　(EZweb用)　V1.01
#--------------------------------------------------------------------
sub wap_form {
	# ブラウザを判断
	&get_agent;
	
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	$init = $lines[0];
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$init);

	# ログチェック
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }

	shift(@lines);
	
	# クッキーを取得
	&get_cookie;

	&header;

	# 投稿指定
	$dest = "$script?mode=msg";		# モード指定
	$dest .= "\&name=\$uname";		# 名前
	$dest .= "\&sub=\$usub";		# 題名
	$dest .= "\&comment=\$ucomment";# 本文
	$dest .= "\&email=\$uemail";	# メールアドレス
	$dest .= "\&url=\$uurl";		# ホームページ
	$dest .= "\&pwd=\$upwd";		# 削除パスワード
#	$dest .= "\&res=$in{'res'}";	# レス番号の指定

	# 返信モードの場合
	if ($mode eq "res") {
		foreach $line (@lines) {
			($number,$date,$name,$email,$subj,$comment) = split(/<>/,$line);
			if ($number eq "$in{'resmode'}") { last; }
		}
#		$res_comment = "\&gt\; $comment";
#		$res_comment =~ s/<br>/\r\&gt\; /g;
		$res_comment = "";
		
		# 返信用項目を作成
		if ($subj =~ /^Re/) {
			$subj =~ s/Re//;
			$res_sub = "Re\[$number\]" . "$subj";
		} else {
			$res_sub = "Re\[$number\]\: $subj";
		}
		if ($emojimode) { $res_sub = &emojidel( $res_sub,0 ); }
		$hyo_dai = "レス書き込み";
		$com_win = $com_wid + 2;
	} else {
		$res_sub = "";
		$res_comment = "";
		$hyo_dai = "新規書き込み";
	}

	$s_keyword =~ s/\r|\n//g;

	if ($s_keyword ne "") {
		@kanji = ();
		@hiragana = ();
		foreach (split(/!/,$s_keyword)) {
			($s_keyword_kan,$s_keyword_hira) = split(/=/,$_);
			push (@kanji,$s_keyword_kan);
			push (@hiragana,$s_keyword_hira);
		}

		$times = time;
		$back_key = $times;
		$kei = int(rand(8)) + 1;
		$back_key2 = $back_key * $kei;

		$to_kens = $#kanji + 1;
		$soeji = $back_key2 % $to_kens;
	}

	$ushi_a = $kanji[$soeji];

	# 前回投稿記事の削除
	print "<NODISPLAY>\n";
	print "<ACTION type=\"accept\" task=\"go\" dest=\"#form\" vars=\"ucomment=\&uname=$c_name\&usub=$res_sub\&uemail=$c_email\&uurl=$c_url\&upwd=$c_pwd\&ik=1\&kotoba=\">\n";
	print "</NODISPLAY>\n";

	# 投稿フォーム出力
	print "<CHOICE name=\"form\" title=\"$e_title\" bookmark=\"$fscript\">\n";
	print "<ACTION type=\"soft1\" task=\"go\" dest=\"$script?mode=menu\" label=\"戻る\">\n";
	print "<CENTER>$hyo_dai<br>\n";
	print "<CE task=\"go\" dest=\"#iname\" label=\"入力\" receive=\"uname\">名前:\$uname\n";
	print "<CE task=\"go\" dest=\"#isub\" label=\"入力\" receive=\"usub\">題名:\$usub\n";
	print "<CE task=\"go\" dest=\"#icomment\" label=\"入力\" receive=\"ucomment\">ｺﾒﾝﾄ:\$ucomment\n";
	print "<CE task=\"go\" dest=\"#iemail\" label=\"入力\" receive=\"uemail\">mail:\$uemail\n";
	print "<CE task=\"go\" dest=\"#iurl\" label=\"入力\" receive=\"uurl\">URL :\$uurl\n";
	if ($s_keyword ne "") {
		print "<CE task=\"go\" dest=\"#ikotoba\" label=\"入力\" receive=\"kotoba\">ｷｰﾜｰﾄﾞ:\$kotoba\n";
		$dest .= "\&ushi=$ushi_a";
		$dest .= "\&aikotoba=\$kotoba";
	}
	print "<CE task=\"go\" dest=\"#ipwd\" label=\"入力\" receive=\"upwd\">削除ｷｰ:\$upwd\n";
	print "<CE task=\"go\" dest=\"$dest\" label=\"投稿\">投稿する\n";
	print "</CHOICE>\n";

	# 名前入力
	print "<ENTRY KEY=\"uname\" name=\"iname\" title=\"$e_title\" bookmark=\"$fscript\" DEFAULT=\"$c_name\" FORMAT=\"*M\">\n";
	print "<ACTION type=\"accept\" task=\"#form\">\n";
	print "お名前\n";
	print "</ENTRY>\n";

	# 題名入力
	print "<ENTRY KEY=\"usub\" name=\"isub\" title=\"$e_title\" bookmark=\"$fscript\" DEFAULT=\"$res_sub\" FORMAT=\"*M\" EMPTYOK=\"true\">\n";
	print "<ACTION type=\"accept\" task=\"#form\">\n";
	print "題名\n";
	print "</ENTRY>\n";

	# 本文入力
	print "<ENTRY KEY=\"ucomment\" name=\"icomment\" title=\"$e_title\" bookmark=\"$fscript\" FORMAT=\"*M\">\n";
	print "<ACTION type=\"accept\" task=\"#form\">\n";
	print "ｺﾒﾝﾄ\n";
	print "</ENTRY>\n";

	# メールアドレス入力
	print "<ENTRY KEY=\"uemail\" name=\"iemail\" title=\"$e_title\" bookmark=\"$fscript\" FORMAT=\"*x\" DEFAULT=\"$c_email\" EMPTYOK=\"true\">\n";
	print "<ACTION type=\"accept\" task=\"#form\">\n";
	print "Eﾒｰﾙｱﾄﾞﾚｽ\n";
	print "</ENTRY>\n";

	# ホームページアドレス入力
	print "<ENTRY KEY=\"uurl\" name=\"iurl\" title=\"$e_title\" bookmark=\"$fscript\" FORMAT=\"*x\" DEFAULT=\"http://$c_url\" EMPTYOK=\"true\">\n";
	print "<ACTION type=\"accept\" task=\"#form\">\n";
	print "URL\n";
	print "</ENTRY>\n";

	# ｷｰﾜｰﾄﾞ入力
	print "<ENTRY KEY=\"kotoba\" name=\"ikotoba\" title=\"$e_title\" bookmark=\"$fscript\" FORMAT=\"*M\">\n";
	print "<ACTION type=\"accept\" task=\"#form\">\n";
	print "ｷｰﾜｰﾄﾞ $ushi_a をひらがなで入力\n";
	print "</ENTRY>\n";

	# 削除パスワード入力
	print "<ENTRY KEY=\"upwd\" name=\"ipwd\" title=\"$e_title\" bookmark=\"$fscript\" FORMAT=\"*x\" DEFAULT=\"$c_pwd\">\n";
	print "<ACTION type=\"accept\" task=\"#form\">\n";
	print "削除ｷｰ(英数字8文字以内)\n";
	print "</ENTRY>\n";

	print "</HDML>\n";
	exit;
}

#--------------------------------------------------------------------
# Delete フォーム表示　(i-mode/J-sky/ドットi)
#--------------------------------------------------------------------
sub c_dform {
	# ブラウザを判断
	&get_agent;
	
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);

	# 環境設定部を認識
	$init = $lines[0];
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$init);

	# ログチェック
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }

	shift(@lines);

	# クッキーを取得
	if ($agent != 2) { &get_cookie; }
	
	&header;
	
	if ($agent != 3) {
		$content .= "<center><font color=\"$i_t_color\">$i_title</font><br>\n";
		$content .= "投稿記事削除<hr width='90%' size=\"2\"></center>\n";
	} else {
		$content .= "<center><font color=\"$j_t_color\">$j_title</font><br>\n";
		$content .= "投稿記事削除<hr></center>\n";
	}
	if ($agent == 2) {
		$alpha = 'istyle="3"';
		$suji = 'istyle="4"';
		$hr = "<hr width='90%' size=\"2\">";
		$u_method = 'POST';
	}
	if ($agent == 3) {
		$alpha = 'mode="alphabet"';
		$suji = 'mode="numeric"';
		$hr = "<hr>";
		$u_method = 'GET';
	}
	if ($agent == 4) {
		$alpha = 'astyle="3"';
		$suji = 'astyle="4"';
		$hr = "<hr width='90%' size=\"2\">";
		$u_method = 'POST';
	}
	
	# 削除フォーム出力
	$content .= "<center>記事No\/削除ｷｰを<br>入力して下さい</center><br>\n";
	$content .= "<form action=\"$script\" method=\"$u_method\">\n";
	$content .= "記事No<input type=\"text\" name=\"usr_no\" size=\"4\" $suji><br>\n";
	$content .= "削除ｷｰ<input type=\"password\" name=\"usr_key\" size=\"6\" $alpha><br>\n";
	$content .= "<input type=\"hidden\" name=\"mode\" value=\"usr_del\">\n";
	$content .= "<input type=\"submit\" value=\"記事削除\">\n";
	$content .= "</form>\n";
	
	$content .= "<center>$hr\n";
	
	if ($agent != 3) {
		$content .= "<a href=\"$i_home\" accesskey=\"1\">1.Home</a>\n";
		$content .= "&nbsp;<a href=\"$script?mode=menu\" accesskey=\"2\">2.ﾒﾆｭｰ一覧</a>\n";
	} else {
		$content .= "<a href=\"$j_home\" directkey=\"1\">Home</a><br>\n";
		$content .= "<a href=\"$script?mode=menu\" directkey=\"2\">ﾒﾆｭｰ一覧</a>\n";
	}
	$content .= "$hr</center>\n";
	
	&footer;
	&l_print;
	exit;
}

#--------------------------------------------------------------------
# Delete ﾌｫｰﾑ表示　(EZweb用) V1.01
#--------------------------------------------------------------------
sub wap_dform {
	# ブラウザを判断
	&get_agent;
	
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);

	# 環境設定部を認識
	$init = $lines[0];
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_rejcet)
								 = split(/<>/,$init);

	# ログチェック
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }

	shift(@lines);

	# クッキーを取得
	&get_cookie;

	&header;

	# 投稿指定
	$dest = "$script?mode=usr_del";	# モード指定
	$dest .= "\&usr_no=\$dnum";		# 記事No.
	$dest .= "\&usr_key=\$dkey";	# 削除キー

	# 削除フォーム出力
	print "<CHOICE name=\"dform\" title=\"$e_title\" bookmark=\"$fscript\">\n";
	print "<ACTION type=\"soft1\" task=\"go\" dest=\"$script?mode=menu\" label=\"戻る\">\n";
	print "<CENTER>記事削除ﾌｫｰﾑ<br>\n";
	print "<LINE>記事No／削除ｷｰを入力し削除してください<WRAP>\n";
	print "<CE task=\"go\" dest=\"#inum\" label=\"入力\" receive=\"dnum\">記事No:\$dnum\n";
	print "<CE task=\"go\" dest=\"#ipas\" label=\"入力\" receive=\"dkey\">削除ｷｰ:\$dkey\n";
	print "<CE task=\"go\" dest=\"$dest\" label=\"削除\">記事を削除\n";

	print "</CHOICE>\n";

	# 削除記事の番号入力
	print "<ENTRY KEY=\"dnum\" name=\"inum\" title=\"$e_title\" bookmark=\"$fscript\" FORMAT=\"*N\">\n";
	print "<ACTION type=\"accept\" task=\"go\" dest=\"#dform\">\n";
	print "削除記事の番号\n";
	print "</ENTRY>\n";

	# 削除パスワード入力
	print "<ENTRY KEY=\"dkey\" name=\"ipas\" title=\"$e_title\" bookmark=\"$fscript\" FORMAT=\"*x\">\n";
	print "<ACTION type=\"accept\" task=\"go\" dest=\"#dform\">\n";
	print "削除キー\n";
	print "</ENTRY>\n";

	print "</HDML>\n";
	exit;
}

#--------------------------------------------------------------------
# フォーム表示　(EZweb WAP2.0用)　V1.00
#--------------------------------------------------------------------
sub wap2_form {
	# ブラウザを判断
	&get_agent;
	
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	$init = $lines[0];
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$init);

	# ログチェック
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }

	shift(@lines);
	
	# クッキーを取得
	&get_cookie;

	&header;

	# ソフトキー制御
	$content .= "<wml:do name=\"top\" label=\"Homeへ戻る\" type=\"options\">\n";
	$content .= "<wml:go href=\"$e2_home\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"itiran\" label=\"投稿表\示一覧へ戻る\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"use\" label=\"掲示板の使い方\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=howto\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"kensaku\" label=\"ワード検索\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=find\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"act\" label=\"\" type=\"accept\">\n";
	$content .= "<wml:noop />\n";
	$content .= "</wml:do>\n";

	# 表示開始
	if ($e2_t_size == 1) {
		$title_sz = '<small>';
		$title_sz_e = '</small>';
	} elsif ($e2_t_size == 3) {
		$title_sz = '<big>';
		$title_sz_e = '</big>';
	} else {
		$title_sz = '';
		$title_sz_e = '';
	}

	$content .= "<center><font color=\"$e2_t_color\">$title_sz\n";
	$content .= "$e2_title $title_sz_e</font><br />\n";
#	$content .= "<small>ﾌｫｰﾑ入力</small><hr width='90%' size=\"2\"></center>\n";
	

	$s_keyword =~ s/\r|\n//g;

	if ($s_keyword ne "") {
		@kanji = ();
		@hiragana = ();
		foreach (split(/!/,$s_keyword)) {
			($s_keyword_kan,$s_keyword_hira) = split(/=/,$_);
			push (@kanji,$s_keyword_kan);
			push (@hiragana,$s_keyword_hira);
		}

		$times = time;
		$back_key = $times;
		$kei = int(rand(8)) + 1;
		$back_key2 = $back_key * $kei;

		$to_kens = $#kanji + 1;
		$soeji = $back_key2 % $to_kens;
	}

	# 返信モードの場合
	if ($mode eq "res") {
		foreach $line (@lines) {
			($number,$date,$name,$email,$subj,$comment) = split(/<>/,$line);
			if ($number eq "$in{'resmode'}") { last; }
		}
#		$res_comment = "\&gt\; $comment";
#		$res_comment =~ s/<br>/\r\&gt\; /g;
		$res_comment = "";
		
		# 返信用項目を作成
		if ($subj =~ /^Re/) {
			$subj =~ s/Re//;
			$res_sub = "Re\[$number\]" . "$subj";
		} else {
			$res_sub = "Re\[$number\]\: $subj";
		}
		if ($emojimode) { $res_sub = &emojidel( $res_sub,1 ); }
		$content .= "<small>レス書き込み</small>";
		$com_win = $com_wid + 2;
	} else {
		$res_sub = "";
		$res_comment = "";
		$content .= "<small>新規書き込み</small>";
	}
	
	$content .= "<hr width='90%' size=\"2\" /></center>\n";
	$content .= "<form method=\"POST\" action=\"$script\">\n";
	$content .= "<input type=\"hidden\" name=\"mode\" value=\"msg\" />\n";
	if ($s_keyword ne "") {
		$content .= "<input type=\"hidden\" name=\"ushi\" value=\"$kanji[$soeji]\" />\n";
	}
	$content .= "名前";
	$content .= "<input type=\"text\" name=\"name\" size=\"12\" value=\"$c_name\" format=\"*M\" />\n";
	$content .= "<br />\n";
	$content .= "題名";
	$content .= "<input type=\"text\" name=\"sub\" size=\"12\" value=\"$res_sub\" format=\"*M\" emptyok=\"true\" />";
	$content .= "<br />\n";
	$content .= "コメント　　　　\n";
	$content .= "<textarea cols=\"16\" rows=\"2\" name=\"comment\" format=\"*M\">$res_comment";
	$content .= "</textarea><br />\n";
	$content .= "<img localsrc=\"108\">";
	$content .= "<input type=\"text\" name=\"email\" size=\"14\" value=\"$c_email\" format=\"*x\" emptyok=\"true\" />";
	$content .= "<br />\n";
	$content .= "<img localsrc=\"514\">";
	$content .= "<input type=\"text\" name=\"url\" size=\"14\" value=\"http://$c_url\" maxlength=\"100\" format=\"*x\" emptyok=\"true\" />";
	$content .= "<br />\n";
	if ($s_keyword ne "") {
		$content .= "キーワード<br />\n";
		$content .= "<small>(ｷｰﾜｰﾄﾞ<b><font color=blue>$kanji[$soeji]</font></b>をひらがなで入力)</small><br />\n";
		$content .= "<input type=\"text\" name=\"aikotoba\" size=\"16\" value=\"\" format=\"*M\" />";
		$content .= "<br />\n";
	}
	$content .= "<img localsrc=\"120\">";
	$content .= "<input type=\"password\" name=\"pwd\" size=\"8\" maxlength=\"8\" value=\"$c_pwd\" /><small>(8文字以内)</small>";
	$content .= "<br />\n";
	$content .= "<center>\n";
	$content .= "<input type=\"submit\" value=\"投稿\" />\n";
	$content .= "<input type=\"reset\" value=\"取消\" />\n";
	$content .= "</center>\n";
	$content .= "</form>\n";
	
	# フッター出力
	&footer;
	
	&l_print;
	exit;
}

#--------------------------------------------------------------------
# 記事表示部　(i-mode/J-SKY/ドットi用)　V1.11
#--------------------------------------------------------------------
sub c_html_log {
	# ブラウザを判断
	&get_agent;
	
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);

	# 環境設定部を認識
	$init = $lines[0];
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$init);

	# ログチェック
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }

	shift(@lines);

	# クッキーを取得
	if ($agent != 2) {
		&get_cookie;
	}

	&header;
	
	# タイトル表示
	if ($agent !=3) {
		$content .= "<center><font color=\"$i_t_color\">\n";
		$content .= "$i_title </font>\n";
		$content .= "<hr width='90%' size=\"2\"></center>\n";
	} else {
		$content .= "<center><font color=\"$j_t_color\">\n";
		$content .= "$j_title </font>\n";
		$content .= "<hr></center>\n";
	}
	
	# 記事表示
	if ($in{'page'} eq '') { $page = 0; } 
	else { $page = $in{'page'}; }

	# 記事数を取得
	$end_data = @lines - 1;
	if ($agent != 3) { $page_end = $page + ($i_plog - 1); }
				else { $page_end = $page + ($j_plog - 1); }
	if ($page_end >= $end_data) { $page_end = $end_data; }

	foreach ($page .. $page_end) {
		($number,$date,$name,$email,$subj,$comment,$url,$host,$pwd)
						 = split(/<>/,$lines[$_]);
		
		if ($emojimode) {
			if ($email) { $email = &emojidel( $email,0 ); }
			$name = &emojidel( $name,1 );
			$subj = &emojidel( $subj,1 );
			$comment = &emojidel( $comment,1 );
			if ($url) { $url = &emojidel( $url,0 ); }
		}

		if ($email) { $name = "<a href=\"mailto:$email\">$name</a>"; }
#		if ($url) { $url = "<a href=\"http://$url\" target='_top'>http://$url</a>\n"; }

		# 自動リンク
		if ($autolink) { &auto_link($comment); }

		if ($agent != 3) {
			$content .= "[$number] <font color=\"$i_subj_color\">$subj</font><br>\n";
			$content .= "投稿者：<font color=\"$i_name_color\">$name</font><br>\n";
		} else {
			$content .= "[$number] <font color=\"$j_subj_color\">$subj</font><br>\n";
			$content .= "投稿者：<font color=\"$j_name_color\">$name</font><br>\n";
		}
		$content .= "投稿日：$date<br>\n";
		if ($url) {
			if ($url =~ /hdml$|HDML$|wml$|WML$/) {
				# EZ GATE経由でリンクを貼る
				$content .= "<a href=\"http://www.note.ne.jp/ezgate2/?http://$url\">";
				if ($agent == 2) { $content .= "\&\#63721;"; }
				if ($agent == 3) { $content .= '$G*'; }
				if ($agent == 4) { $content .= "\&\#61796;"; }
				$content .= "</a>ホーム<br>\n";
			} else {
				$content .= "<a href=\"http://$url\">";
				if ($agent == 2) { $content .= "\&\#63684;"; }
				if ($agent == 3) { $content .= '$GV'; }
				if ($agent == 4) { $content .= "\&\#61829;"; }
				$content .= "</a>ホーム<br>\n";
			}
		}
		if ($agent == 3) { $u_method = 'GET'; }
		   else { $u_method = 'POST'; }
		$content .= "<form action=\"$script\" method=\"$u_method\">\n";
		$content .= "<input type=\"submit\" value=\"返信\">\n";
		$content .= "<input type=\"hidden\" name=\"mode\" value=\"res\">\n";
		$content .= "<input type=\"hidden\" name=\"resmode\" value=\"$number\">\n";
		$content .= "</form>\n";
		$content .= "$comment<hr>\n";
		
	}
#	$content .= "<table border=0 width='100%'><tr>\n";

	# 改頁処理
	$next_line = $page_end + 1;
	if ($agent != 3) { $back_line = $page - $i_plog; }
				else { $back_line = $page - $j_plog; }

	# 前頁処理
	if ($agent == 3) { $u_method = 'GET'; }
	   else { $u_method = 'POST'; }
	if ($back_line >= 0) {
#		$content .= "<td><form method=\"$u_method\" action=\"$script\">\n";
		$content .= "<form method=\"$u_method\" action=\"$script\">\n";
		$content .= "<input type=\"hidden\" name=\"page\" value=\"$back_line\">\n";
		if ($agent != 3) {
			$content .= "<input type=\"submit\" value=\"前の$i_plog件\">\n";
		} else {
			$content .= "<input type=\"submit\" value=\"前の$j_plog件\">\n";
		}
#		$content .= "</form></td>\n";	
		$content .= "</form>\n";
	}

	# 次頁処理
	if ($page_end ne $end_data) {
#		$content .= "<td><form method=\"$u_method\" action=\"$script\">\n";
		$content .= "<form method=\"$u_method\" action=\"$script\">\n";
		$content .= "<input type=\"hidden\" name=\"page\" value=\"$next_line\">\n";
		if ($agent != 3) {
			$content .= "<input type=\"submit\" value=\"次の$i_plog件\">\n";
		} else {
			$content .= "<input type=\"submit\" value=\"次の$j_plog件\">\n";
		}
#		$content .= "</form></td>\n";
		$content .= "</form>\n";
	}
	
#	$content .= "</tr></table>\n";
#	$content .= "<table>\n";
	if ($agent != 3) {
		$content .= "<center><hr width='90%' size=\"2\">\n";
		$content .= "<a href=\"$i_home\" accesskey=\"1\">1.Home</a>\n";
		$content .= "&nbsp;<a href=\"$script?mode=menu\" accesskey=\"2\">2.ﾒﾆｭｰ一覧</a>\n";
		$content .= "<hr width='90%' size=\"2\"></center>\n";
	} else {
		$content .= "<center><hr>\n";
		$content .= "<a href=\"$j_home\" directkey=\"1\">Home</a><br>\n";
		$content .= "<a href=\"$script?mode=menu\" directkey=\"2\">ﾒﾆｭｰ一覧</a>\n";
		$content .= "<hr></center>\n";
	}
	
#	$content .= "</tr></table>\n";
	
	&footer;
	&l_print;
	exit;
}

#--------------------------------------------------------------------
# 記事表示部　(EZweb用)　V1.01
#--------------------------------------------------------------------
sub wap_html_log {
	# ブラウザを判断
	&get_agent;
	
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	$init = $lines[0];
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$init);

	# ログチェック
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }
	
	shift(@lines);
	
	# クッキーを取得
	&get_cookie;
	
	&header;
	
	# 内容表示
	print "<DISPLAY name=\"view\" title=\"$e_title\" bookmark=\"$fscript\">\n";
	print "<CENTER>$e_title\n";
	print "<CENTER>&nbsp;--------------&nbsp;<BR>\n";

	# 記事表示
	if ($in{'page'} eq '') { $page = 0; } 
	else { $page = $in{'page'}; }

	# 記事数を取得
	$end_data = @lines - 1;
	$page_end = $page + ($e_plog - 1);
	if ($page_end >= $end_data) { $page_end = $end_data; }

	foreach ($page .. $page_end) {
		($number,$date,$name,$email,$subj,$comment,$url,$host,$pwd)
						 = split(/<>/,$lines[$_]);
		
		if ($emojimode) {
			if ($email) { $email = &emojidel( $email,0 ); }
			$name = &emojidel( $name,1 );
			$subj = &emojidel( $subj,1 );
			$comment = &emojidel( $comment,1 );
			if ($url) { $url = &emojidel( $url,0 ); }
		}
		
		if ($email) {
			if ($ENV{'HTTP_X_UP_UPLINK'} =~ /[at][a-z]\.ezweb\.ne\.jp/){
				$name = "<A TASK=\"GO\" DEST=\"mailto:$email\" LABEL=\"ﾒｰﾙ\">$name</A>";
			} else {
				$name = "<A TASK=\"GO\" DEST=\"device:home/goto?svc=Email&SUB=sendMsg\" vars=\"TO=$email\" label=\"ﾒｰﾙ\">";
			}
		}
#		if ($url) { $url = "<A TASK=\"GO\" DEST=\"http://$url\" LABEL=\"Home\">http://$url</A>\n"; }

		# 自動リンク
		if ($autolink) { &auto_link($comment); }

		print "[$number] $subj<br>\n";
		print "投稿者：$name<br>\n";
		print "投稿日：$date<br>\n";
		if ($url) {
			print "<A TASK=\"GO\" DEST=\"http://$url\" LABEL=\"URL\">";
			if ($url =~ /hdml$|HDML$|wml$|WML$/) {
				if ($ENV{'HTTP_X_UP_ISCOLOR'}) {
					print "<IMG ICON=\"155\">";
				} else {
					print "<IMG ICON=\"161\">";
				}
			} else {
				print "<IMG ICON=\"112\">";
			}
			print "</A>ホーム<br>\n";
		}
		$dest = "$script?mode=res";
		$dest .= "\&resmode=$number";
		print "<RIGHT><A TASK=\"GO\" DEST=\"$dest\" LABEL=\"返信\">返信</A><br>\n";
		print "$comment<br>\n";
		print "<CENTER>&nbsp;--------------&nbsp;<br>\n";
	}

	# 改頁処理
	$next_line = $page_end + 1;
	$back_line = $page - $e_plog;

	# 前頁処理
	if ($back_line >= 0) {
		$dest = "$script?page=$back_line";
		print "<A TASK=\"GO\" DEST=\"$dest\" LABEL=\"back\" accesskey=\"1\">前の$e_plog件</A>\n";
	}

	# 次頁処理
	if ($page_end ne $end_data) {
		$dest = "$script?page=$next_line";
		print "<A TASK=\"GO\" DEST=\"$dest\" LABEL=\"next\" accesskey=\"2\">次の$e_plog件</A>\n";
	}

	# Homeへ戻る
	print "<A TASK=\"GO\" DEST=\"$e_home\" LABEL=\"Home\" accesskey=\"3\">Home</A>\n";
	
	# 機能一覧
	$dest = "$script?mode=menu";
	print "<A TASK=\"GO\" DEST=\"$dest\" LABEL=\"menui\" accesskey=\"4\">ﾒﾆｭｰ一覧</A>\n";
	
	&footer;
	exit;
}

#--------------------------------------------------------------------
# 記事表示部　(EZweb WAP2.0用)　V1.00
#--------------------------------------------------------------------
sub wap2_html_log {
	# ブラウザを判断
	&get_agent;
	
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	$init = $lines[0];
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$init);

	# ログチェック
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }

	shift(@lines);

	# クッキーを取得
	&get_cookie;

	&header;
	
	# ソフトキー制御
	$content .= "<wml:do name=\"top\" label=\"Homeへ戻る\" type=\"options\">\n";
	$content .= "<wml:go href=\"$e2_home\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"use\" label=\"掲示板の使い方\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=howto\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"kensaku\" label=\"ワード検索\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=find\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"sinki\" label=\"新規作成\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=frm\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"act\" label=\"\" type=\"accept\">\n";
	$content .= "<wml:noop />\n";
	$content .= "</wml:do>\n";

	# タイトル表示
	if ($e2_t_size == 1) {
		$title_sz = '<small>';
		$title_sz_e = '</small>';
	} elsif ($e2_t_size == 3) {
		$title_sz = '<big>';
		$title_sz_e = '</big>';
	} else {
		$title_sz = '';
		$title_sz_e = '';
	}
	
	$contentwk = "<center><font color=\"$e2_t_color\">$title_sz\n";
	$contentwk .= "$e2_title $title_sz_e</font><hr width='90%' size=\"2\"></center>\n";
	
	# 記事表示
	if ($in{'page'} eq '') { $page = 0; } 
	else { $page = $in{'page'}; }

	# 記事数を取得
	$end_data = @lines - 1;
	$page_end = $page + ($e2_plog - 1);
	if ($page_end >= $end_data) { $page_end = $end_data; }

	foreach ($page .. $page_end) {
		($number,$date,$name,$email,$subj,$comment,$url,$host,$pwd)
						 = split(/<>/,$lines[$_]);
		
		if ($emojimode) {
			if ($email) { $email = &emojidel( $email,0 ); }
			$name = &emojidel( $name,1 );
			if ($url) { $url = &emojidel( $url,0 ); }
			$subj = &emojidel( $subj,1 );
			$comment = &emojidel( $comment,1 );
		}

		if ($email) { $name = "<a href=\"mailto:$email\">$name</a>"; }
		if ($url) { $url = "<a href=\"http://$url\" target='_top'>http://$url</a>\n"; }

		# 自動リンク
		if ($autolink) { &auto_link($comment); }

		$contentwk .= "[$number] <font color=\"$e2_subj_color\"><b>$subj</b></font><br />\n";
		$contentwk .= "投稿者：<font color=\"$e2_name_color\"><b>$name</b></font><br />\n";
		$contentwk .= "<small>投稿日：$date</small><br />\n";
		$contentwk .= "<form action=\"$script\" method=\"POST\">\n";
		$contentwk .= "<input type=\"submit\" value=\"返信\" />\n";
		$contentwk .= "<input type=\"hidden\" name=\"mode\" value=\"res\" />\n";
		$contentwk .= "<input type=\"hidden\" name=\"resmode\" value=\"$number\" />\n";
		$contentwk .= "</form>\n";
		$contentwk .= "$comment<br /><br />$url<hr>\n";
		
	}
	$contentwk .= "<table border=0 width='100%'><tr>\n";

	# 改頁処理
	$next_line = $page_end + 1;
	$back_line = $page - $e2_plog;

	# 前頁処理
	if ($back_line >= 0) {
		$contentwk .= "<td><form method=\"POST\" action=\"$script\">\n";
		$contentwk .= "<input type=\"hidden\" name=\"page\" value=\"$back_line\" />\n";
		$contentwk .= "<input type=\"submit\" value=\"前の$e2_plog件\" />\n";
		$contentwk .= "</form></td>\n";	
		$content .= "<wml:do name=\"mae\" label=\"前の$e2_plog件表\示\" type=\"options\">\n";
		$content .= "<wml:go href=\"$script?page=$back_line\" />\n";
		$content .= "</wml:do>\n";
	}

	# 次頁処理
	if ($page_end ne $end_data) {
		$contentwk .= "<td><form method=\"POST\" action=\"$script\">\n";
		$contentwk .= "<input type=\"hidden\" name=\"page\" value=\"$next_line\" />\n";
		$contentwk .= "<input type=\"submit\" value=\"次の$e2_plog件\" />\n";
		$contentwk .= "</form></td>\n";
		$content .= "<wml:do name=\"tugi\" label=\"次の$e2_plog件表\示\" type=\"options\">\n";
		$content .= "<wml:go href=\"$script?page=$next_line\" />\n";
		$content .= "</wml:do>\n";
	}
	$contentwk .= "</tr></table>\n";

	# ユーザ記事削除フォーム
	$contentwk .= "<form action=\"$script\" method=\"POST\">\n";
	$contentwk .= "<font color=\"$e2_t_color\">投稿記事削除</font><br />\n";
	$contentwk .= "■記事No<input type=\"text\" name=\"usr_no\" size=\"4\" /><br />\n";
	$contentwk .= "■削除キー<input type=\"password\" name=\"usr_key\" size=\"6\" /><br />\n";
	$contentwk .= "<input type=\"submit\" value=\"記事削除\" />\n";
	$contentwk .= "<input type=\"hidden\" name=\"mode\" value=\"usr_del\" />\n";
	$contentwk .= "</form>\n";
	
	$content .= $contentwk ;
	
	&footer;
	&l_print;
	exit;
}


## --- 記事表示部
sub html_log {
	# ブラウザを判断
	&get_agent;

	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);

	# 環境設定部を認識
	$init = $lines[0];
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$init);

	# ログチェック
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }

	shift(@lines);

	# クッキーを取得
	&get_cookie;

	# 表示開始
	&header;
	print "<center><font color=\"$t_color\" size=\"$t_size\" face=\"$t_face\">\n";
	print "<b>$title</b></font><hr width='90%' size=2>\n";
	print "[<a href=\"$home\" target=\"_top\">トップにもどる</a>]\n";
	print "[<a href=\"$script?mode=howto\">掲示板の使い方</a>]\n";
	print "[<a href=\"$script?mode=find\">ワード検索</a>]\n";

	# 過去ログのリンク
	if ($pastkey) { print "[<a href=\"$light2\">過去ログ</a>]\n"; }

	# ログ編集機能のリンク
	print "[<a href=\"$light2\?mode=edit_in\">管理用</a>]\n";

	# 返信モードの場合
	if ($mode eq "res") {
		foreach $line (@lines) {
			($number,$date,$name,$email,$subj,$comment) = split(/<>/,$line);
			if ($number eq "$in{'resmode'}") { last; }
		}
		$res_comment = "\&gt\; $comment";
		$res_comment =~ s/<br>/\r\&gt\; /g;
		if ($emojimode) { $res_comment = &emojidel( $res_comment,0 ); }

		# 返信用項目を作成
		if ($subj =~ /^Re/) {
			$subj =~ s/Re//;
			$res_sub = "Re\[$number\]" . "$subj";

		} else {
			$res_sub = "Re\[$number\]\: $subj";
		}

		if ($emojimode) { $res_sub = &emojidel( $res_sub,0 ); }
		$com_wid = $com_wid + 2;

	} else {
		$res_subj = "";
		$res_comment = "";
	}

	$s_keyword =~ s/\r|\n//g;

	if ($s_keyword ne "") {
		@kanji = ();
		@hiragana = ();
		foreach (split(/!/,$s_keyword)) {
			($s_keyword_kan,$s_keyword_hira) = split(/=/,$_);
			push (@kanji,$s_keyword_kan);
			push (@hiragana,$s_keyword_hira);
		}

		$times = time;
		$back_key = $times;
		$kei = int(rand(8)) + 1;
		$back_key2 = $back_key * $kei;

		$to_kens = $#kanji + 1;
		$soeji = $back_key2 % $to_kens;
	}

	print <<"EOM";
<hr width=90% size=2></center>
<form method="POST" action="$script">
<input type=hidden name=mode value="msg">
EOM
	if ($s_keyword ne "") {
		print "<input type=hidden name=\"ushi\" value=\"$kanji[$soeji]\">\n";
	}
	print <<"EOM";
<blockquote><table border=0>
<tr><td nowrap><b>おなまえ</b></td>
<td><input type=text name=name size="$nam_wid" value="$c_name"></td></tr>
<tr><td nowrap><b>Ｅメール</b></td>
<td><input type=text name=email size="$nam_wid" value="$c_email"></td></tr>
<tr><td nowrap><b>題　　名</b></td>
<td><input type=text name=sub size="$subj_wid" value=\"$res_sub\">
　<input type=submit value="投稿する"><input type=reset value="リセット"></td></tr>
<tr><td colspan=2><b>コメント</b><br>
<textarea cols="$com_wid" rows=7 name=comment wrap="$wrap">$res_comment</textarea></td></tr>
<tr><td nowrap><b>ＵＲＬ</b></td>
<td><input type=text size="$url_wid" name=url value="http://$c_url"></td></tr>
EOM
	if ($s_keyword ne "") {
		print "<tr><td nowrap><b>キーワード</b></td>\n";
		print "<td><input type=text name=aikotoba size=\"$nam_wid\" value=\"\"></td></tr>\n";
		print "<tr><td>　</td>\n";
		print "<td><small>(キーワード<b><font color=blue>$kanji[$soeji]</font></b> をひらがなで入力してください)</small></td></tr>\n";
	}
	print <<"EOM";
<tr><td nowrap><b>削除キー</b></td>
<td><input type=password name=pwd size=8 maxlength=8 value="$c_pwd">
<small>(記事削除時に使用。英数字で8文字以内)</small></td></tr>
</table></form></blockquote><hr>
EOM
	if ($in{'page'} eq '') { $page = 0; } 
	else { $page = $in{'page'}; }

	# 記事数を取得
	$end_data = @lines - 1;
	$page_end = $page + ($plog - 1);
	if ($page_end >= $end_data) { $page_end = $end_data; }

	foreach ($page .. $page_end) {
		($number,$date,$name,$email,$subj,$comment,$url,$host,$pwd)
						 = split(/<>/,$lines[$_]);
		if ($emojimode) {
			if ($email) { $email = &emojidel( $email,0 ); }
			$name = &emojidel( $name,0 );
			if ($url) { $url = &emojidel( $url,0 ); }
			$subj = &emojidel( $subj,0 );
			$comment = &emojidel( $comment,0 );
		}

		if ($email) { $name = "<a href=\"mailto:$email\">$name</a>"; }
		if ($url) {
			if ($url =~ /hdml$|HDML$|wml$|WML$/) {
				$url = "<a href=\"http://www.note.ne.jp/ezgate2/?http://$url\" target='_top'>http://$url</a>\n";
			} else {
				$url = "<a href=\"http://$url\" target='_top'>http://$url</a>\n";
			}
		}
#		if ($url) { $url = "<a href=\"http://$url\" target='_top'>http://$url</a>\n"; }

		# 自動リンク
		if ($autolink) { &auto_link($comment); }

	print "<table border=0 cellpadding=0 cellspacing=0><tr>\n";
	print "<td valign=top>[$number] <font color=\"$subj_color\"><b>$subj</b></font> ";
	print "投稿者：<font color=\"$name_color\"><b>$name</b></font> ";
	print "<small>投稿日：$date</small></td><td>&nbsp;</td>\n";
	print "<td valign='top'><form action=\"$script\" method=\"POST\">\n";
	print "<input type=submit value=\"返信\">\n";
	print "<input type=hidden name=mode value=\"res\">\n";
	print "<input type=hidden name=resmode value=\"$number\">\n";
	print "</td></form></tr></table>\n";
	print "<blockquote>$comment<P>$url</blockquote><hr>\n";

	}
	print "<table border=0 width='100%'><tr>\n";

	# 改頁処理
	$next_line = $page_end + 1;
	$back_line = $page - $plog;

	# 前頁処理
	if ($back_line >= 0) {
		print "<td><form method=\"POST\" action=\"$script\">\n";
		print "<input type=hidden name=page value=\"$back_line\">\n";
		print "<input type=submit value=\"前の$plog件\">\n";
		print "</form></td>\n";	
	}

	# 次頁処理
	if ($page_end ne $end_data) {
		print "<td><form method=\"POST\" action=\"$script\">\n";
		print "<input type=hidden name=page value=\"$next_line\">\n";
		print "<input type=submit value=\"次の$plog件\">\n";
		print "</form></td>\n";
	}

	# ユーザ記事削除フォーム
	print "<td align=right><table border=0><tr><td align=center>\n";
	print "<form acion=\"$script\" method=\"POST\">\n";
	print "<font color=$t_color size=2>以下のフォームから自分の投稿記事を削除できます</font><br>\n";
	print "■記事No<input type=text name=usr_no size=4>\n";
	print "■削除キー<input type=password name=usr_key size=6>\n";
	print "<input type=submit value=\"記事削除\">\n";
	print "<input type=hidden name=mode value=\"usr_del\">\n";
	print "</form></td></tr></table></td></tr></table>\n";
	&footer;
	exit;
}


## --- ログ書き込み処理
sub regist {
	# 他サイトからのアクセスを排除
	if ($base_url ne ".") {
		$ref_url = $ENV{'HTTP_REFERER'};
		$ref_url =~ s/\?(.|\n)*//ig;
		$ref_url =~ s/\%7E/\~/ig;
		if ($ref_url && $ref_url !~ $base_url) { &error("不正なアクセスです。"); }
	}

	# フォームセキュリティ
	if ($name eq "") { &error("名前が入力されていません。"); }
	if ($comment eq "") { &error("コメントが入力されていません。"); }
	if ($email && $email !~ /(.*)\@(.*)\.(.*)/) {
		&error("Ｅメールの入力内容が正しくありません。");
	}

	# ファイルロック
	if ($lockkey) { &lock; }

	# ログを開く
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);

	# ログチェック
	$init = $lines[0];
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }

	# 設定を認識
#	($head,$title,$t_color,$t_size,$t_face,$bgr,
#		$bgc,$text,$link,$vlink,$alink,$home,$max,
#			$subj_color,$name_color,$mail1,$mail2)
#						 = split(/<>/,$init);

	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$init);

	# 二重投稿の禁止
	($knum,$kdate,$kname,$kemail,$ksub,$kcom) = split(/<>/,$lines[1]);
	if ($name eq $kname && $comment eq $kcom) { &error("二重投稿は禁止です"); }

	#ホスト名取得
	&get_host;

	# 書き込み制限
	@reject = ();
	@reject = split(/!/,$s_reject);
	$host_reject = 0;
	foreach (@reject) {
		if ($_  eq '') { last ; }
		$_ =~ s/\*/\.*/g;
		if ($host =~ /$_/) { $host_reject = 1; last; }
	}
	if ($host_reject) {
		&error("Writeが許可されていません。");
		exit;
	}

	$s_keyword =~ s/\r|\n//g;

	if ($s_keyword ne "") {
		@kanji = ();
		@hiragana = ();
		foreach (split(/!/,$s_keyword)) {
			($s_keyword_kan,$s_keyword_hira) = split(/=/,$_);
			push (@kanji,$s_keyword_kan);
			push (@hiragana,$s_keyword_hira);
		}

		$kens = $#kanji;

		$hantei = 0;
		foreach $cnt (0 .. $kens) {
			if ($in{'ushi'} eq $kanji[$cnt]) {
				if ($in{'aikotoba'} ne $hiragana[$cnt]) {
					$hantei = 1;
					last;
				} else {
					$hantei = 2;
					last;
				}
			}
		}

		if ($hantei == 0) {
			&error("キーワードが削除された可能\性があります。もう一度最初からお願いします。");
			exit;
		} elsif ($hantei == 1) {
			&error ("キーワードが一致しません");
			exit;
		}
	}

	shift(@lines);
	
	# 過去ログへ移行データ抽出
	$u_i=0;
	$u_end=0;
	@u_new=();
	@u_kako=();
	foreach (@lines) {
		$u_i++;
		if ($u_i > $max-1) { $u_end=1; }
		if ($u_end == 0) { push(@u_new,$_); }
		elsif ($u_end && $pastkey) { push(@u_kako,$_); }
	}

	## 過去ログを取得する場合
	if ($pastkey && $#lines >= $max-1) { &pastlog; }

	# 記事Noカウント及び最大記事数超を切り捨て
	$number = $knum + 1;
#	if ($#lines >= $max-1) { splice(@lines,$max-1); }

	# 削除キーを暗号化
	if ($pwd) { &pass_ango($pwd); }

	# ホスト名を取得
	&get_host;

	# 絵文字削除
	if ($emojimode == 0) {
		$name = &emojidel( $name,0 );
		if ($email) { $email = &emojidel( $email,0 ); }
		$sub = &emojidel( $sub,0 );
		$comment = &emojidel( $comment,0 );
		if ($url) { $url = &emojidel( $url,0 ); }
	} else {
		$name = &emojidel( $name,1 );
		if ($email) { $email = &emojidel( $email,1 ); }
		$sub = &emojidel( $sub,1 );
		$comment = &emojidel( $comment,1 );
		if ($url) { $url = &emojidel( $url,1 ); }
	}


	# ログをフォーマット
	unshift (@u_new,"$number<>$date<>$name<>$email<>$sub<>$comment<>$url<>$host<>$ango<>\n");

	# ヘッダ部を付加
	unshift (@u_new,$init);

	# ログを更新
	open(LOG,">$logfile") || &error("Can't write $logfile");
	print LOG @u_new;
	close(LOG);

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

	# クッキーを発行
	if ($agent != 2) { &set_cookie; }

	# メール処理
	if ($mail1 && $mail_me == 0 && $email ne "$mail1") { &mailto; }
	elsif ($mail1 && $mail_me) { &mailto; }
}

## --- フォームからのデータ処理
sub decode {
	if ($ENV{'REQUEST_METHOD'} eq "POST") {
		if ($ENV{'CONTENT_LENGTH'} > 51200) { &error("投稿量が大きすぎます。"); }
		read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
	} else { $buffer = $ENV{'QUERY_STRING'}; }

	@pairs = split(/&/,$buffer);
	foreach $pair (@pairs) {
		($name, $value) = split(/=/, $pair);
		$value =~ tr/+/ /;
		$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

		# S-JIS変換
		&jcode'convert(*value,'sjis');

		# タグ処理
		$value =~ s/&/&amp;/g;
		$value =~ s/"/&quot;/g;
		$value =~ s/</&lt;/g;
		$value =~ s/>/&gt;/g;

		$in{$name} = $value;
	}

	$name = $in{'name'};
	$name =~ s/\r//g;
	$name =~ s/\n//g;
	$comment = $in{'comment'};
	$comment =~ s/\r\n/<br>/g;
	$comment =~ s/\r/<br>/g;
	$comment =~ s/\n/<br>/g;
	$email = $in{'email'};
	$email =~ s/\r//g;
	$email =~ s/\n//g;
	$url = $in{'url'};
	$url =~ s/\r//g;
	$url =~ s/\n//g;
	$url =~ s/^http\:\/\///;
	$mode = $in{'mode'};
	$pwd = $in{'pwd'};
	$pwd =~ s/\r//g;
	$pwd =~ s/\n//g;
	$sub = $in{'sub'};
	$sub =~ s/\r//g;
	$sub =~ s/\n//g;
	if ($sub eq "") { $sub = "無題"; }

	# 日時の取得
	$ENV{'TZ'} = "JST-9";
	($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

	$year += 1900;
	$mon++;
	if ($mon  < 10) { $mon  = "0$mon";  }
	if ($mday < 10) { $mday = "0$mday"; }
	if ($hour < 10) { $hour = "0$hour"; }
	if ($min  < 10) { $min  = "0$min";  }

	# 日時のフォーマット
	if ($date_type) {
		$youbi = ('日','月','火','水','木','金','土') [$wday];
		$date = "$year年$mon月$mday日 ($youbi) $hour時$min分";
	} else {
		$youbi = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday];
		$date = "$year/$mon/$mday($youbi) $hour\:$min";
	}
}

#--------------------------------------------------------------------
# 機能一覧(i-mode/J-SKY/ドットi)　V1.11
#--------------------------------------------------------------------
sub c_menu {
	# ログの読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	# ヘッダ出力
	&header;

#	$content .= "<center><font color=\"$i_t_color\">「$i_title」</font><br>\n";

	if ($agent == 2) {
		$one_icon = "\&\#63879;";
		$two_icon = "\&\#63880;";
		$three_icon = "\&\#63881;";
		$four_icon = "\&\#63882;";
		$five_icon = "\&\#63883;";
		$six_icon = "\&\#63884;";
		$seven_icon = "\&\#63885;";
		$eight_icon = "\&\#63886;";
		$nine_icon = "\&\#63887;";
		$zero_icon = "\&\#63888;";
	}
	if ($agent == 4) {
		$one_icon = "\&\#62134;";
		$two_icon = "\&\#62135;";
		$three_icon = "\&\#62136;";
		$four_icon = "\&\#62137;";
		$five_icon = "\&\#62138;";
		$six_icon = "\&\#62139;";
		$seven_icon = "\&\#62140;";
		$eight_icon = "\&\#62141;";
		$nine_icon = "\&\#62142;";
		$zero_icon = "\&\#62133;";
	}

	if ($agent != 3) {
		# 項目表示
		$content .= "<center><font color=\"$i_t_color\">「$i_title」</font></center><br>\n";
		$content .= "<a href=\"$script?mode=view\" accesskey=\"1\">";
		$content .= "$one_icon一覧表\示</a><br>\n";
		$content .= "<a href=\"$script?mode=frm\" accesskey=\"2\">";
		$content .= "$two_icon新規書込</a><br>\n";
		$content .= "<a href=\"$script?mode=find\" accesskey=\"3\">";
		$content .= "$three_icon記事の検索</a><br>\n";
		$content .= "<a href=\"$script?mode=howto\" accesskey=\"4\">";
		$content .= "$four_icon使い方の説明</a><br>\n";
		$content .= "<a href=\"$script?mode=dfrm\" accesskey=\"5\">";
		$content .= "$five_icon記事の削除</a><br>\n";
		$content .= "<a href=\"$i_home\" accesskey=\"0\">";
		$content .= "$zero_icon\Homeへ戻る</a><br>\n";
		$content .= "<center><hr width'90%' size=\"2\"></center>\n";
	} else {
		# 項目表示
		$content .= "<center><font color=\"$j_t_color\">「$j_title」</font></center><br>\n";
		$content .= "<a href=\"$script?mode=view\" directkey=\"1\">";
		$content .= "一覧表\示</a><br>\n";
		$content .= "<a href=\"$script?mode=frm\" directkey=\"2\">";
		$content .= "新規書込</a><br>\n";
		$content .= "<a href=\"$script?mode=find\" directkey=\"3\">";
		$content .= "記事の検索</a><br>\n";
		$content .= "<a href=\"$script?mode=howto\" directkey=\"4\">";
		$content .= "使い方の説明</a><br>\n";
		$content .= "<a href=\"$script?mode=dfrm\" directkey=\"5\">";
		$content .= "記事の削除</a><br>\n";
		$content .= "<a href=\"$j_home\" directkey=\"0\">";
		$content .= "Homeへ戻る</a><br>\n";
		$content .= "<center><hr></center>\n";
	}
	
	# フッタ出力
	&footer;
	&l_print;
	exit;
}


#--------------------------------------------------------------------
# 機能一覧表示(EZweb用)
#--------------------------------------------------------------------
sub wap_menu {
	# ログの読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	# ヘッダ出力
	&header;
	
	# カードヘッダ出力
	print "<CHOICE name=\"top\" title=\"$e_title\" bookmark=\"$fscript\" IDEFAULT=0>\n";
	
	# ホームの戻りボタンを出力
	print "<ACTION type=\"SOFT1\" TASK=\"GO\" DEST=\"$e_home\" ICON=\"112\" LABEL=\"Home\">\n";
	
	# タイトル表示
	print "<CENTER>「$e_title」\n";
	
	# 項目表示
	print "<CE TASK=\"GO\" DEST=\"$script?mode=view\" LABEL=\"表\示\">[一覧表\示]\n";
	print "<CE TASK=\"GO\" DEST=\"$script?mode=frm\" LABEL=\"書込\">[新規書込]\n";
	print "<CE TASK=\"GO\" DEST=\"$script?mode=find\" LABEL=\"検索\">[記事の検索]\n";
	print "<CE TASK=\"GO\" DEST=\"$script?mode=howto\" LABEL=\"説明\">[使い方の説明]\n";
	print "<CE TASK=\"GO\" DEST=\"$script?mode=dfrm\" LABEL=\"削除\">[記事の削除]\n";
	
	# カードフッダー出力
	print "</CHOICE>\n";
	
	print "</HDML>\n";
	exit;
}

#--------------------------------------------------------------------
# 掲示板の使い方(i-mode/J-SKY/ドットi)
#--------------------------------------------------------------------
sub c_howto {
	# ログの読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	&header;
	
	if ($emojimode) { $emojic = "使用できます。但し、\表\示は同じ携帯会社のもののみです。"; }
	   else { $emojic = "使用できません。投稿時に絵文字を記述しても削除されます。"; }
	
	if ($agent != 3) {
		$content .= "<center><font color=\"$i_t_color\">$i_title</font><br>\n";
		$content .= "掲示板利用の注意<hr width='90%' size=\"2\"></center>\n";
	} else {
		$content .= "<center><font color=\"$j_t_color\">$j_title</font><br>\n";
		$content .= "掲示板利用の注意<hr></center>\n";
	}
	$content .= "<ol start=\"1\" type=\"1\">\n";
	$content .= "<li>この掲示板は<font color=\"red\">クッキー対応</font>です。１度記事を投稿いただくと、おなまえ、Eﾒｰﾙ、URL、削除キーの情報は２回目以降は自動入力されます。(i-mode除く)\n";
	$content .= "<li>記事を投稿する上での必須入力項目は<font color=\"red\">おなまえとﾒｯｾｰｼﾞとｷｰﾜｰﾄﾞ</font>です。Eﾒｰﾙ、URL、題名、削除ｷｰは任意です。\n";
	$content .= "<li>記事には、<font color=\"red\">半角カナは一切使用しないで下さい。</font>PC\表\示時に文字化けの原因となります。\n";
	$content .= "<li>携帯専用の絵文字は<font color=\"red\">$emojic</font>\n";
	$content .= "<li>記事の投稿時に<font color=\"red\">削除キー</font>にパスワード(英数字で8文字以内)を入れておくと、その記事は次回削除キーによって削除することができます。\n";
	$content .= "<li>投稿時に<font color=\"red\">ｷｰﾜｰﾄﾞ</font>の入力項目があった場合は、ｷｰﾜｰﾄﾞを<font color=\"red\">ひらがな</font>変えて入力してください。\n";
	$content .= "<li>記事の保持件数は<font color=\"red\">最大 $max件</font>です。それを超えると古い順に自動削除されます。\n";
	$content .= "<li>既存の記事に簡単に<font color=\"red\">返信</font>することができます。各記事にある「返信」を押すと投稿フォームが返信用となります。\n";
	$content .= "<li>投稿記事から<font color=\"red\">キーワードによって簡易検索ができます。</font>メニュー一覧の「ワード検索」を選択すると検索モードとなります。\n";
	$content .= "<li>新規投稿、簡易検索、記事の削除はメニュー一覧より行えます。\n";
	$content .= "<li>管理者が著しく不利益と判断する記事や他人を誹謗中傷する記事は\予\告なく削除することがあります。\n";
	$content .= "</ol>\n";
	
	if ($agent != 3) {
		$content .= "<center><hr width='90%' size=\"2\">\n";
		$content .= "<a href=\"$i_home\" accesskey=\"1\">1.Home</a>\n";
		$content .= "&nbsp;<a href=\"$script?mode=menu\" accesskey=\"2\">2.ﾒﾆｭｰ一覧</a>\n";
		$content .= "<hr width='90%' size=\"2\"></center>\n";
	} else {
		$content .= "<center><hr>\n";
		$content .= "<a href=\"$j_home\" directkey=\"1\">Home</a><br>\n";
		$content .= "<a href=\"$script?mode=menu\" directkey=\"2\">ﾒﾆｭｰ一覧</a>\n";
		$content .= "<hr></center>\n";
	}
	
	&footer;
	&l_print;
	exit;
}

#--------------------------------------------------------------------
# 掲示板の使い方(EZweb用)
#--------------------------------------------------------------------
sub wap_howto {
	# ログの読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	&header;
	
	print "<DISPLAY name=\"siyou\" title=\"$e_title\" bookmark=\"$fscript\">\n";
	print "<CENTER>$e_title\n";
	print "<CENTER>&nbsp;--------------&nbsp;<br>\n";
	print "<CENTER>掲示板利用の注意<br>\n";
	print "<CENTER>&nbsp;--------------&nbsp;<br>\n";
	print "&nbsp;1 この掲示板はクッキー対応です。１度記事を投稿いただくと、おなまえ、Eﾒｰﾙ、URL、削除キーの情報は2回目以降は自動入力されます。<br>\n";
	print "&nbsp;2 記事を投稿する上での必須入力項目は、おなまえとﾒｯｾｰｼﾞとｷｰﾜｰﾄﾞです。Eﾒｰﾙ、URL、題名、削除ｷｰは任意です。<br>\n";
	print "&nbsp;3 記事には、半角カナは一切使用しないで下さい。PC\表\示時に文字化けの原因となります。<br>\n";
	print "&nbsp;4 記事の投稿時に削除キーにパスワード(英数字で8文字以内)を入れておくと、その記事は次回削除キーによって削除することができます。<br>\n";
	print "&nbsp;5 投稿時にｷｰﾜｰﾄﾞの入力項目があった場合は、ｷｰﾜｰﾄﾞをひらがなに変えて入力してください。<br>\n";
	print "&nbsp;6 記事の保持件数は最大 $max件です。それを超えると古い順に自動削除されます。<br>\n";
	print "&nbsp;7 既存の記事に簡単に返信することができます。各記事にある「返信」を押すと投稿フォームが返信用となります。<br>\n";
	print "&nbsp;8 投稿記事からキーワードによって簡易検索ができます。メニュー一覧の「ワード検索」を選択すると検索モードとなります。<br>\n";
	print "&nbsp;9 新規投稿、簡易検索、記事の削除はメニュー一覧より行えます。<br>\n";
	print "10 管理者が著しく不利益と判断する記事や他人を誹謗中傷する記事は\予\告\なく削除することがあります。<br>\n";
	print "<CENTER>&nbsp;--------------&nbsp;<br>\n";
	print "<A TASK=\"GO\" DEST=\"$e_home\" LABEL=\"Home\" accesskey=\"1\">Home</A>\n";
	print "<A TASK=\"GO\" DEST=\"$script?mode=menu\" LABEL=\"ﾒﾆｭｰ\" accesskey=\"2\">ﾒﾆｭｰ一覧</A>\n";
	
	&footer;
	exit;
}

#--------------------------------------------------------------------
# 掲示板の使い方(EZweb WAP2.0用)
#--------------------------------------------------------------------
sub wap2_howto {
	# ログの読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部を認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	&header;

	# ソフトキー制御
	$content .= "<wml:do name=\"top\" label=\"Homeへ戻る\" type=\"options\">\n";
	$content .= "<wml:go href=\"$e2_home\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"itiran\" label=\"投稿表\示一覧へ戻る\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"kensaku\" label=\"ワード検索\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=find\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"act\" label=\"\" type=\"accept\">\n";
	$content .= "<wml:noop />\n";
	$content .= "</wml:do>\n";

	# 表示開始
	if ($e2_t_size == 1) {
		$title_sz = '<small>';
		$title_sz_e = '</small>';
	} elsif ($e2_t_size == 3) {
		$title_sz = '<big>';
		$title_sz_e = '</big>';
	} else {
		$title_sz = '';
		$title_sz_e = '';
	}

	$content .= "<center><font color=\"$e2_t_color\">$title_sz\n";
	$content .= "$e2_title $title_sz_e</font><br />\n";
	$content .= "<small>掲示板利用の注意</small><hr width='90%' size=\"2\"></center>\n";
	
	$content .= "<ol start=\"1\" type=\"1\">\n";
	$content .= "<li>この掲示板は<font color=\"red\">クッキー対応</font>です。１度記事を投稿いただくと、おなまえ、Eﾒｰﾙ、URL、削除キーの情報は２回目以降は自動入力されます。</li>\n";
	$content .= "<li>投稿内容には、<b>タグは一切使用できません。</b></li>\n";
	$content .= "<li>記事を投稿する上での必須入力項目は<font color=\"red\">「おなまえ」</font>と<font color=\"red\">「メッセージ」</font>と<font color=\"red\">「キーワード」</font>です。Eﾒｰﾙ、URL、題名、削除ｷｰは任意です。</li>\n";
	$content .= "<li>記事には、<font color=\"red\">半角カナは一切使用しないで下さい。</font>文字化けの原因となります。</li>\n";
	$content .= "<li>記事の投稿時に<font color=\"red\">「削除キー」</font>にパスワード（英数字で8文字以内）を入れておくと、その記事は次回<font color=\"red\">削除キー</font>によって削除することができます。</li>\n";
	$content .= "<li>投稿時に<font color=\"red\">「キーワード」</font>の入力項目があった場合は、キーワードを<font color=\"red\">ひらがな</font>に変えて入力してください。</li>\n";
	$content .= "<li>記事の保持件数は<font color=\"red\">最大 $max件</font>です。それを超えると古い順に自動削除されます。</li>\n";
	$content .= "<li>既存の記事に簡単に<font color=\"red\">「返信」</font>することができます。各記事にある<font color=\"red\">「返信」ボタン</font>を押すと投稿フォームが返信用となります。</li>\n";
	$content .= "<li>投稿記事から<font color=\"red\">「キーワード」によって簡易検索ができます。</font>メニューキー内の「ワード検索」を選択すると検索モードとなります。</li>\n";
	$content .= "<li>管理者が著しく不利益と判断する記事や他人を誹謗中傷する記事は\予\告\なく削除することがあります。</li></ol>\n";
	$content .= "<center><hr width='90%' /></center>\n";
	
	&footer;
	&l_print;
	exit;
}

## --- 掲示板の使い方メッセージ
sub howto {
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);

	# 環境設定部を認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2) = split(/<>/,$lines[0]);

	&header;
	print <<"HTML";
[<a href="$script\?">掲示板にもどる</a>]
<table width="100%">
<tr><th bgcolor="$t_color">
<font color=#FFFFFF>掲示板の利用上の注意</font>
</th></tr></table>
<P><blockquote>
<OL><LI>この掲示板は<b>クッキー対応</b>です。１度記事を投稿いただくと、おなまえ、Ｅメール、ＵＲＬ、削除キーの情報は２回目以降は自動入力されます。（ただし利用者のブラウザがクッキー対応の場合）<P>
<LI>投稿内容には、<b>タグは一切使用できません。</b><P>
<LI>記事を投稿する上での必須入力項目は<b>「おなまえ」</b>と<b>「メッセージ」</b>と<b>「キーワード」</b>です。Ｅメール、ＵＲＬ、題名、削除キーは任意です。<P>
<LI>記事には、<b>半角カナは一切使用しないで下さい。</b>文字化けの原因となります。<P>
<LI>記事の投稿時に<b>「削除キー」</b>にパスワード（英数字で8文字以内）を入れておくと、その記事は次回<b>削除キー</b>によって削除することができます。<P>
<LI>「キーワード」欄が表\示された場合は、メッセージのキーワードを<b>ひらがな</b>になおして入力してください。
<LI>記事の保持件数は<b>最大 $max件</b>です。それを超えると古い順に自動削除されます。<P>
<LI>既存の記事に簡単に<b>「返信」</b>することができます。各記事にある<b>「返信」ボタン</b>を押すと投稿フォームが返信用となります。<P>
<LI>過去の投稿記事から<b>「キーワード」によって簡易検索ができます。</b>トップメニューの<a href="$script?mode=find">「ワード検索」</a>のリンクをクリックすると検索モードとなります。<P>
<LI>管理者が著しく不利益と判断する記事や他人を誹謗中傷する記事は\予\告\なく削除することがあります。</OL>
</blockquote><hr>
HTML
	&footer;
	exit;
}

#--------------------------------------------------------------------
# ワード検索結果表示(i-mode/J-SKY/ドットi)
#--------------------------------------------------------------------
sub c_find_view {
	# ログファイルの読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部の認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	&header;

	if ($agent != 3) {
		$content .= "<center><font color=\"$i_t_color\">$i_title</font><br>\n";
	} else {
		$content .= "<center><font color=\"$j_t_color\">$j_title</font><br>\n";
	}
	
	# ワード検索の実行と結果表示
	if ($in{'word'} ne "") {

		# 入力内容を整理
		$cond = $in{'cond'};
		$word = $in{'word'};
		$word =~ s/　/ /g;
		$word =~ s/\t/ /g;
		@pairs = split(/ /,$word);

		shift(@lines);

		@new = () ;

		# 検索処理
		foreach $line (@lines) {
			$flag = 0;
			foreach $pair (@pairs){
				if (index($line,$pair) >= 0){
					$flag = 1;
					if ($cond eq 'or') { last; }
				} else {
					if ($cond eq 'and'){ $flag = 0; last; }
				}
			}
			if ($flag == 1) { push(@new,$line); }
		}

		# 検索終了
		$count = @new;
		if ($agent != 3) {
			$content .= "<hr width='90%' size=\"2\"><font color=\"$i_t_color\">検索結果：$count件</font><br><hr width='90%' size=\"2\"></center>\n";
		} else {
			$content .= "<hr><font color=\"$j_t_color\">検索結果：$count件</font><br><hr></center>\n";
		}

		# 検索表示
		if ($in{'page'} eq '') { $page = 0; }
		else { $page = $in{'page'}; }
	
		# 記事数を取得
		$end_data = @new - 1;
		if ($agent != 3) { $page_end = $page + ($i_plog - 1); }
					else { $page_end = $page + ($j_plog - 1); }
		if ($page_end >= $end_data) { $page_end = $end_data; }
	
		foreach ($page .. $page_end) {
			($number,$date,$name,$email,$subj,$comment,$url) = split(/<>/,$new[$_]);
			
			if ($emojimode) {
				if ($email) { $email = &emojidel( $email,0 ); }
				$name = &emojidel( $name,1 );
				if ($url) { $url = &emojidel( $url,0 ); }
				$subj = &emojidel( $subj,1 );
				$comment = &emojidel( $comment,1 );
			}

			if ($email) { $name = "<a href=\"mailto:$email\">$name</a>"; }
#			if ($url) { $url = "<a href=\"http://$url\" target='_top'>http://$url</a>"; }

			# 自動リンク
			if ($autolink) { &auto_link($comment); }

			if ($agent != 3) {
				$content .= "[$number] <font color=\"$i_subj_color\">$subj</font><br>\n";
				$content .= "投稿者：<font color=\"$i_name_color\">$name</font><br>\n";
			} else {
				$content .= "[$number] <font color=\"$j_subj_color\">$subj</font><br>\n";
				$content .= "投稿者：<font color=\"$j_name_color\">$name</font><br>\n";
			}
			$content .= "投稿日：$date<br>\n";
			
			if ($url) {
				if ($url =~ /hdml$|HDML$|wml$|WML$/) {
					# EZ GATE経由でリンクを貼る
					$content .= "<a href=\"http://www.note.ne.jp/ezgate2/?http://$url\">";
					if ($agent == 2) { $content .= "\&\#63721;"; }
					if ($agent == 3) { $content .= '$G*'; }
					if ($agent == 4) { $content .= "\&\#61796;"; }
					$content .= "</a>ホーム<br>\n";
				} else {
					$content .= "<a href=\"http://$url\">";
					if ($agent == 2) { $content .= "\&\#63684;"; }
					if ($agent == 3) { $content .= '$GV'; }
					if ($agent == 4) { $content .= "\&\#61829;"; }
					$content .= "</a>ホーム<br>\n";
				}
			}
			if ($agent == 3) { $u_method = 'GET'; }
			   else { $u_method = 'POST'; }
			$content .= "<form action=\"$script\" method=\"$u_method\">\n";
			$content .= "<input type=\"submit\" value=\"返信\">\n";
			$content .= "<input type=\"hidden\" name=\"mode\" value=\"res\">\n";
			$content .= "<input type=\"hidden\" name=\"resmode\" value=\"$number\">\n";
			$content .= "</form>\n";
			$content .= "$comment<hr>\n";
		}
		$content .= "<table border=\"0\" width='100%'><tr>\n";
		
		# 改頁処理
		$next_line = $page_end + 1;
		if ($agent != 3) { $back_line = $page - $i_plog; }
					else { $back_line = $page - $j_plog; }
		
		# 前頁処理
		if ($agent == 3) { $u_method = 'GET'; }
		   else { $u_method = 'POST'; }
		if ($back_line >= 0) {
			$content .= "<td><form method=\"$u_method\" action=\"$script\">\n";
			$content .= "<input type=\"hidden\" name=\"page\" value=\"$back_line\">\n";
			$content .= "<input type=\"hidden\" name=\"mode\" value=\"find_view\">\n";
			$content .= "<input type=\"hidden\" name=\"cond\" value=\"$cond\">\n";
			$content .= "<input type=\"hidden\" name=\"word\" value=\"$word\">\n";
			if ($agent != 3) {
				$content .= "<input type=\"submit\" value=\"前の$i_plog件\">\n";
			} else {
				$content .= "<input type=\"submit\" value=\"前の$j_plog件\">\n";
			}
			$content .= "</form></td>\n";
		}
		
		# 次頁処理
		if ($page_end ne $end_data) {
			$content .= "<td><form method=\"$u_method\" action=\"$script\">\n";
			$content .= "<input type=\"hidden\" name=\"page\" value=\"$next_line\">\n";
			$content .= "<input type=\"hidden\" name=\"mode\" value=\"find_view\">\n";
			$content .= "<input type=\"hidden\" name=\"cond\" value=\"$cond\">\n";
			$content .= "<input type=\"hidden\" name=\"word\" value=\"$word\">\n";
			if ($agent != 3) {
				$content .= "<input type=\"submit\" value=\"次の$i_plog件\">\n";
			} else {
				$content .= "<input type=\"submit\" value=\"次の$j_plog件\">\n";
			}
			$content .= "</form></td>\n";
		}
		
		$content .= "</tr>\n";
		if ($agent != 3) {
			$content .= "<tr><td><a href=\"$i_home\">Home</a></td>\n";
		} else {
			$content .= "<tr><td><a href=\"$j_home\">Home</a></td>\n";
		}
		$content .= "<td><form method=\"$u_method\" action=\"$script\">\n";
		$content .= "<input type=\"hidden\" name=\"mode\" value=\"menu\">\n";
		$content .= "<input type=\"submit\" value=\"ﾒﾆｭｰ一覧\">\n";
		$content .= "</form></td>\n";
		
		$content .= "</tr></table>\n";
		
	} else {
		if ($agent != 3) {
			$content .= "ﾜｰﾄﾞ検索結果<hr widht='90%' size=\"2\">\n";
			$content .= "<font color=\"red\">検索文字が<br>入力されていません。</font></center>\n";
		} else {
			$content .= "ﾜｰﾄﾞ検索結果<hr>\n";
			$content .= "<font color=\"red\">検索文字が<br>入力されていません。</font></center>\n";
		}
	}
	if ($agent != 3) {
		$content .= "<center><hr width='90%' size=\"2\"></center>\n";
	} else {
		$content .= "<center><hr></center>\n";
	}
		
	&footer;
	&l_print;
	exit;
}

#--------------------------------------------------------------------
#  ワード検索結果表示(EZweb用)
#--------------------------------------------------------------------
sub wap_find_view {
	# ログファイルの読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部の認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	&header;

	# 内容表示
	print "<DISPLAY name=\"ken_view\" title=\"$e_title\" bookmark=\"$fscript\">\n";
	print "<CENTER>$e_title<br>\n";
	print "<CENTER>ﾜｰﾄﾞ検索結果\n";
	print "<CENTER>&nbsp;--------------&nbsp;<br>\n";

	# ワード検索の実行と結果表示
	if ($in{'word'} ne "") {

		# 入力内容を整理
		$cond = $in{'cond'};
		$word = $in{'word'};
		$word =~ s/　/ /g;
		$word =~ s/\t/ /g;
		@pairs = split(/ /,$word);

		shift(@lines);

		@new = () ;

		# 検索処理
		foreach $line (@lines) {
			$flag = 0;
			foreach $pair (@pairs){
				if (index($line,$pair) >= 0){
					$flag = 1;
					if ($cond eq 'or') { last; }
				} else {
					if ($cond eq 'and'){ $flag = 0; last; }
				}
			}
			if ($flag == 1) { push(@new,$line); }
		}

		# 検索終了
		$count = @new;
		print "<CENTER>&nbsp;--------------&nbsp;<br>\n";
		print "<CENTER>検索結果：$count件<br>\n";
		print "<CENTER>&nbsp;--------------&nbsp;<br>\n";

		# 検索表示
		if ($in{'page'} eq '') { $page = 0; }
		else { $page = $in{'page'}; }
	
		# 記事数を取得
		$end_data = @new - 1;
		$page_end = $page + ($e_plog - 1);
		if ($page_end >= $end_data) { $page_end = $end_data; }

		foreach ($page .. $page_end) {
			($number,$date,$name,$email,$subj,$comment,$url) = split(/<>/,$new[$_]);
			if ($emojimode) {
				if ($email) { $email = &emojidel( $email,0 ); }
				$name = &emojidel( $name,1 );
				if ($url) { $url = &emojidel( $url,0 ); }
				$subj = &emojidel( $subj,1 );
				$comment = &emojidel( $comment,1 );
			}

			if ($email) {
				if ($ENV{'HTTP_X_UP_UPLINK'} =~ /[at][a-z]\.ezweb\.ne\.jp/){
					$name = "<A TASK=\"GO\" DEST=\"mailto:$email\" LABEL=\"ﾒｰﾙ\">$name</A>";
				} else {
					$name = "<A TASK=\"GO\" DEST=\"device:home/goto?svc=Email&SUB=sendMsg\" vars=\"TO=$email\" label=\"ﾒｰﾙ\">";
				}
			}
#			if ($url) { $url = "<a href=\"http://$url\" target='_top'>http://$url</a>"; }

			# 自動リンク
			if ($autolink) { &auto_link($comment); }

			print "[$number] $subj<br>\n";
			print "投稿者：$name<br>\n";
			print "投稿日：$date<br>\n";
			if ($url) {
				print "<A TASK=\"GO\" DEST=\"http://$url\" LABEL=\"URL\">";
				if ($url =~ /hdml$|HDML$|wml$|WML$/) {
					if ($ENV{'HTTP_X_UP_ISCOLOR'}) {
						print "<IMG ICON=\"155\">";
					} else {
						print "<IMG ICON=\"161\">";
					}
				} else {
					print "<IMG ICON=\"112\">";
			}
			print "</A>ホーム<br>\n";
			}
			$dest = "$script?mode=res";
			$dest .= "\&resmode=$number";
			print "<RIGHT><A TASK=\"GO\" DEST=\"$dest\" LABEL=\"返信\">返信</A><br>\n";
			print "$comment<br>\n";
			print "<CENTER>&nbsp;--------------&nbsp;<br>\n";
		}
		
		# 改頁処理
		$next_line = $page_end + 1;
		$back_line = $page - $e_plog;
		
		# 前頁処理
		if ($back_line >= 0) {
			$dest = "$script?mode=find_view";
			$dest .= "\&cond=$cond";
			$dest .= "\&word=$word";
			$dest .= "\&page=$back_line";
			print "<A TASK=\"GO\" DEST=\"$dest\" LABEL=\"back\" accesskey=\"1\">前の$e_plog件</A>\n";
		}
		
		# 次頁処理
		if ($page_end ne $end_data) {
			$dest = "$script?mode=find_view";
			$dest .= "\&cond=$cond";
			$dest .= "\&word=$word";
			$dest .= "\&page=$next_line";
			print "<A TASK=\"GO\" DEST=\"$dest\" LABEL=\"next\" accesskey=\"2\">次の$e_plog件</A>\n";
		}
		
		# Homeへ戻る
		print "<A TASK=\"GO\" DEST=\"$e_home\" LABEL=\"Home\" accesskey=\"3\">Home</A>\n";
		
		# 機能一覧
		$dest = "$script?mode=menu";
		print "<A TASK=\"GO\" DEST=\"$dest\" LABEL=\"ﾒﾆｭｰ\" accesskey=\"4\">ﾒﾆｭｰ一覧</A>\n";
	} else {
		print "<CENTER>検索文字列が<br>\n";
		print "<CENTER>入力されていません。<br>\n";
		
		print "<CENTER>&nbsp;--------------&nbsp;<br>\n";
		print "<A TASK=\"GO\" DEST=\"$e_home\" LABEL=\"Home\" accesskey=\"1\">Home</A>\n";
		$dest = "$script?mode=menu";
		print "<A TASK=\"GO\" DEST=\"$dest\" LABEL=\"ﾒﾆｭｰ\" accesskey=\"2\">ﾒﾆｭｰ一覧</A><br>\n";
	}
	&footer;
	exit;
}

#--------------------------------------------------------------------
# ワード検索結果表示(EZweb WAP2.0用)
#--------------------------------------------------------------------
sub wap2_find_view {
	# ログファイルの読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部の認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	&header;

	# ソフトキー制御
	$content .= "<wml:do name=\"top\" label=\"Homeへ戻る\" type=\"options\">\n";
	$content .= "<wml:go href=\"$e2_home\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"use\" label=\"掲示板の使い方\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=howto\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"itiran\" label=\"投稿表\示一覧へ戻る\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"sinki\" label=\"新規作成\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=frm\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"act\" label=\"\" type=\"accept\">\n";
	$content .= "<wml:noop />\n";
	$content .= "</wml:do>\n";

	# 表示開始
	if ($e2_t_size == 1) {
		$title_sz = '<small>';
		$title_sz_e = '</small>';
	} elsif ($e2_t_size == 3) {
		$title_sz = '<big>';
		$title_sz_e = '</big>';
	} else {
		$title_sz = '';
		$title_sz_e = '';
	}

	$contentwk = "<center><font color=\"$e2_t_color\">$title_sz\n";
	$contentwk .= "$e2_title $title_sz_e</font><br />\n";
#	$content .= "<small>ﾜｰﾄﾞ検索結果</small><hr width='90%' size=\"2\"></center>\n";

	# ワード検索の実行と結果表示
	if ($in{'word'} ne "") {

		# 入力内容を整理
		$cond = $in{'cond'};
		$word = $in{'word'};
		$word =~ s/　/ /g;
		$word =~ s/\t/ /g;
		@pairs = split(/ /,$word);

		shift(@lines);

		@new = () ;

		# 検索処理
		foreach $line (@lines) {
			$flag = 0;
			foreach $pair (@pairs){
				if (index($line,$pair) >= 0){
					$flag = 1;
					if ($cond eq 'or') { last; }
				} else {
					if ($cond eq 'and'){ $flag = 0; last; }
				}
			}
			if ($flag == 1) { push(@new,$line); }
		}

		# 検索終了
		$count = @new;
		$contentwk .= "<hr /><font color=$e2_t_color><small>検索結果：$count件</small></font><br /><hr /></center>\n";

		# 検索表示
		if ($in{'page'} eq '') { $page = 0; }
		else { $page = $in{'page'}; }
	
		# 記事数を取得
		$end_data = @new - 1;
		$page_end = $page + ($e2_plog - 1);
		if ($page_end >= $end_data) { $page_end = $end_data; }
	
		foreach ($page .. $page_end) {
			($number,$date,$name,$email,$subj,$comment,$url) = split(/<>/,$new[$_]);
			if ($emojimode) {
				if ($email) { $email = &emojidel( $email,0 ); }
				$name = &emojidel( $name,1 );
				if ($url) { $url = &emojidel( $url,0 ); }
				$subj = &emojidel( $subj,1 );
				$comment = &emojidel( $comment,1 );
			}

			if ($email) { $name = "<a href=\"mailto:$email\">$name</a>"; }
			if ($url) { $url = "<a href=\"http://$url\" target='_top'>http://$url</a>"; }

			# 自動リンク
			if ($autolink) { &auto_link($comment); }
		
			$contentwk .= "[$number] <font color=\"$e2_subj_color\"><b>$subj</b></font><br />\n";
			$contentwk .= "投稿者：<font color=\"$e2_name_color\"><b>$name</b></font><br />\n";
			$contentwk .= "<small>投稿日：$date</small><br />\n";
			$contentwk .= "<form action=\"$script\" method=\"POST\">\n";
			$contentwk .= "<input type=\"submit\" value=\"返信\" />\n";
			$contentwk .= "<input type=\"hidden\" name=\"mode\" value=\"res\" />\n";
			$contentwk .= "<input type=\"hidden\" name=\"resmode\" value=\"$number\" />\n";
			$contentwk .= "</form>\n";
			$contentwk .= "$comment<br /><br />$url<hr />\n";
		}
		$contentwk .= "<table border=0 width='100%'><tr>\n";
	
		# 改頁処理
		$next_line = $page_end + 1;
		$back_line = $page - $e2_plog;
	
		# 前頁処理
		if ($back_line >= 0) {
			$dest = "$script?mode=find_view";
			$dest .= "\&cond=$cond";
			$dest .= "\&word=$word";
			$dest .= "\&page=$back_line";
			$contentwk .= "<td><form method=\"POST\" action=\"$script\">\n";
			$contentwk .= "<input type=\"hidden\" name=\"page\" value=\"$back_line\" />\n";
			$contentwk .= "<input type=\"hidden\" name=\"mode\" value=\"find_view\" />\n";
			$contentwk .= "<input type=\"hidden\" name=\"cond\" value=\"$cond\" />\n";
			$contentwk .= "<input type=\"hidden\" name=\"word\" value=\"$word\" />\n";
			$contentwk .= "<input type=\"submit\" value=\"前の$e2_plog件\" />\n";
			$contentwk .= "</form></td>\n";
			$content .= "<wml:do name=\"kenmae\" label=\"検索結果(前の$e2_plog件表\示)\" type=\"options\">\n";
			$content .= "<wml:go href=\"$dest\" />\n";
			$content .= "</wml:do>\n";
		}
	
		# 次頁処理
		if ($page_end ne $end_data) {
			$dest = "$script?mode=find_view";
			$dest .= "\&cond=$cond";
			$dest .= "\&word=$word";
			$dest .= "\&page=$next_line";
			$contentwk .= "<td><form method=\"POST\" action=\"$script\">\n";
			$contentwk .= "<input type=\"hidden\" name=\"page\" value=\"$next_line\" />\n";
			$contentwk .= "<input type=\"hidden\" name=\"mode\" value=\"find_view\" />\n";
			$contentwk .= "<input type=\"hidden\" name=\"cond\" value=\"$cond\" />\n";
			$contentwk .= "<input type=\"hidden\" name=\"word\" value=\"$word\" />\n";
			$contentwk .= "<input type=\"submit\" value=\"次の$e2_plog件\" />\n";
			$contentwk .= "</form></td>\n";
			$content .= "<wml:do name=\"kentugi\" label=\"検索結果(次の$e2_plog件表\示)\" type=\"options\">\n";
			$content .= "<wml:go href=\"$dest\" />\n";
			$content .= "</wml:do>\n";
		}
		$contentwk .= "</tr></table>\n";
	
		$content .= $contentwk ;
	} else {
		$content .= "<center><small>ﾜｰﾄﾞ検索結果</small><hr width='90%' size=\"2\" />\n";
		$content .= "<font color=\"red\">検索文字が<br />入力されていません。</font><hr width='90%' size=\"2\" /></center>\n";
	}
	&footer;
	&l_print;
	exit;
}

#--------------------------------------------------------------------
# ワード検索サブルーチン(i-mode/J-SKY/ドットi)
#--------------------------------------------------------------------
sub c_find {
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部の認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	&header;

	if ($agent != 3) {
		$content .= "<center><font color=\"$i_t_color\">$i_title</font><br>\n";
		$content .= "ﾜｰﾄﾞ検索<hr width='90%' size=\"2\"></center>\n";
	} else {
		$content .= "<center><font color=\"$j_t_color\">$j_title</font><br>\n";
		$content .= "ﾜｰﾄﾞ検索<hr></center>\n";
	}
	$content .= "<center>複数文字列は<br>\n";
	$content .= "スペース区切り<br>\n";
	
	if ($agent == 2) {
		$alpha = 'istyle="1"';
		$sizea = 16;
		$hr = "<hr width='90%' size=\"2\">";
		$u_method = 'POST';
	}
	if ($agent == 3) {
		$alpha = 'mode="hiragana"';
		$sizea = 14;
		$hr = "<hr>";
		$u_method = 'GET';
	}
	if ($agent == 4) {
		$alpha = 'astyle="1"';
		$sizea = 16;
		$hr = "<hr width='90%' size=\"2\">";
		$u_method = 'POST';
	}
	
	# フォームの開始
	$content .= "<form action=\"$script\" method=\"$u_method\">\n";
	$content .= "<input type=\"hidden\" name=\"mode\" value=\"find_view\">\n";
	
	# 検索条件の指定
	$content .= "<input type=\"radio\" name=\"cond\" value=\"and\" checked>\n";
	$content .= "and検索<br>\n";
	$content .= "<input type=\"radio\" name=\"cond\" value=\"or\">\n";
	$content .= "or 検索<br>\n";
	
	# 検索文字列入力
	$content .= "検索文字列　　";
#	$content .= "　";
	$content .= "<br>\n";
	$content .= "<input type=\"text\" name=\"word\" size=\"$sizea\" $alpha><br>\n";
	
	# 検索/取消ボタン
	$content .= "<input type=\"submit\" value=\"検索\">\n";
	$content .= "<input type=\"reset\" value=\"取消\"><br>\n";
	
	# フォームタグ終わり
	$content .= "</form>\n";
	
	$content .= "$hr\n";
	
	if ($agent != 3) {
		$content .= "<a href=\"$i_home\" accesskey=\"1\">1.Home</a>\n";
		$content .= "&nbsp;<a href=\"$script?mode=menu\" accesskey=\"2\">2.ﾒﾆｭｰ一覧</a>\n";
	} else {
		$content .= "<a href=\"$j_home\" directkey=\"1\">Home</a><br>\n";
		$content .= "<a href=\"$script?mode=menu\" directkey=\"2\">ﾒﾆｭｰ一覧</a>\n";
	}
	$content .= "$hr\n";
	
	# 表示の中央寄せ終わり
	$content .= "</center>\n";
	
	# フッタ出力
	&footer;
	
	&l_print;
	exit;
}

#--------------------------------------------------------------------
# ワード検索サブルーチン(EZweb用)
#--------------------------------------------------------------------
sub wap_find {
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部の認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	&header;

	# 投稿指定
	$dest = "$script?mode=find_view";	# モード指定
	$dest .= "\&cond=\$scond";			# 検索条件
	$dest .= "\&word=\$sword";			# 検索文字列

	# 事前処理
	print "<NODISPLAY name=\"before\">\n";
	print "<ACTION type=\"accept\" task=\"go\" dest=\"#seek_form\" vars=\"scond=and\&sword=\" REL=\"next\">\n";
	print "</NODISPLAY>\n";

	# 検索フォーム出力
	print "<CHOICE name=\"seek_form\" title=\"$e_title\" bookmark=\"$fscript\">\n";
	print "<ACTION type=\"soft1\" task=\"go\" dest=\"$script?mode=menu\" label=\"戻る\">\n";
	print "<CENTER>ワード検索<br>\n";
	print "<CENTER>&nbsp;--------------&nbsp;<br>\n";
	print "<CENTER>複数文字列は<BR>\n";
	print "<CENTER>スペース区切り\n";
	print "<CE task=\"gosub\" dest=\"#icond\" label=\"入力\" receive=\"scond\">条件:\$scond\n";
	print "<CE task=\"go\" dest=\"#iword\" label=\"入力\" receive=\"sword\">文字列:\$sword\n";
	print "<CE task=\"go\" dest=\"$dest\" label=\"検索\">検索開始\n";
	print "</CHOICE>\n";

	# 検索条件入力
	print "<CHOICE KEY=\"scond\" name=\"icond\" title=\"$e_title\" bookmark=\"$fscript\">\n";
	print "<CE task=\"RETURN\" label=\"選択\" retvals=\"and\">AND検索\n";
	print "<CE task=\"RETURN\" label=\"選択\" retvals=\"or\">OR検索\n";
	print "</CHOICE>\n";

	# 検索文字列入力
	print "<ENTRY KEY=\"sword\" name=\"iword\" title=\"$e_title\" bookmark=\"$fscript\">\n";
	print "<ACTION type=\"accept\" task=\"go\" dest=\"#seek_form\">\n";
	print "検索文字列\n";
	print "</ENTRY>\n";

	print "</HDML>\n";
	exit;
}

#--------------------------------------------------------------------
# ワード検索サブルーチン(EZweb WAP2.0用)
#--------------------------------------------------------------------
sub wap2_find {
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);
	
	# 環境設定部の認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,
		$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2,
		$i_title,$i_t_color,$i_t_size,$i_t_face,$i_bgr,$i_bgc,$i_text,$i_link,
		$i_vlink,$i_alink,$i_home,$i_subj_color,$i_name_color,
		$j_title,$j_t_color,$j_t_size,$j_t_face,$j_bgr,$j_bgc,$j_text,$j_link,
		$j_vlink,$j_alink,$j_home,$j_subj_color,$j_name_color,
		$e2_title,$e2_t_color,$e2_t_size,$e2_t_face,$e2_bgr,$e2_bgc,$e2_text,$e2_link,
		$e2_vlink,$e2_alink,$e2_home,$e2_subj_color,$e2_name_color,$e_title,$e_home,
		$plog,$i_plog,$j_plog,$e2_plog,$e_plog,$s_reject,$s_keyword)
								 = split(/<>/,$lines[0]);

	&header;

	# ソフトキー制御
	$content .= "<wml:do name=\"top\" label=\"Homeへ戻る\" type=\"options\">\n";
	$content .= "<wml:go href=\"$e2_home\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"use\" label=\"掲示板の使い方\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=howto\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"itiran\" label=\"投稿表\示一覧へ戻る\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"sinki\" label=\"新規作成\" type=\"options\">\n";
	$content .= "<wml:go href=\"$script?mode=frm\" />\n";
	$content .= "</wml:do>\n";
	$content .= "<wml:do name=\"act\" label=\"\" type=\"accept\">\n";
	$content .= "<wml:noop />\n";
	$content .= "</wml:do>\n";

	# 表示開始
	if ($e2_t_size == 1) {
		$title_sz = '<small>';
		$title_sz_e = '</small>';
	} elsif ($e2_t_size == 3) {
		$title_sz = '<big>';
		$title_sz_e = '</big>';
	} else {
		$title_sz = '';
		$title_sz_e = '';
	}

	$content .= "<center><font color=\"$e2_t_color\">$title_sz\n";
	$content .= "$e2_title $title_sz_e</font><br />\n";
	$content .= "<small>ﾜｰﾄﾞ検索</small><hr width='90%' size=\"2\"></center>\n";
	$content .= "<center><small>複数文字列は<br />\n";
	$content .= "スペース区切り</small><br />\n";
	
	# フォームの開始
	$content .= "<form action=\"$script\" method=\"POST\">\n";
	$content .= "<input type=\"hidden\" name=\"mode\" value=\"find_view\" />\n";
	
	# 検索条件の指定
	$content .= "<input type=\"radio\" name=\"cond\" value=\"and\" checked=\"checked\" />\n";
	$content .= "and検索<br />\n";
	$content .= "<input type=\"radio\" name=\"cond\" value=\"or\" />\n";
	$content .= "or 検索<br />\n";
	
	# 検索文字列入力
	$content .= "検索文字列　　";
	$content .= "　";
	$content .= "<br />\n";
	$content .= "<input type=\"text\" name=\"word\" size=\"16\" format=\"*M\" /><br />\n";

	# 検索／取消ボタン
	$content .= "<input type=\"submit\" value=\"検索\" />\n";
	$content .= "<input type=\"reset\" value=\"取消\" /><br />\n";

	# フォームタグ終わり
	$content .= "</form>\n";

	# 表示の中央寄せ終わり
	$content .= "</center>\n";

	# フッター出力
	&footer;

	# 画面出力
	&l_print;
	
	exit;
}

## --- ワード検索サブルーチン
sub find {
	# ログを読み込み
	open(LOG,"$logfile") || &error("Can't open $logfile");
	@lines = <LOG>;
	close(LOG);

	# 環境設定部を認識
	($head,$title,$t_color,$t_size,$t_face,$bgr,$bgc,$text,$link,$vlink,$alink,$home,$max,$subj_color,$name_color,$mail1,$mail2) = split(/<>/,$lines[0]);

	&header;
	print <<"HTML";
[<a href="$script?">掲示板にもどる</a>]
<table width="100%">
<tr><th bgcolor="$t_color">
<font color=#FFFFFF>ワード検索</font>
</th></tr></table><P>
<center>
<table><tr><td>
■検索したい<b>キーワード</b>を入力し、検索条件を選択し「検索する」を押してください。<br>
■複数のキーワードを入力するときは、<b>半角スペース</b>で区切って下さい。
</td></tr></table>
<P>
<form action="$script" method="POST">
<input type=hidden name=mode value="find">
<table border=1>
<tr><th colspan=2>キーワード <input type=text name=word size=30></th></tr>
<tr><td>検索条件</td>
<td><input type=radio name=cond value="and" checked>AND
<input type=radio name=cond value="or">OR</td></tr>
<tr><th colspan=2><input type=submit value="検索する"><input type=reset value="リセット"></th></tr>
</table>
</form></center>
HTML

  # ワード検索の実行と結果表示
  if ($in{'word'} ne "") {

	# 入力内容を整理
	$cond = $in{'cond'};
	$word = $in{'word'};
	$word =~ s/　/ /g;
	$word =~ s/\t/ /g;
	@pairs = split(/ /,$word);

	shift(@lines);

	# 検索処理
	foreach $line (@lines) {
		$flag = 0;
		foreach $pair (@pairs){
			if (index($line,$pair) >= 0){
				$flag = 1;
				if ($cond eq 'or') { last; }
			} else {
				if ($cond eq 'and'){ $flag = 0; last; }
			}
		}
		if ($flag == 1) { push(@new,$line); }
	}
	# 検索終了
	$count = @new;
	print "<hr><b><font color=$t_color>検索結果：$count件</font></b><P>\n";
	print "<OL>\n";

	foreach $line (@new) {
		($number,$date,$name,$email,$subj,$comment,$url) = split(/<>/,$line);
		if ($emojimode) {
			if ($email) { $email = &emojidel( $email,0 ); }
			$name = &emojidel( $name,0 );
			if ($url) { $url = &emojidel( $url,0 ); }
			$subj = &emojidel( $subj,0 );
			$comment = &emojidel( $comment,0 );
		}

		if ($email) { $name = "<a href=\"mailto:$email\">$name</a>"; }
		if ($url) { $url = "<a href=\"http://$url\" target='_top'>http://$url</a>"; }

		# 自動リンク
		if ($autolink) { &auto_link($comment); }

		# 結果を表示
		print "<LI>[$number] <font color=\"$subj_color\"><b>$subj</b></font>\n";
		print "投稿者：<b>$name</b> <small>投稿日：$date</small><P>\n";
		print "<blockquote>$comment<P>$url</blockquote><hr>\n";
	}

	print "</OL>\n";
  }

  &footer;
  exit;
}

## --- ブラウザを判断しフォーム幅を調整
sub get_agent {
	# ブラウザ情報を取得
#	$agent = $ENV{'HTTP_USER_AGENT'};

	$nam_wid  = 20;
	$subj_wid = 25;
	$com_wid  = 56;
	$url_wid  = 50;

	# MSIE3の場合
	if ($u_agent =~ /MSIE 3/i) {
		$nam_wid  = 30;
		$subj_wid = 40;
		$com_wid  = 65;
		$url_wid  = 48;
	}

	# MSIE4の場合
	elsif ($u_agent =~ /MSIE (4|5|6)/i) {
		$nam_wid  = 30;
		$subj_wid = 38;
		$com_wid  = 58;
		$url_wid  = 68;
	}
}

## --- クッキーの発行
sub set_cookie { 
	($secg,$ming,$hourg,$mdayg,$mong,$yearg,$wdayg,$ydayg,$isdstg)
						= gmtime(time + 60*24*60*60);
	$yearg += 1900;
	if ($secg  < 10)  { $secg  = "0$secg";  }
	if ($ming  < 10)  { $ming  = "0$ming";  }
	if ($hourg < 10)  { $hourg = "0$hourg"; }
	if ($mdayg < 10)  { $mdayg = "0$mdayg"; }

	$mong = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep',
			'Oct','Nov','Dec') [$mong];
	$youbi = ('Sunday','Monday','Tuesday','Wednesday','Thursday',
			'Friday','Saturday') [$wdayg];
	$date_gmt = "$youbi, $mdayg\-$mong\-$yearg $hourg:$ming:$secg GMT";

	# 値の=をEnc_Eq_Codeに変換する
	$u_name = $name;
	$u_name =~ s/:/Enc_Co_Code/g;
	$u_name = "name\:$u_name";
	$u_name =~ s/=/Enc_Eq_Code/g;
	$u_mail = $email;
	$u_mail =~ s/:/Enc_Co_Code/g;
	$u_mail = "email\:$u_mail";
	$u_mail =~ s/=/Enc_Eq_Code/g;
	$u_url = $url;
	$u_url =~ s/:/Enc_Co_Code/g;
	$u_url = "url\:$u_url";
	$u_url =~ s/=/Enc_Eq_Code/g;
	$u_pwd = $pwd;
	$u_pwd =~ s/:/Enc_Co_Code/g;
	$u_pwd = "pwd\:$u_pwd";
	$u_pwd =~ s/=/Enc_Eq_Code/g;
	
	# 各文字列をEnc_Sep_Codeという文字でつなぐ
	$u_line = join('Enc_Sep_Code',$u_name,$u_mail,$u_url,$u_pwd);
	$cook = $u_line ;
	$cook =~ s/(\W)/sprintf("%%%02X",unpack("C",$1))/eg;
	
#	$cook="name\:$name\,email\:$email\,url\:$url\,pwd\:$pwd";
	print "Set-Cookie: LIGHTBBS=$cook; expires=$date_gmt\n";
}

## --- クッキーを取得
sub get_cookie {
	@pairs = split(/\;/,$ENV{'HTTP_COOKIE'});
	foreach $pair (@pairs) {
		local($name, $value) = split(/\=/, $pair);
		$name =~ s/ //g;
		$value =~ tr/+/ /;
		$value =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("C",hex($1))/eg; # URLデコードする
		$DUMMY{$name} = $value;
	}
	@pairs = split(/Enc_Sep_Code/,$DUMMY{'LIGHTBBS'});
	foreach $pair (@pairs) {
		local($name, $value) = split(/\:/, $pair);
		$name =~ s/Enc_Eq_Code/=/g;
		$value =~ s/Enc_Eq_Code/=/g;
		$value =~ s/Enc_Co_Code/:/g;
		$COOKIE{$name} = $value;
	}
	$c_name  = $COOKIE{'name'};
	$c_email = $COOKIE{'email'};
	$c_url   = $COOKIE{'url'};
	$c_pwd   = $COOKIE{'pwd'};

	if ($in{'name'}) { $c_name = $in{'name'}; }
	if ($in{'email'}) { $c_email = $in{'email'}; }
	if ($url) { $c_url = $url; }
	if ($in{'pwd'}) { $c_pwd = $in{'pwd'}; }
}

## --- エラー処理
sub error {
	if ($lockflag) { &unlock; }

	# PC処理
	if ($agent == 0) {
		print "Content-type: text/html\n\n";
		print "<html>\n<body bgcolor=#F5F5F5>\n";
		print "<center><hr width=75%><h3>ERROR !</h3>\n";
		print "<P><font color=#DD0000><B>$_[0]</B></font>\n";
		print "<P><hr width=75%></center>\n";
	}
	# EZweb用処理
	if ($agent == 1) {
		print "Content-type: text/x-hdml; charset=Shift_JIS\n\n";
		print "<HDML version=\"3.0\" markable=\"true\" ttl=\"0\">\n";
		print "<DISPLAY name=\"errd\" title=\"ERR\">\n";
		print "<ACTION TYPE=\"accept\" DEST=\"$script?mode=menu\" LABEL=\"ﾒﾆｭｰ\">\n";
		print "<CENTER>ERROR !<br>\n";
		print "<CENTER>&nbsp;--------------&nbsp;<br>\n";
		print "$_[0]<br>\n";
	}
	# EZweb(WAP2.0)用処理
	if ($agent == 6) {
		$content = <<"_HTML_";
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN"
"http://www.openwave.com/DTD/xhtml-basic.dtd">
_HTML_
		$content .= "<html>\n";
		$content .= "<head>\n";
		$content .= "<meta http-equiv=\"Content-type\" content=\"text/html; charset=Shift_JIS\" />\n";
		$content .= "<meta http-equiv=\"Cache-Control\" content=\"no-cache\" />\n";
		$content .= "</head>\n";
		$content .= "<body bgcolor=\"$e2_bgc\" text=\"$e2_text\" link=\"$e2_link\">\n";
		$content .= "<center><hr width='75%' /><h3>ERROR !</h3>\n";
		$content .= "<p><font color=\"#DD0000\"><b>$_[0]</b></font></p>\n";
		$content .= "<hr width='75%' /></center>\n";
	}
	if ($agent =~ /2|3|4/) {
		$content = "<HTML>\n";
		if ($agent != 3) {
			$content .= "<HEAD>\n";
			$content .= "<TITLE>$i_title</TITLE>\n";
		}
		$content .= "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n";
		if ($agent != 3) {
			$content .= "</HEAD>\n";
			$content .= "<BODY BGCOLOR=$i_bgc TEXT=$i_text LINK=$i_link vlink=$i_vlink alink=$i_alink>\n";
		} else {
			$content .= "<BODY BGCOLOR=$j_bgc TEXT=$j_text LINK=$j_link>\n";
		}
		$content .= "<center>\n";
		$content .= "<hr>\n";
		$content .= "<h3>ERROR!!</h3>\n";
		$content .= "<p><font color=\"#DD0000\"><b>$_[0]</b></font></p>\n";
		$content .= "<hr>\n";
		$content .= "</center>\n";
	}
	&footer;
	
	if ($agent =~ /2|3|4|6/) { &l_print; }
	exit;
}

## --- 記事削除処理
sub usr_del {
	if ($in{'usr_no'} eq "" || $in{'usr_key'} eq "") {
		&error("削除No又は削除キーが入力されていません。");
	}

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

	# ログを読み込む
	open(DB,"$logfile") || &error("Can't open $logfile");
	@lines = <DB>;
	close(DB);

	# ログチェック
	$init = $lines[0];
	unless ($init =~ /^LIGHT/) { &error("ログが正しくありません。"); }
	shift(@lines);

	@new = ();
	$no_del = 0;
	## マスターパスワードによる記事削除 ##
	if ($in{'usr_key'} eq "$pass"){
		foreach $line (@lines){
			($number,$date,$name,$email,$subj,$comment,$url,$host,$ango)
				= split(/<>/,$line);
			$flag=0;
			if ($in{'usr_no'} eq "$number") { $flag=1; }
			if ($flag == 0) { push(@new,$line); }
		}
	}
	## 削除キーによる記事削除 ##
	else {
		foreach $line (@lines) {
			($number,$date,$name,$email,$subj,$comment,$url,$host,$ango)
				= split(/<>/,$line);
			$flag = 0;
			if ($in{'usr_no'} eq "$number") {
				if ($ango eq "") { $no_del = 1; last; }

				# パスワードを照合
				&pass_shogo($in{'usr_key'});

				if ($check eq "yes") { $flag = 1; }
				else { $no_del = 2; last; }
			}
		if ($flag == 0) { push(@new,$line); }
		}

		if ($no_del == 1) { &error("削除キーが設定されていません。"); }
		elsif ($no_del == 2) { &error("パスワードが違います。"); }
	}

	## ログを更新 ##
	unshift(@new,$init);

	open(DB,">$logfile") || &error("Can't write $logfile");
	print DB @new;
	close(DB);

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

#-------------------------------------------------------------------------------
# 絵文字削除処理      Ver2.0
#   (Input)-----First   Pram: メッセージデータ
#               Secound Pram: 0;絵文字削除 1;絵文字表示
#   (Output)----変換後のデータメッセージ
#-------------------------------------------------------------------------------
# 来歴                Ver1.00		新規作成
#                     Ver1.10		i-mode拡張絵文字サポート
#                     Ver1.20		細かい不良対策・処理改善
#                     Ver2.00		全面処理改善・高速化
#                     Ver2.01		EZwebWAP2.0(A5501T以降の絵文字入力対応)
#                     Ver2.10		相互絵文字置き換え処理サポート
#                     Ver2.11		EZweb変換処理改善
#-------------------------------------------------------------------------------
#  [Splecial Thanks]  Ver2.00の絵文字削除処理においてKimura氏による多大なる
#                     助言を頂きました。ありがとうございます。
#-------------------------------------------------------------------------------

sub emojidel {
	$henmsg = $_[0];
	$h_prm = $_[1];

	$sjisStr = '[\x81-\x9F\xE0-\xEF\xFA-\xFC][\x40-\x7E\x80-\xFC]|[\x00-\x7F]|[\xA1-\xDF]';
	$emoji_i = '[\xF8\xF9][\x40-\x7E\x80-\xFC]';
	$emoji_d = '[\xF0-\xF4][\x40-\x7E\x80-\xFC]';
	$emoji_id = '[\xF0-\xF9][\x40-\x7E\x80-\xFC]';
	$emoji_e = '[\xF3\xF4\xF6\xF7][\x40-\x7E\x80-\xFC]';
	$emoji_ed = '[\xF0-\xF7][\x40-\x7E\x80-\xFC]';
	$emoji_d2 = '[\xF0-\xF2][\x40-\x7E\x80-\xFC]';
	$emoji_ei = '[\xF6-\xF9][\x40-\x7E\x80-\xFC]';
	$emoji_id2 = '[\xF0-\xF2\xF8\xF9][\x40-\x7E\x80-\xFC]';

	if ($h_prm == 0) {
		$henmsg =~ s/\G((?:$sjisStr)*)($emoji_id)/$1/go;
		$henmsg =~ s/\x1B\$[\x21-\x7A]+\x0F//g;
		if ($agent == 0) { jcode::h2z_sjis(\$henmsg); }
		$henmsg =~ s/\"/\&quot;/g;
	} elsif ($agent == 0) {
#		if ($h_prm == 1) {															# 通常モード(画像表示)
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_d2)/$1/go;
#			$henmsg =~ s/(\x1B\$[\x21-\x7A]+\x0F)/&emoji_j_pc_g_cng($1)/eg;
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_i)/&emoji_i_pc_g_cng($1,$2)/ego;
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_e)/&emoji_e_pc_g_cng($1,$2)/ego;
#			jcode::h2z_sjis(\$henmsg);
#			$henmsg =~ s/\"/\&quot;/g;
#		} else {																	# 管理人編集モード
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_d2)/$1/go;
#			$henmsg =~ s/(\x1B\$[\x21-\x7A]+\x0F)/&emoji_j_pc_cng($1)/eg;
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_i)/&emoji_i_pc_cng($1,$2)/ego;
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_e)/&emoji_e_pc_cng($1,$2)/ego;
#			jcode::h2z_sjis(\$henmsg);
#			$henmsg =~ s/\"/\&quot;/g;
#		}
	} elsif ($agent == 1) {
		if ($h_prm == 1) {
#		$henmsg =~ s/\G((?:$sjisStr)*)($emoji_d2)/$1/go;
#		$henmsg =~ s/\G((?:$sjisStr)*)($emoji_e)/&emoji_ecng($1,$2)/ego;
#		$henmsg =~ s/\G((?:$sjisStr)*)($emoji_i)/&emoji_i_e_cng($1,$2)/ego;
#		$henmsg =~ s/(\x1B\$[\x21-\x7A]+\x0F)/&emoji_j_e_cng($1)/eg;
#		$henmsg =~ s/\"/\&quot;/g;
#		} else {
			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_id2)/$1/go;
			$henmsg =~ s/\x1B\$[\x21-\x7A]+\x0F//g;
			$henmsg =~ s/\"/\&quot;/g;
		}
	} elsif ($agent == 2) {
		if ($h_prm == 1) {
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_d2)/$1/go;
#			$henmsg = &i_chek_id($henmsg);
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_e)/&emoji_e_i_cng($1,$2)/ego;
#			$henmsg =~ s/(\x1B\$[\x21-\x7A]+\x0F)/&emoji_j_i_cng($1)/eg;
#			$henmsg =~ s/\"/\&quot;/g;
#		} else {
			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_ed)/$1/go;
			$henmsg =~ s/\x1B\$[\x21-\x7A]+\x0F//g;
			$henmsg =~ s/\"/\&quot;/g;
		}
	} elsif ($agent == 3) {
		if ($h_prm == 1) {
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_d2)/$1/go;
#			$henmsg =~ s/\"/\&quot;/g;
#			$henmsg =~ s/(\x1B\$[\x21-\x7A]+\x0F)/&emoji_cg($1)/eg;
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_i)/&emoji_i_j_cng($1,$2)/ego;
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_e)/&emoji_e_j_cng($1,$2)/ego;
#		} else {
			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_id)/$1/go;
			$henmsg =~ s/\"/\&quot;/g;
			$henmsg =~ s/(\x1B\$[\x21-\x7A]+\x0F)/&emoji_cg($1)/eg;
		}
	} elsif ($agent == 4) {
		$henmsg =~ s/\G((?:$sjisStr)*)($emoji_ei)/$1/go;
		$henmsg =~ s/\x1B\$[\x21-\x7A]+\x0F//g;
		$henmsg =~ s/\"/\&quot;/g;
	} elsif ($agent == 6) {
		if ($h_prm == 1) {
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_d2)/$1/go;
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_e)/&emoji_ecng($1,$2)/ego;
#			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_i)/&emoji_i_e_cng($1,$2)/ego;
#			$henmsg =~ s/(\x1B\$[\x21-\x7A]+\x0F)/&emoji_j_e_cng($1)/eg;
#			$henmsg =~ s/\"/\&quot;/g;
#		} else {
			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_d2)/$1/go;
			$henmsg =~ s/\G((?:$sjisStr)*)($emoji_i)/$1/go;
			$henmsg =~ s/(\x1B\$[\x21-\x7A]+\x0F)//eg;
			$henmsg =~ s/\"/\&quot;/g;
		}
	} else {
		$henmsg =~ s/\G((?:$sjisStr)*)($emoji_id)/$1/go;
		$henmsg =~ s/\x1B\$[\x21-\x7A]+\x0F//g;
		$henmsg =~ s/\"/\&quot;/g;
	}
	
	if ($agent == 1){
#		if ($in{'mode'} ne "eform2") {
			$henmsg =~ s/\$/&dol;/g;
#		}
	}

	return $henmsg;
}

sub emoji_cg {
	$ex_moji = $_[0];
	
	$ex_moji =~ s/\&lt;/\</g;
	$ex_moji =~ s/\&gt;/\>/g;
	$ex_moji =~ s/\&amp;/\&/g;
	$ex_moji =~ s/\&quot;/\"/g;

#	1 while ($ex_moji =~ s/(\x1B\$[\x45-\x47\x4F-\x51])([\x21-\x7A])([\x21-\x7A]+)(\x0F)/$1$2$4$1$3$4/g);
#	$ex_moji =~ s/(\x1B\$[\x45-\x47\x4F-\x51][\x21-\x7A]\x0F)/unpack('H10',$1)/eg;

#	$ex_moji =~ s/(1b24[A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9][A-Fa-f0-9]0f)/&emoji_j_j_cng($1)/eg;

	return $ex_moji;
}


#--------------------------------------------------------------------
# 絵文字削除
#--------------------------------------------------------------------
#sub emojidel {
#	$henmsg = $_[0] ;
#	$m_prm = $_[1];
#	$emojidelmsg = "";
#	# EZweb処理
#	if ($agent == 1) {
#		while (1) {
#			# i-mode絵文字
#			if ($henmsg =~ /^[\xf8\xf9]./) {
#				$henmsg = substr($henmsg,2);
#			# J-SKY絵文字
#			} elsif ($henmsg =~ s/^\x1B\$[\x21-\x7A]+\x0F//) {
#				next;
#			# ドットi
#			} elsif ($henmsg =~ /^\xf0[\x40-\xfc]|^\xf1[\x40-\xd6]|^\xf2[\x40-\xfc]|^\xf3[\x40-\xfa]|^\xf4[\x40-\xcc]/) {
#				$henmsg = substr($henmsg,2);
#			# 全角文字
#			} elsif ($henmsg =~ /^[\x81-\x9f\xe0-\xef\xfa-\xfc]./) {
#				$emojidelmsg .= substr($henmsg,0,2);
#				$henmsg = substr($henmsg,2);
#			# 半角文字
#			} else {
#				$emojidelmsg .= substr($henmsg,0,1);
#				$henmsg = substr($henmsg,1);
#			}
#			if ($henmsg =~ /^./) { next;}
#			else { last; }
#		}
#	} elsif ($agent == 2) {				# i-mode処理
#		while (1) {
#			# i-mode絵文字
#			if ($henmsg =~ /^[\xf8\xf9]./) {
#				if ($m_prm) { $emojidelmsg .= substr($henmsg,0,2); }
#				$henmsg = substr($henmsg,2);
#			# J-SKY絵文字
#			} elsif ($henmsg =~ s/^\x1B\$[\x21-\x7A]+\x0F//) {
#				next;
#			# ドットi
#			} elsif ($henmsg =~ /^\xf0[\x40-\xfc]|^\xf1[\x40-\xd6]|^\xf2[\x40-\xfc]|^\xf3[\x40-\xfa]|^\xf4[\x40-\xcc]/) {
#				$henmsg = substr($henmsg,2);
#			# 全角文字
#			} elsif ($henmsg =~ /^[\x81-\x9f\xe0-\xef\xfa-\xfc]./) {
#				$emojidelmsg .= substr($henmsg,0,2);
#				$henmsg = substr($henmsg,2);
#			# 半角文字
#			} else {
#				$emojidelmsg .= substr($henmsg,0,1);
#				$henmsg = substr($henmsg,1);
#			}
#			if ($henmsg =~ /^./) { next; }
#			else { last; }
#		}
#	} elsif ($agent == 3) {					# J-SKY処理
#		while (1) {
#			# i-mode絵文字
#			if ($henmsg =~ /^[\xf8\xf9]./) {
#				$henmsg = substr($henmsg,2);
#			# J-SKY絵文字
#			} elsif ($henmsg =~ s/^(\x1B\$[\x21-\x7A]+\x0F)//) {
#				if ($m_prm) {
#				$taihi1 = $1;
#				$taihi1 =~ s/\&gt;/\>/g;
#				$taihi1 =~ s/\&lt;/\</g;
#				$taihi1 =~ s/\&amp;/\&/g;
#				$emojidelmsg .= $taihi1; }
#			# ドットi
#			} elsif ($henmsg =~ /^\xf0[\x40-\xfc]|^\xf1[\x40-\xd6]|^\xf2[\x40-\xfc]|^\xf3[\x40-\xfa]|^\xf4[\x40-\xcc]/) {
#				$henmsg = substr($henmsg,2);
#			# 全角文字
#			} elsif ($henmsg =~ /^[\x81-\x9f\xe0-\xef\xfa-\xfc]./) {
#				$emojidelmsg .= substr($henmsg,0,2);
#				$henmsg = substr($henmsg,2);
#			# 半角文字
#			} else {
#				$emojidelmsg .= substr($henmsg,0,1);
#				$henmsg = substr($henmsg,1);
#			}
#			if ($henmsg =~ /^./) { next; }
#			else { last; }
#		}
#	} elsif ($agent == 4) {					# ドットi
#		while (1) {
#			# i-mode絵文字
#			if ($henmsg =~ /^[\xf8\xf9]./) {
#				$henmsg = substr($henmsg,2);
#			# J-SKY絵文字
#			} elsif ($henmsg =~ s/^\x1B\$[\x21-\x7A]+\x0F//) {
#				next;
#			# ドットi
#			} elsif ($henmsg =~ /^\xf0[\x40-\xfc]|^\xf1[\x40-\xd6]|^\xf2[\x40-\xfc]|^\xf3[\x40-\xfa]|^\xf4[\x40-\xcc]/) {
#				if ($m_prm) { $emojidelmsg .= substr($henmsg,0,2); }
#				$henmsg = substr($henmsg,2);
#			# 全角文字
#			} elsif ($henmsg =~ /^[\x81-\x9f\xe0-\xef\xfa-\xfc]./) {
#				$emojidelmsg .= substr($henmsg,0,2);
#				$henmsg = substr($henmsg,2);
#			# 半角文字
#			} else {
#				$emojidelmsg .= substr($henmsg,0,1);
#				$henmsg = substr($henmsg,1);
#			}
#			if ($henmsg =~ /^./) { next; }
#			else { last; }
#		}
#	} elsif ($agent == 6) {				# EZweb WAP2.0
#		while (1) {
#			# i-mode絵文字
#			if ($henmsg =~ /^[\xf8\xf9]./) {
#				if ($m_prm) { $emojidelmsg .= substr($henmsg,0,2); }
#				$henmsg = substr($henmsg,2);
#			# J-SKY絵文字
#			} elsif ($henmsg =~ s/^\x1B\$[\x21-\x7A]+\x0F//) {
#				next;
#			# ドットi
#			} elsif ($henmsg =~ /^\xf0[\x40-\xfc]|^\xf1[\x40-\xd6]|^\xf2[\x40-\xfc]|^\xf3[\x40-\xfa]|^\xf4[\x40-\xcc]/) {
#				$henmsg = substr($henmsg,2);
#			# 全角文字
#			} elsif ($henmsg =~ /^[\x80-\x9f\xe0-\xf7\xfa-\xfc]./) {
#				$emojidelmsg .= substr($henmsg,0,2);
#				$henmsg = substr($henmsg,2);
#			# 半角文字
#			} else {
#				$emojidelmsg .= substr($henmsg,0,1);
#				$henmsg = substr($henmsg,1);
#			}
#			if ($henmsg =~ /^./) { next; }
#			else { last; }
#		}
#	} else {
#		while (1) {								# PC
#			# i-mode絵文字
#			if ($henmsg =~ /^[\xf8\xf9]./) {
#				$henmsg = substr($henmsg,2);
#			# J-SKY絵文字
#			} elsif ($henmsg =~ s/^\x1B\$[\x21-\x7A]+\x0F//) {
#				next;
#			# ドットi
#			} elsif ($henmsg =~ /^\xf0[\x40-\xfc]|^\xf1[\x40-\xd6]|^\xf2[\x40-\xfc]|^\xf3[\x40-\xfa]|^\xf4[\x40-\xcc]/) {
#				$henmsg = substr($henmsg,2);
#			# 全角文字
#			} elsif ($henmsg =~ /^[\x81-\x9f\xe0-\xef\xfa-\xfc]./) {
#				$emojidelmsg .= substr($henmsg,0,2);
#				$henmsg = substr($henmsg,2);
#			# 半角文字
#			} else {
#				$emojidelmsg .= substr($henmsg,0,1);
#				$henmsg = substr($henmsg,1);
#			}
#			if ($henmsg =~ /^./) { next; }
#			else { last; }
#		}
#	}
#	return $emojidelmsg;
#}

#--------------#
#  ロック処理  #
#--------------#
sub lock {
	# 1分以上古いロックは削除する
	if (-e $lockfile) {
		local($mtime) = (stat($lockfile))[9];
		if ($mtime < time - 60) { &unlock; }
	}
	local($retry) = 5;
	# symlink関数式ロック
	if ($lockkey == 1) {
		while (!symlink(".", $lockfile)) {
			if (--$retry <= 0) { &error('Lock is busy'); }
			sleep(1);
		}
	# mkdir関数式ロック
	} elsif ($lockkey == 2) {
		while (!mkdir($lockfile, 0755)) {
			if (--$retry <= 0) { &error('Lock is busy'); }
			sleep(1);
		}
	}
	$lockflag=1;
}

#--------------#
#  ロック解除  #
#--------------#
sub unlock {
	if ($lockkey == 1) { unlink($lockfile); }
	elsif ($lockkey == 2) { rmdir($lockfile); }
	$lockflag=0;
}

## --- メール送信
sub mailto {
	$mail_sub = "$title に投稿がありました。";

		if ($emojimode) {
			$name = &emojidel( $name,0 );
			$sub = &emojidel( $sub,0 );
			$comment = &emojidel( $comment,0 );
		}

    	&jcode'convert(*mail_sub,'jis');
    	&jcode'convert(*name,'jis');
    	&jcode'convert(*sub,'jis');
    	&jcode'convert(*comment,'jis');
	if ($date_type) { &jcode'convert(*date,'jis'); }

	$comment =~ s/<br>/\n/g;
	if ($in{'email'} eq "") { $email = $mail1; }

	open(MAIL,"| $sendmail -t");
	print MAIL "To: $mail1\n";
	print MAIL "From: $email\n";
	if ($mail2) { print MAIL "CC: $mail2\n"; }
	print MAIL "Subject: $mail_sub\n";
	print MAIL "MIME-Version: 1.0\n";
	print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
	print MAIL "Content-Transfer-Encoding: 7bit\n";
	print MAIL "X-Mailer: $ver\n\n";
	print MAIL "--------------------------------------------------------\n";
	print MAIL "TIME : $date\n";
	print MAIL "NAME : $name\n";
	print MAIL "EMAIL: $in{'email'}\n";
	if ($url ne "") { print MAIL "URL  : http://$url\n"; }
	if ($in{'sub'} eq "") { $sub = "no title"; }
	print MAIL "TITLE: $sub\n\n";
	print MAIL "$comment\n\n";
	print MAIL "--------------------------------------------------------\n";
	close(MAIL);
}

## --- パスワード暗号処理
sub pass_ango {
	$now = time;
	($p1, $p2) = unpack("C2", $now);
	$wk = $now / (60*60*24*7) + $p1 + $p2 - 8;
	@saltset = ('a'..'z','A'..'Z','0'..'9','.','/');
	$nsalt = $saltset[$wk % 64] . $saltset[$now % 64];
	$ango = crypt($_[0], $nsalt);
}

## --- パスワード照合処理
sub pass_shogo {
	if ($ango =~ /^\$1\$/) { $crptkey = 3; } # FreeBSDサーバ対応
	else { $crptkey = 0; }

	$check = "no";
	if (crypt($_[0], substr($ango,$crptkey,2)) eq "$ango") { $check = "yes"; }
}

#--------------------------------------------------------------------
# 自動リンク
#--------------------------------------------------------------------
sub auto_link {
	$_[0] =~ s/(http?\:[\w\.\~\-\/\?\&\=\;\#\:\%]+)/&autoexg($1)/eg;
}

sub autoexg {
	$local = $_[0];
	# PC処理
	if ($agent == 0) {
		if ($local =~ /hdml$|HDML$|wml$|WML$/) {
			# EZ GATE経由でリンクを貼る
			$localbk = $local ;
			$local = "http://www.note.ne.jp/ezgate2/?$local";
			$output = "<A href=\"$local\"alt=\"$localbk\">";
			$output .= $localbk ;
		} else {
			$output = "<A href=\"$local\" alt=\"$local\">";
			$output .= $local;
		}
		$output .= "</A>";
	}
	# i-mode、J-Sky、ドットi用処理
	if ($agent =~ /2|3|4/) {
		if ($local =~ /hdml$|HDML$|wml$|WML$/) {
			# EZ GATE経由でリンクを貼る
			$localbk = $local ;
			$local = "http://www.note.ne.jp/ezgate2/?$local";
			$output = "<a href=\"$local\">$localbk</a>";
		} else {
			$output = "<a href=\"$local\">$local</a>";
		}
	}
	# EZweb WAP2.0用処理
	if ($agent == 6) {
		$output = "<a href=\"$local\" title=\"$local\">";
		$output .= $local;
		$output .= "</a>";
	}
	return($output);
}

## --- 自動リンク(過去ログ書き込み時)
sub auto_link2 {
	$_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1<a href=$2 target=_top>$2<\/a>/g;
}

## --- 過去ログ生成
sub pastlog {
	$new_flag = 0;

	open(NUM,"$nofile") || &error("Can't open $nofile");
	$count = <NUM>;
	close(NUM);

	# 過去ログのファイル名を定義
	$pastfile  = "$past_dir\/$count\.html";

	# 過去ログがない場合、新規に自動生成する
	unless(-e $pastfile) { &new_log; }

	if ($new_flag == 0) {
		open (DB,"$pastfile") || &error("Can't open $pastfile");
		@past = <DB>;
		close(DB);
	}

	#debug
#	$dbg = "./debug.dat";
#	open(DB,">$dbg") || &error("Can't write $dbg");
#	print DB $#past ;
#	close(DB);

	# 規定の行数をオーバーすると、次ファイルを自動生成する
	if (($#past > 5) && (($#past + $#u_kako) > ($log_line + 3))) { &next_log; }	# V1.11改善

	@u_temp=();
	foreach $pst_line (@u_kako) {
		$pst_line =~ s/\n//g;
		($pnumber,$pdate,$pname,$pemail,$psubj,$pcomment,$purl,$phost) = split(/<>/, $pst_line);
		if ($emojimode) {
			if ($pemail) { $pemail = &emojidel( $pemail,0 ); }
			$pname = &emojidel( $pname,0 );
			if ($purl) { $purl = &emojidel( $purl,0 ); }
			$psubj = &emojidel( $psubj,0 );
			$pcomment = &emojidel( $pcomment,0 );
		}

		if ($pemail ne "") { $pname = "<a href=\"mailto\:$pemail\">$pname</a>"; }
		if ($purl ne "") { $purl = "<a href=\"http://$purl\" target='_top'>http://$purl</a>"; }

		# 自動リンク
		if ($autolink) { &auto_link2($pcomment); }

		# 保存記事フォーマット
		push(@u_temp,"[$pnumber] <font color=$subj_color><b>$psubj</b></font><!--T--> 投稿者：<font color=$name_color><b>$pname</b></font> <small>投稿日：$pdate</small><p><blockquote>$pcomment<p>$purl</blockquote><!--$phost--><hr>\n");
	}

@news = ();
foreach $line (@past) {
	if ($line =~ /<!--OWARI-->/i) { last; }
	push (@news,$line);
	if ($line =~ /<!--HAJIME-->/i) { push (@news,@u_temp); }
}

push (@news,"<!--OWARI-->\n</body></html>\n");

open(DB,">$pastfile") || &error("Can't write $pastfile");
print DB @news;
close(DB);

}## --- 過去ログ完了 --- ##

# 過去ログ次ファイル生成ルーチン
sub next_log {
	# 次ファイルのためのカウントアップ
	$count++;

	# カウントファイル更新
	open(NUM,">$nofile") || &error("Can't write $nofile");
	print NUM "$count";
	close(NUM);

	$pastfile  = "$past_dir\/$count\.html";

	&new_log;
}

# 新規過去ログファイル生成ルーチン
sub new_log {
	$new_flag = 1;

	$past[0] = "<html><head><title>過去ログ</title></head>\n";
	$past[1] = "<body background=\"$bgr\" bgcolor=$bgc text=$text link=$link vlink=$vlink alink=$alink><hr>\n";
	$past[2] = "<\!--HAJIME-->\n";
	$past[3] = "<\!--OWARI-->\n";
	$past[4] = "</body></html>\n";

	# 新規過去ログファイルを生成更新
	open(DB,">$pastfile") || &error("Can't write $pastfile");
	print DB @past;
	close(DB);

	# パーミッションを666へ。
	chmod(0666,"$pastfile");
}

## --- ホスト名を取得
sub get_host {
	$host = $ENV{'REMOTE_HOST'};
	$addr = $ENV{'REMOTE_ADDR'};
	$host_sub = $ENV{'HTTP_X_UP_SUBNO'};

	if ($host eq "" || $host eq "$addr") {
		$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2);
	}
	if ($host eq "") { $host = $addr; }
	if ($host_sub ne "") { $host = $host_sub; }
}
