#!/usr/local/bin/perl
#
# 上にサーバーのパールまでのアドレスを記入してください
# 一般的には#!/usr/local/bin/perl又は#!/usr/bin/perlです
#
# ============================  プログラム説明  =================================
# RAIBB掲示板                    ビジネス版    version 2.18
# 作成 1999/12/24                最終改訂 2001/10/4
# (C)1999,2000                   Wakatiaiプログラム - raima
# http://wakatiai.com/           説明 http://p.wakatiai.com/
# ===============================================================================
#
# このプログラムはフリーソフト(非商用での個人使用時)です。
#
#
#
#
# このプログラムのご利用にはプログラムご利用規定に同意が必要です。
# http://p.wakatiai.com/kitei/
#
#
#
#
# このプログラムを利用した損害に対して作者は一切責任を負いません。
#
#
#
# ===========================  プログラム説明終り  ==============================
#
# 「基本配置」
#
#  ━/cgi-bin/
#       ┃
#       ┣━ raib.cgi         ←プログラムファイル
#       ┣━ jcode.pl         ←日本語変換ファイル
#       ┣━ log.log          ←投稿内容を保存
#       ┣━ logbk.log        ←バックアップファイル
#       ┗━ cnt.log          ←カウント数を保存
#
#
#
#
# 「パーミッション」
#     777 又は 755:  cgi-binディレクトリ
#     755:           raib.cgi
#     644:           jcode.pl
#     666:           log.log,logbk.log,cnt.log
#
#
#
# ===============================================================================

$ver = "RAIBB2.18 - ";				# バージョン

# [ ユーザー登録番号記入場所 ]
# アレンジ/配布者もここを使用できます。Notregistedの文字はユーザー登録していない場合変更/削除不可。
# 記入例 "<br>arranged by あなたのサイト名<br>Registed:登録番号<br>";
$dist_tag="<br>Notregisted (Free Edition)<br>";


##########################
### 基本設定はここから ###


$adminpwd	= "esito";			# 管理暗号  変更してください  12文字以下で半角英数字で記入
$html_ttl	= "RCT TA-05 BBS";	# 掲示板のHTML/メール/パネル上のタイトル
$rai_ttl	= "<b><span>RCTシャシー研究室・TA-05分会</span></b>";
						# 掲示板タイトル 画像の使用も可
						# (例 $rai_ttl="<img src='./img/10.gif' width=120 height=40>";)

$info_ttl	= "<font size=-1>

ここはタミヤTA-05シャシーに関する専門BBSです。<br>
<br>
<p><font color=red>
<b>＜RCTのBBSに関する一般ルール＞</b><br></font>
<a href=http://www.rct.jp/contents/lab/manner.html>こちら</a>をご\覧\ください。<br>

<p><font color=red>
<b>＜本文の文字数は3000字以内です＞</b><br></font>
<p><font color=red>
<b>＜検索サービスを活用してください＞</b><br></font>
このBBSには、使い勝手の良い<a href=http://www.rct.jp/cgi/bbs/ta05/raib.cgi?md=pfv>検索エンジン</a>が装備されていますから、しっかりコレを活用していただき、<br>
そのうえで発展的な質問を出すなり、切り口の違う質問を出すように心がけてください。<br>
ここは投稿者のボランティアで成立しているサイトです。<br>
興味深い投稿､面白い切り口の質問は歓迎されますが､<br>
手抜きが透けて見える質問にはそれ相応の対応しか期待できませんのでそのつもりで。<br>
<br>
BBSはいろんな年齢、職業、立場、考え方を持つ人々の集まる「社会」です。<br>
上手に利用すれば得るものも大きいはず。前向きな姿勢で実りあるフォーラムにしましょう！<br>
</font>";		# 説明ボタンで表示される説明欄の文
$sp_wd		= "＜<a href=http://www.rajicon.net/lab/chassis/ta05/><!a href=http://www.rct.jp/contents/others/melma.html>TA-05紹介＆Tips</a>＞　＜<a href=http://www.rct.jp/contents/lab/chassis/data/gear_ta05.gif target=new>TA-05ギヤ比</a>＞　＜<a href=http://www.rct.jp/contents/lab/chassis/data/susblock.gif target=new>サスブロック一\覧\表\</a>＞<br><br><b><font color=#ee3366>当BBSは投稿受付を終了しました。</font></a><a href=http://2.pro.tok2.com/~rctv/cgi/bbs/cbbs.cgi?H=T&no=5>最新のBBSはこちら</a></b>";			# タイトル下部の表示(特記、バナー、リンク文字などに使用可)
$bg_i		= "";				# 背景画像使用する場合のパス(例:"./img/bg_note.gif")
$lock_f		= 1;				# ファイルロック機能(0:なし 1:symlink 2:open)
$back_t		= "<a href='http://www.rct.jp/' target=_top>RCTトップページにもどる</a>";	# 掲示板終了のリンク
$f_bs		= "TA-05";			# 掲示板のID 半角英数字 (メール/クッキー用)







# ここから下の基本設定項目は「基本配置」どおりの配置時には変更不用
$rai_fl		= "./raib.cgi";			# このプログラムファイル
$log_fl		= "./log.log";			# 現在のログファイル
$log_lock	= "./log.lock";			# ロックファイル
$bkup_fl	= "./logbk.log";		# バックアップファイル
$pastno_fl	= "./pastno.log";		# 最終過去ログファイルの番号ファイル
$cnt_fl		= "./cnt.log";			# カウンタファイル
$cnt_lock	= "./cnt.lock";			# カウンタロックファイル
$jcode		= "./jcode.pl";			# JCODEライブラリへのパス
$pastlog_dir	= ".";				# 過去ログ格納DIR  (例:"./past")
# bb

$info_i		= "利用規定＆キーワード検索";	# 説明リンク
$regi_i		= "投稿";			# 投稿リンク
$mail_i		= "<small><i>メール</i></small>";# メールリンク(画像に変更可)
$url_i		= "<small><i>ＵＲＬ</i></small>";# ＵＲＬリンク(画像に変更可)

$iconav		= "<small>▼</small>";		# アイコン表示なし時のリンク文字（一覧表示/取り出し表示時）
$iconmv		= "<b>.</b>";			# アイコン表示なし時のリンク文字（内容表示時）
$iconnv		= "<b>→</b>";			# アイコン表示なし時のリンク文字（新着順表示時）





### 基本設定はここまで ###
##########################








# (ここからは基本的に変更しなくても動作します。とりあえず以下を変更しないで動作確認をしてみてください。)
##########################
### 応用設定はここから ###


# 管理人名
$adminname	= "管理人";	# 投稿者名としてユーザーに使用されたくない名前
$adminnameaxs	= "kanrinin";	# 投稿者名として使用されたくない名前を使用するための名前

# ヘルパー設定
@sptdata=("");	# 管理ヘルパーの登録  ("name/password/authority","")  要読説




# 機能設定
$cnt_f		= 1;	# アクセス時カウント(0:しない 1:違うホスト時のみする 2:する)
$cnt_dsp	= 0;	# カウント数を表示(0:しない 1:する 2:する(昨今表示右) 3:する(昨今表示中))
$bkup_f		= 0;	# 現在ログファイル自動バックアップ機能	(0:なし 1:あり)
$pastlog_f	= 999;	# 過去ログをこの数字の数まで作成する(0:作成しない)
$gh_mtd		= 1;	# ホストアドレスを(0:ENVHOST 1:gethostbyaddr)で取得
$dlld_off	= 0;	# ログファイルをダウンロード (0:できる 1:できない)










$amail_f	= 2;	# 投稿時管理人へメール(0:しない 2:する)
$pmail_f	= 0;	# 投稿時投稿者へメール(0:しない 2:する)
$rmail_f	= 3;	# 返信時(0:なし 2:返信先へメール 3:ツリー内全希望者へメール) 投者者希望時に限る
$adminemail	= 'mail@rct.jp';		# 管理人のメールアドレス
$sendmail	= '/usr/sbin/sendmail';	# サーバーのsendmailへのパス

$wrap		= "soft";	# 投稿フォームでの自動改行(soft:改行して表示 hard:改行して送信 off:なし)
$email_dsp	= 3;	# メールアドレスを表示(1:あるなしのみする 2:取り出し一記事画面でのみする 3:する)
$host_dsp	= 0;	# ホストアドレスを表示(0:しない 1:する)
$dai_dsp	= 0;	# タイトルすぐ下のテーブル台表示 0:しない 1:する
$op_dsp		= 1;	# 編集画面で詳細データ表示  (0:なし 1:あり)
$sub_cut	= 60;	# 記事のタイトルをこのバイト数で切って表示  偶数で  (0:切らない)
$br_cut		= 0;	# 改行を投稿時に (0:消さない 1:消す)
$tag_ok		= 1;	# タグを投稿時に (0:消す 1:消さない-不具合起きやすい)
$res_dp		= 999;	# この深さまで返信できる (0:返信不可)
$res_no		= 999;	# この数まで返信できる (0:返信不可)
$reptup_f	= 0;	# 返信があったツリーを一番上に (0:しない 1:する)
$reptl_f	= 1;	# 返信記事は前返信記事の(0:上 1:下)につく
$sub_rq		= 1;	# タイトルがなくても投稿  (0:できる 1:できない)
$name_rq	= 1;	# 名前がなくても投稿  (0:できる 1:できない)
$email_rq	= 0;	# メールアドレスがなくても投稿  (0:できる 1:できない)
$url_rq		= 0;	# ＵＲＬがなくても投稿  (0:できる 1:できない)
$pwd_rq		= 0;	# パスワードがなくても投稿  (0:できる 1:できない)
# bb

$reg_off	= 0;	# 投稿/削除 (0:可 1:ユ|投不可返可,管|投返可 2:ユ|投返不可,管|投返可 3:不可) 管画別
$contiregi_f	= 36000;	# 同一ホストによる４連続投稿を禁止 (0:しない 秒数:する(この秒数の間))
$dblregitm	= 300;	# この秒数以内の連続投稿を禁止  (0:制限無し)
$dbltpctm	= 180;	# この秒数以内の連続新規投稿(話題作成)を禁止  (0:制限無し)

$link_wd	= "1";	# 自動リンク用の文字(0:リンクなし 1:URLでリンク 文字:この文字でリンク)
$ind_no		= 15;	# 内容表示テーブルのインデント数
$ind_w		= 2;	# 内容表示テーブルのインデント幅
$t_size		= 20;	# タイトル文字サイズ(7-40  0は未設定)
$f_size		= 9;	# 文字サイズ(7-18  0は未設定)
$C1		= 0;	# パネル終了先を (0:未強制 1:一覧 2:内容 3:新着順)表示にする。
$C2		= 0;	# パネル内(過去ログボタン,検索リンク等)から新ウインドウを (0:未強制 1:開かない 2:開く)
$C3		= 0;	# トップページのリンクから新ウインドウを (0:未強制 1:開かない 2:開く_blank 3:開くnew)




# 最大投稿制限		(注意: 以下の数をあまり大きくしないようにご注意下さい)
$max_sub	= 80;	# 投稿記事の題名の最大バイト数   これ以上での投稿は受付拒否をする
$max_name	= 30;	# 投稿記事の名前の最大バイト数
$max_msg	= 60000;# 投稿内容の最大バイト数
$max_byte	= 60000;# 投稿全データの最大バイト数






# ログデータ保存数	(注意: 以下の数をあまり大きくしないようにご注意下さい)
$max_logln	= 5000;	# 現在ログの最大保存記事数
$max_pastlogln	= 3000;	# 過去ログの最大保存記事数




# 最大最小表示件数	(注意: 以下の数をあまり大きくしないようにご注意下さい)
$max_avln	= 120;	# 一覧表示の最大表示件数
$avln		= 120;	# 一覧表示の初期表示件数
$max_mvln	= 50;	# 内容表示の最大表示件数
$mvln		= 20;	# 内容表示の初期表示件数
$max_nvln	= 30;	# 新着順表示の最大表示件数
$nvln		= 10;	# 新着順表示の初期表示件数
$max_fvln	= 70;	# 検索表示の最大表示件数
$fvln		= 10;	# 検索表示の初期表示件数





# パネル表示スイッチ
# 数字1つがパネル部の1表示に対応。桁数が変わらないように0か1を記入。(0:表示なし 1:表示あり)
# 左から(未使用、操作、過去ログ、検索、未使用、設定、削除、未使用)
$pdsp_swt	="11111111";



# 色設定
$bg_dk		= "#f8f8f8";	# 背景色濃い(内容表示背景)
$bg_lt		= "#ffffff";	# 背景色薄い(一覧表示背景)
$txt_dk		= "#505050";	# テキスト色濃い(内容表示文字)
$txt_lt		= "#b0b0b0";	# テキスト色薄い(一覧表示文字)
$tbl_dk		= "#cccccc";	# テーブル色濃い(タイトル下)
$tbl_lt		= "#e7e7e7";	# テーブル色薄い(内容表示題名部)

$ttl_c		= "#9370db";	# タイトル色
$ttl_c2		= "#8360ff";	# 記事の題名色

$dai_c		= "#ebedda";	# 台色
# ??bbwaku
# ??bbwaku
$op_c		= "#eeeeee";	# パネル設定部色

$new1c		= "#ff79b8";	# 新マーク1の色 一番新しい
$new2c		= "#ff79b8";	# 新マーク2の色     .
$new3c		= "#ddde4c";	# 新マーク3の色     .
$new4c		= "#ddde4c";	# 新マーク4の色 一番古い

$white		= "#ffffff";	# 選択色(ページ数等)
$pink		= "#fd3b8f";	# 注目色
$mdtbl_c	= "#bbbbbb";	# 右上の表示設定テーブルの色

$link		= "#4040ff";	# 未訪問リンク色
$vlink		= "#6840e0";	# 既訪問リンク色
$alink		= "#008000";	# 訪問中リンク色
$hover		= "#008000";	# マウス上時のリンク色(IE用)


$mvn_c		= "#aaaaaa";	# 内容表示の名前色
$tvn_c		= "#6a5d74";	# 取り出し一覧表示の見出し色
$rep_c		= "#6a5d94";	# 引用部分の文字色  (未記入時は引用色変化なし)



























# アクセス制限
$base_url="";	# ここに記入した文字列が含まれたURLからしかアクセスできない。
		# 未記入時は制限なし。例: $base_url="host.ne.jp/~user/";
$axsoff_f=0;	# 指定ホストからのアクセス拒否 (0:しない 1:する-閲覧は可 2:する)
		# 下の@axsoff内にホスト名を記入すること  例: ("aaa.bbb.ne.jp","*.231.1")
@axsoff=("");




# 新マーク変化時間  (hourで) (現在は3,24,72,120時間で設定)
$l_sin1=2;  $l_sin2=24;  $l_sin3=72;  $l_sin4=120;




# バナータグ上下  例 $ban_a="<a href='PageURL'><img src='PicURL'></a>";
$ban_a="";
$ban_b="";


&decode;	# ←触らないで



# スタイルシートの記述 (上部にmetaタグも記入可)
$addstyle="
	<STYLE TYPE=\"text/css\"><!--
	a      { text-decoration: none;}
	a:hover{ color:$hover; text-decoration:underline;}
	a,big,small,font,body,dl,td,input,select,textarea{ $f_size}
	span   { $t_size color:$ttl_c;}
	--></STYLE>
";








#if   (!$f_md||$f_md eq "eav"){ }
#elsif($f_md eq "mv"){ }
#elsif($f_md eq "nv"){ }
#elsif($f_md eq "tv"||$f_md eq "ov"){ }
#elsif($f_md eq "sf"||$f_md eq "hf"||$f_md eq "eov"){ }

















###ここで全設定終了です###
##########################



########## メインプログラム ##########
$l_sin1=$time-$l_sin1*3600;  $l_sin2=$time-$l_sin2*3600;$l_sin3=$time-$l_sin3*3600;  $l_sin4=$time-$l_sin4*3600;
if   ($axsoff_f eq "2")		{ &axs_chk;}if   (!$f_md)			{ &av;}elsif($f_md eq "mv")		{ &av;}elsif($f_md eq "nv")		{ &nv;}elsif($f_md eq "tv")		{ &tv;  &sled(1,0,0,1,$iconmv,"");}elsif($f_md eq "ov")		{ &tv;  &sled(0,0,0,1,$iconmv,"");}elsif($f_md eq "panel")		{ &panel;}elsif($f_md eq "phow")		{ &phow;}elsif($f_md eq "pplog")		{ &pplog;}elsif($f_md eq "pfv")		{ &pfv;}elsif($f_md eq "pfvn")		{ &pfv;}elsif($f_md eq "pov")		{ &pov;}elsif($f_md eq "pset")		{ &pset;}elsif($f_md eq "psetedit")	{ &psetedit;}elsif($f_md eq "nocook")	{ &nocookafter;}elsif($f_md eq "pudel")		{ &pudel;}elsif($f_md eq "padmin")	{ &padmin;}
&agent_get;
if   ($f_md eq "sf")		{ &header();  &toukou_f;}elsif($f_md eq "hf")		{ &hf;  &sled(0,3,0,0,"","");  &toukou_f;}if   ($axsoff_f)		{ &axs_chk;}if   ($base_url)		{ &ref_chk;}if   ($f_md eq "eov")		{ &eov;}elsif($f_md eq "eav")		{ &eav;}if(!$postdesu)			{ &error("アクセスエラーpostchk");}if   ($f_md eq "dlld")		{ &dlld;}if   ($f_md eq "udel")		{ if($f_lg>0){ &error("過去ログに投稿/返信/削除できません err33");}
  &udel;}elsif($f_md eq "edel")		{ &edel;   &eav;}elsif($f_md eq "eedit")		{ &eedit;  &eav;}elsif($f_md eq "kinsi")		{ &kinsi;  &eav;}elsif($f_md eq "kaikin")	{ &kinsi;  &eav;}elsif($f_md eq "regist")	{ if($f_lg>0){ &error("過去ログに投稿/返信/削除できません err21");}
  &regist;  &cook_set;  &toukou_after;}
&error("no_md");  #   }
sub counter {if($cnt_f){if(&lockon($cnt_lock,1,1,20)){ $cnt_rtn="";if($cnt_dsp){ $cnt_rtn="<div align=right>アクセス多数</div>";}  return(10);}}
unless(-e $cnt_fl){if(&make_fl("$cnt_fl",0666,"0<>0<>0<>$l_day<>\n")){ &error("c_f22",$cnt_lock);}}if(!open(CNT,"$cnt_fl")){ unlink($cnt_lock);  return(10);}  $topcntln=<CNT>;  close(CNT);
local($l_cnt,$l_tcnt,$l_ycnt,$l_day,$l_time,$l_host)=split(/<>/,$topcntln);if($cnt_f){
if(!($host eq "$l_host" && $cnt_f<2)){$l_cnt=~s/\n//;  $l_cnt++;  $l_tcnt++;if($l_day ne "$today"){ $l_ycnt=$l_tcnt-1;  $l_tcnt=1;  $l_day=$today;}
local($t)="$l_cnt<>$l_tcnt<>$l_ycnt<>$l_day<>$time<>$host<>\n";if(!open(CNT,">$cnt_fl")){ unlink($cnt_lock);  return(20);}  print CNT $t;  close(CNT);}if(-e $cnt_lock){ unlink($cnt_lock);}}
local($f_keta)=length($l_ycnt);  $l_tcnt=sprintf("%0${f_keta}d",$l_tcnt);if($cnt_dsp==1)   { $cnt_rtn="<div align=right>$l_cnt</div>";}elsif($cnt_dsp==2){ $cnt_rtn="<div align=right><table border=0 cellpadding=0 cellspacing=0><tr><td align=right>$date までのご訪問数 $l_cnt</td></tr><tr><td align=right>昨日 $l_ycnt</td></tr><tr><td align=right>本日 $l_tcnt</td></tr></table></div>";}elsif($cnt_dsp==3){ $cnt_rtn="<div align=center>$date までのご訪問数は <b>$l_cnt</b> です。<br>
昨日 <b>$l_ycnt</b>&nbsp; &nbsp; &nbsp; &nbsp; 本日 <b>$l_tcnt</b></div>";}}sub decode {if($ENV{'REQUEST_METHOD'} eq "POST"){if($ENV{'CONTENT_LENGTH'}>$max_byte){ &error("投稿量が大きすぎます");} #&header();)#
read(STDIN,$t,$ENV{'CONTENT_LENGTH'});  $postdesu=1;}else{ $t=$ENV{'QUERY_STRING'};  $postdesu="";}
local($dojcode)="";if($t=~/regist/||$t=~/eedit/){
require $jcode;  $dojcode=1;}
local(@t)=split(/&/,$t);  local($f_fp)="";  $t="";foreach $ln(@t){ ($t,$i)=split(/=/,$ln);$i=~ tr/+/ /;  $i=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;if($dojcode eq "1"){
&jcode'h2z_sjis(*i);#   }
&jcode'convert(*i,'sjis');}if(!$tag_ok){$i=~s/&/&amp;/g;$i=~s/</&lt;/g;   $i=~s/>/&gt;/g;}else {$i=~s/<!--(.|\n)*-->//g;  $i=~s/<>/&lt;&gt;/g;}if($t eq "msg" && !$br_cut){$i=~s/\r\n/\n/g;  $i=~s/\r/\n/g;$i=~s/\n\n\n\n\n\n\n//g;$i=~s/\n\n\n\n\n\n/\n\n\n\n/g;  $i=~s/\n\n\n\n/\n\n\n/g;$i=~s/\n/<br>/g;}else{ $i=~s/\r//g;  $i=~s/\n//g;}$i=~s/`\./x/g;  $i=~s/`,/x/g;  $i=~s/~,/x/g;if($t eq "fp"){ $f_fp.="$i,";}elsif($t eq "dno"){ unshift(@f_dno,$i);}else{ $F{$t}=$i;}}if($f_fp){ @t=split(/,/,$f_fp);foreach $ln(@t){ ($t,$i)=split(/:/,$ln);if($dojcode eq "1"){ $i=~s/\r//g;  $i=~s/\n//g;$i=~s/&/&amp;/g;  $i=~s/</&lt;/g;   $i=~s/>/&gt;/g;}if($t eq "dno"){ unshift(@f_dno,$i);}else{ $F{$t}=$i;}}}$f_md=$F{'md'};$f_no=int($F{'no'});$f_pn=int($F{'pn'});$F{'url'}=~ s/^http:\/\///;$f_bm=$F{'bm'};if($F{'ln'} eq "x"){$f_ln="x";}   else{ $f_ln =int($F{'ln'});}if($F{'sln'} eq "x"){$f_sln="x";} else{ $f_sln=int($F{'sln'});}if($F{'name'}){ $f_name=$F{'name'};$f_name=~ s/$adminname/倉木さん/g;$f_name=~ s/$adminnameaxs/$adminname/g;}$ENV{'TZ'}="JST-9";  $time=time;
local($sec,$min,$hour,$day,$mon,$year,$wday)=localtime($time);
local(@week)=('日','月','火','水','木','金','土');  $today=$day;$date=sprintf("%04d/%02d/%02d%s%02d:%02d",$year+1900,$mon+1,$day,$week[$wday],$hour,$min);$host=$ENV{'REMOTE_HOST'};  $addr=$ENV{'REMOTE_ADDR'};if($gh_mtd&&(!$host||$host eq "$addr")){ $host=gethostbyaddr(pack("C4",split(/\./,$addr)),2);}if(!$host){$host=$addr;}$host=~ s/</&lt;/g;  $host=~ s/>/&gt;/g;
@t=split(/;/,$ENV{'HTTP_COOKIE'});foreach $ln(@t){ ($t,$i)=split(/=/,$ln);$t=~ s/ //g;  $C{$t}=$i;}
@t=split(/<>/,$C{$f_bs});foreach $ln(@t){ ($t,$i)=split(/>/,$ln);  $C{$t}=$i;}$c_name=$C{'n'};  $c_email=$C{'e'};$c_url =$C{'u'};  $c_pwd  =$C{'p'};$c_sur=$C{'s'};if($f_name){ $c_name=$f_name;}		if($F{'email'}){ $c_email=$F{'email'};}if($F{'url'}) { $c_url=$F{'url'};}	if($F{'pwd'})  { $c_pwd  =$F{'pwd'};}if(length($c_sur)<47){ $c_sur="11111111111141191399000000000000000000000000000";}$C1=int($C1);  $C2=int($C2);  $C3=int($C3);if($C1>=1 && $C1<=3){ substr($c_sur,1,1)=substr($C1,0,1);}if($C2>=1 && $C2<=2){ substr($c_sur,2,1)=substr($C2,0,1);}if($C3>=1 && $C3<=3){ substr($c_sur,3,1)=substr($C3,0,1);}
undef(%C);if(substr($pdsp_swt,5,1) eq "0"){$c_avln=$avln;  $c_mvln=$mvln;  $c_nvln=$nvln;  $c_fvln=$fvln;}else{$c_avln=substr($c_sur,28,4);  $c_mvln=substr($c_sur,32,3);$c_nvln=substr($c_sur,35,3);  $c_fvln=substr($c_sur,38,3);if($c_avln<1||$c_avln>$max_avln){ $c_avln=$avln;}  else{ $c_avln=int($c_avln);}if($c_mvln<1||$c_mvln>$max_mvln){ $c_mvln=$mvln;}  else{ $c_mvln=int($c_mvln);}if($c_nvln<1||$c_nvln>$max_nvln){ $c_nvln=$nvln;}  else{ $c_nvln=int($c_nvln);}if($c_fvln<1||$c_fvln>$max_fvln){ $c_fvln=$fvln;}  else{ $c_fvln=int($c_fvln);}$t=substr($c_sur,6,1);  if($t eq "2"){ $date_cut=1;}  else{ $date_cut=0;}$t=substr($c_sur,7,1);  if($t eq "2"){ $na_up=1;}  else{ $na_up=0;}$t=substr($c_sur,8,1);  if($t eq "2"){ $host_dsp=0;}$t=substr($c_sur,12,2); if($t<7||$t>40){;}  else{ $t_size=int($t);}$t=substr($c_sur,14,2); if($t<7||$t>18){;}  else{ $f_size=int($t);}$t=substr($c_sur,16,2); if($t<0||$t>12){;}  else{ $ind_no=int($t);}$t=substr($c_sur,18,2); if($t<8||$t>98){;} else{ $sub_cut=int($t);}}if($t_size<7||$t_size>40){ $t_size="";}  else{ $t_size="font-size: $t_size"."pt;";}if($f_size<7||$f_size>18){ $f_size="";}  else{ $f_size="font-size: $f_size"."pt;";}$rai_ff  =$rai_fl;$rai_fl.="?";$f_lg    =$F{'lg'};if($f_lg){if   ($f_lg eq "x")	{ $rai_fL="$rai_fl"."lg=x&";}else{	$f_lg=int($f_lg);if(substr($pdsp_swt,2,1) eq "0" && &epwd_chk($F{'pwd'})){
&error("この項目は使用不可");}if($f_lg<1)	{ &error("ログ番号が無効です。");}else		{ $rai_fL="$rai_fl"."lg=$f_lg&"; $log_fl="$pastlog_dir/$f_lg.log";}}
}else{ $rai_fL="$rai_fl";}if($f_lg){	$flg1="lg=$f_lg&";$flg2="lg:$f_lg,";$flg3="<input type=hidden name=lg value='$f_lg'>";}else{	$flg1="";  $flg2="";  $flg3="";}}sub av {if($f_md ne "mv"){if(!$c_avln){ $hyo=$avln;}elsif($c_avln<1){ $hyo=$avln;}elsif($c_avln>$max_avln){ $hyo=$max_avln;}else {$hyo=$c_avln;}$hiki="";$f_sln="";$mdtmp="av";}else {	if($c_mvln<1){ $hyo=$mvln;}elsif($c_mvln>=$max_mvln){ $hyo=$max_mvln;}else{ $hyo=$c_mvln;}$hiki="md=mv";$f_sln="x";$mdtmp="mv";}if(!(-e $log_fl) && !$f_lg){ if(&make_fl("$log_fl",0666,"0\n")){ &error("Can't make l_f892");}}if(!open(LOG,"$log_fl")){ &error("ログが存在しないか、開くことができません err amv12");}$toplogln=<LOG>;
($t,$l_tpc)=split(/<>/,$toplogln);  #$ih\"ango\" $vt\"$l_ango\">
($t,$qnlf)=split(/>/,$l_tpc);$qnlf=int($qnlf);$oldlog="";if($qnlf<1){ $i=0;while(<LOG>){ $i++;}
close(LOG);if(!open(LOG,"$log_fl")){ &error("ログが存在しないか、開くことができません err amv23");}$toplogln=<LOG>;
($t,$l_tpc)=split(/<>/,$toplogln);
($t,$qnlf)=split(/>/,$l_tpc);$qnlf=int($qnlf);if($qnlf ne $i){ $qnlf=$i;  $oldlog="<font color='$pink'>+</font>";}}if($f_ln<1){ $f_ln=1;}$wintt=substr($c_sur,3,1);if($wintt eq "2"){ $wintt=" target=_blank";}elsif($wintt eq "3"){ $wintt=" target=new";}else{ $wintt="";}$lgt="";if($f_lg){$back_t="<a href='$rai_fl"."md=panel'>パネルへもどる</a>";if($f_lg eq "x"){$lgt=" &nbsp; &nbsp; <font color='$pink'>現在ログ</font>";$info_i="<font color='$white'>$info_i</font>";$regi_i="<a href='$rai_fL"."md=sf&ln=$f_ln&bm=$mdtmp'$wintt>$regi_i</a>";}else{	$lgt=" &nbsp; &nbsp; <font color='$pink'>過去ログ$f_lg</font>";$info_i="<font color='$white'>$info_i</font>";$regi_i="<font color='$white'>$regi_i</font>";}}else{	if($f_md){ $info_i="<a href='$rai_fL"."md=panel'>$info_i</a>";}else     { $info_i="<a href='$rai_fL"."md=panel'>$info_i</a>";}$regi_i="<a href='$rai_fL"."md=sf&ln=$f_ln&bm=$mdtmp'$wintt>$regi_i</a>";}#&header();;}#
&header();print"<table width='100%' border=0 cellpadding=2 cellspacing=0>
\n<tr><td><a name=TOP></a>$back_t$lgt
<!---- バナー ----->
 ／ <a href=http://www.rct.jp/cgi/mail/order_goods/>RCTバザーよろしく〜！</a>
<!---- バナー ----->
</td><td align=right bgcolor='$mdtbl_c' width='1%' nowrap>";if($f_md ne "mv"){
print"<font color='$white'>一覧</font> <a href='$rai_fL"."md=mv'>内容</a> <a href='$rai_fL"."md=nv'>新着順</a>";}else{	if($f_lg){ $t=substr($rai_fL,0,length($rai_fL)-1);}  else{ $t="$rai_fl";}print"<a href='$t'>一覧</a> <font color='$white'>内容</font> <a href='$rai_fL"."md=nv'>新着順</a>";}print"</td></tr></table>";
local($tag_cnt)="";if($f_lg<=0){if($cnt_f||$cnt_dsp){ &counter;}if($cnt_dsp){ $tag_cnt="$cnt_rtn";}}
print"<!---- バナー ----->";

print"<!---- バナー ----->";

print"<!----外部カウンタ（cgiは同一フォルダ内に収納すると動作しなかったので外部フォルダに収納）----->";
print"<p align=right>2005/4/6から累計<img src=\"http://www.rct.jp/cgi/bbs/ta05_count/dayx.cgi?gif\"><br>本日 <img src=\"http://www.rct.jp/cgi/bbs/ta05_count/dayx.cgi\?today\"> <br>昨日 <img src=\"http://www.rct.jp/cgi/bbs/ta05_count/dayx.cgi\?yes\"></p>";
print"<!----外部カウンタおわり----->";

print"$tag_cnt<div align=center>$rai_ttl$oldlog";if($dai_dsp){ &dai_dsp;}print"<table border=0 cellpadding=2 cellspacing=0 width='100%'><tr><td bgcolor=$tbl_dk colspan=3>$info_i &nbsp; $regi_i&nbsp; &nbsp; &nbsp; &nbsp; <font color='$white'>ページ</font> ";if($qnlf<1){ print"<font color='$white'>1 </font>";}else{	$i=1;  $t=1;while($t<=$qnlf){if($i>100){ print"<font color='$link'>...</font>";  last;}if(($f_ln>=$t) && ($f_ln<$t+$hyo)){ print"<font color='$white'>$i </font>";}else {	if($t>1){if($hiki){ print" <a href='$rai_fL$hiki&ln=$t'>$i </a>";}else{ print" <a href='$rai_fL"."ln=$t'>$i </a>";}}else{	print" <a href='$rai_fL$hiki'>$i </a>";}}$t+=$hyo;  $i++;}}print"</td></tr></table>$sp_wd</div>";
local($bgn)=$f_ln-1;  local($end)=$bgn+$hyo;if($f_md eq "mv"){$bgn++;  $end++;  @new=();while(<LOG>){ next if $.<=$bgn;  last if $.>$end;  push(@new,$_);}
close(LOG); #?.}}
&sled(2,3,1,1,$iconmv,1);#  else{ $OUT.="<a href='#$aname'>$l_sub</a>";}"#;}
&amfot;print"<br><br><br><br><br><br>";
&footer();
for(1..5){ print"<br><br><br><br>";}
exit;}print"<div align=left>\n<dl>";  $dpp=0;$bgn++;  $end++;while(<LOG>){
next if $.<=$bgn;
last if $.>$end;
local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$t,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name)=split(/<>/);if($sub_cut){if(length($l_sub)>$sub_cut){ $l_sub=substr($l_sub,0,$sub_cut); $l_sub.="...";}}if($l_dp<0){ $l_dp=0;}  elsif($l_dp>$ind_no){ $l_dp=$ind_no;}if($l_dp && $l_dp>$dpp+1){ print"\n";  foreach(1..$l_dp-$dpp-1){ print"<dl>";}  $dpp=$l_dp-1;}if($dpp && $l_dp<=$dpp){ $t=$dpp-$l_dp;  if($l_dp){ $t++;}  foreach(1..$t){ print"</dl>";}}print"\n";if($l_dp){ print"<dd><dl>";}print"<dt>";if(!$l_dp){
print"<hr size=1><a href='$rai_fL"."md=tv&pn=$l_pn&ln=$f_ln'$wintt>$iconav</a>";
}if($l_dp eq "1"){ print"&nbsp; ";}if   ($l_sin4>=$l_time){ ;}elsif($l_sin1<$l_time){ print"<font color='$new1c'>新</font>";}elsif($l_sin2<$l_time){ print"<font color='$new2c'>新</font>";}elsif($l_sin3<$l_time){ print"<font color='$new3c'>新</font>";}else{ print"<font color='$new4c'>新</font>";}if($date_cut){ $l_datet=" ";}  else{ $l_datet=substr($l_date,5,12);}print" <a href='$rai_fL"."md=ov&no=$l_no&pn=$l_pn&ln=$f_ln'$wintt>$l_sub</a> $l_name $l_datet\[$l_no]";$dpp=$l_dp;}
close(LOG);if($dpp && 1<=$dpp){ foreach(1..$dpp){ print"</dl>";}}print"\n</dl></div>\n";
&amfot;print"<br><br><br><br><br><br>";
&footer();  exit;
sub amfot{
print"<br><br>\n<div align=left><a href='#TOP'>上へ</a>";if(($t=$f_ln+$hyo)<=$qnlf){if($hiki){ print" &nbsp; &nbsp;<a href='$rai_fL$hiki&ln=$t'>次ページへ -&gt;</a>";}else{ print" &nbsp; &nbsp;<a href='$rai_fL"."ln=$t'>次ページへ -&gt;</a>";}}print"</div>";}}sub nv {$f_ln="x";if($c_nvln<1){ $hyo=$nvln;}elsif($c_nvln>=$max_nvln){ $hyo=$max_nvln;}else { $hyo=$c_nvln;}if(!(-e $log_fl) && !$f_lg){ if(&make_fl("$log_fl",0666,"0\n")){ &error("Can't make l_f892");}}if(!open(LOG,"$log_fl")){ &error("ログが存在しないか、開くことができません err amv12");}$toplogln=<LOG>;
($l_cnt,$l_tpc)=split(/<>/,$toplogln);
($t,$qnlf)=split(/>/,$l_tpc);$qnlf=int($qnlf);$oldlog="";if($qnlf<1){ $i=0;while(<LOG>){ $i++;}
close(LOG);if(!open(LOG,"$log_fl")){ &error("ログが存在しないか、開くことができません err amv23");}$toplogln=<LOG>;
($l_cnt,$l_tpc)=split(/<>/,$toplogln);  #   }}}
($t,$qnlf)=split(/>/,$l_tpc);$qnlf=int($qnlf);if($qnlf ne $i){ $qnlf=$i;  $oldlog="<font color='$pink'>+</font>";}}if   ($f_sln<1)		{ $f_sln=$l_cnt;  $f_slntmp="";}elsif($f_sln>$l_cnt)	{ $f_sln=$l_cnt;  $f_slntmp="";}else			{ $f_slntmp="&sln=$f_sln";}$wintt=substr($c_sur,3,1);if($wintt eq "2"){ $wintt=" target=_blank";}elsif($wintt eq "3"){ $wintt=" target=new";}else{ $wintt="";}$lgt="";if($f_lg){$back_t="<a href='$rai_fl"."md=panel'>パネルへもどる</a>";if($f_lg eq "x"){$lgt=" &nbsp; &nbsp; <font color='$pink'>現在ログ</font>";$info_i="<font color='$white'>$info_i</font>";$regi_i="<a href='$rai_fL"."md=sf&ln=$f_ln$f_slntmp&bm=nv'$wintt>$regi_i</a>";}else{	$lgt=" &nbsp; &nbsp; <font color='$pink'>過去ログ$f_lg</font>";$info_i="<font color='$white'>$info_i</font>";$regi_i="<font color='$white'>$regi_i</font>";}}else{	$info_i="<a href='$rai_fL"."md=panel'>$info_i</a>";$regi_i="<a href='$rai_fL"."md=sf&ln=$f_ln$f_slntmp&bm=nv'$wintt>$regi_i</a>";}
%databox=();$i=0;  $t=$f_sln-$hyo+1;while(<LOG>){  #$ih\"ango\" $vt\"$l_ango\">
($l_no)=split(/<>/);if($l_no<=$f_sln && $l_no>=$t){
$databox{$_}=$l_no;  $i++;if($i>=$hyo){ last;}}
}
close(LOG);foreach(sort {$databox{$b}<=>$databox{$a}} keys %databox){ push(@new,$_);}
undef(%databox);
&header();print"<a name=TOP></a><table width='100%' border=0 cellpadding=2 cellspacing=0>
\n<tr><td>$back_t$lgt</td><td align=right bgcolor='$mdtbl_c' width='1%' nowrap>";if($f_lg){ $t=substr($rai_fL,0,length($rai_fL)-1);}  else{ $t="$rai_fl";}print"<a href='$t'>一覧</a> <a href='$rai_fL"."md=mv'>内容</a> <font color='$white'>新着順</font></td></tr></table>";
local($tag_cnt)="";if($f_lg<=0){if($cnt_f||$cnt_dsp){ &counter;}if($cnt_dsp){ $tag_cnt="$cnt_rtn";}}print"$tag_cnt<div align=center>$rai_ttl$oldlog";if($dai_dsp){ &dai_dsp;}print"<table border=0 cellpadding=2 cellspacing=0 width='100%'><tr><td bgcolor=$tbl_dk colspan=3>$info_i &nbsp; $regi_i&nbsp; &nbsp; &nbsp; &nbsp; <font color='$white'>ページ</font> ";$i=1;  $t=$l_cnt;
local($lastln)=$l_cnt-$qnlf+1;if($qnlf<1){ print"<font color='$white'>$i </font>";}else{	foreach(1..100){if($t<$lastln){ last;}if($i>100){ print"<font color='$vlink'>...</font>";  last;} #&header();
  	if(($f_sln>=$t) && ($f_sln<$t+$hyo)){ print"<font color='$white'>$i </font>";}#.
  	else { print" <a href='$rai_fL"."md=nv&sln=$t'>$i </a>";}$t-=$hyo;$i++;}}print"</td></tr></table>$sp_wd<br></div>";
&sled(3,2,1,1,$iconnv,1);print"<br><br>\n<div align=left><a href='#TOP'>上へ</a>";
  	if(($t=$f_sln-$hyo)>=$lastln){
  		print" &nbsp; &nbsp;<a href='$rai_fL"."md=nv&sln=$t'>次ページへ -&gt;</a>";}print"</div>";print"<br><br><br><br><br><br>";
&footer();
for(1..5){ print"<br><br><br><br>";}
exit;}sub tv {if(!$f_no && $f_md eq "ov"){ &error("記事番号がありません err tv35");}if(!open(LOG,"$log_fl")){ &error("ログが存在しないか、開くことができません err tv72");}$toplogln=<LOG>;
($l_cnt)=split(/<>/,$toplogln);if($F{'mln'}){if(!$f_no && !$f_pn){ &error("no no pn err30");}if(!$f_no){ $i=0;
  while(<LOG>){ $i++; ($t,$t)=split(/<>/);
  	if($f_pn eq "$t"){ ($f_no)=split(/<>/);  last;}}}elsif(!$f_pn){ $i=0;
  while(<LOG>){ $i++;  ($t)=split(/<>/);if($f_no eq "$t"){ ($t,$f_pn)=split(/<>/);  last;}}}if(!$f_no||!$f_pn){
  if($f_lg){ $t="ログ($f_lg)内に";}  else{ $t="ログ(x)内に";}
  if($F{'mln'} eq "pov"){ $i="";}
  else{ $i="<a href='$rai_fl"."md=pov&lg=$F{'mln'}&no=$f_no'>こちら</a>から検索できます。";}
  &error("$t記事番号<b>$f_no</b>の記事は見つかりませんでした err10 atov<br><br>$i");}
close(LOG);if(!open(LOG,"$log_fl")){ &error("ログが存在しないか、開くことができません err tv323");}$toplogln=<LOG>;
($l_cnt)=split(/<>/,$toplogln);if(substr($c_sur,1,1) eq "2"){ #{}}
local($hyo)="";if($c_mvln<1){ $hyo=$mvln;}elsif($c_mvln>=$max_mvln){ $hyo=$max_mvln;}else{ $hyo=$c_mvln;}if($i > $hyo){ $f_ln=int(($i-1)/$hyo)*$hyo+1;}else{ $f_ln=1;}$f_sln="x";}elsif(substr($c_sur,1,1) eq "3"){ $f_sln=$l_cnt;  $f_ln="x";}else{	local($hyo)="";if($c_avln<1){ $hyo=$avln;}elsif($c_avln>=$max_avln){ $hyo=$max_avln;}else{ $hyo=$c_avln;}if($i > $hyo){ $f_ln=int(($i-1)/$hyo)*$hyo+1;}else{ $f_ln=1;}$f_sln="";}}if($f_ln<2){if($f_sln eq "x"){ $mdtmp2="md=mv";}elsif($f_ln eq "x"){if($f_sln!=$l_cnt){ $mdtmp2="md=nv&sln=$f_sln";}else{ $mdtmp2="md=nv";}}else{ $mdtmp2="";}}else{	if ($f_sln eq "x"){ $mdtmp2="md=mv&ln=$f_ln";}elsif($f_ln eq "x"){if($f_sln!=$l_cnt){ $mdtmp2="md=nv&sln=$f_sln";}else{ $mdtmp2="md=nv";}}else{ $mdtmp2="ln=$f_ln";}}if(($f_sln)&&($f_sln!=$l_cnt)){$f_slntmp="&sln=$f_sln";} else { $f_slntmp="";}
local($OUT)="";
local($aname)=local($dpp)=local($flag)=local($oyamtcsum)=0;$i=0;while(<LOG>){ $i++;
local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$t,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url)=split(/<>/);if($f_pn eq $l_pn){ $flag=1;  $oyamtcsum++;
  if   ($l_sin4>=$l_time){ $newmark="";}
  elsif($l_sin1<$l_time) { $newmark="<font color='$new1c'>新</font>";}
  elsif($l_sin2<$l_time) { $newmark="<font color='$new2c'>新</font>";}#$#fcnprt)#
  elsif($l_sin3<$l_time) { $newmark="<font color='$new3c'>新</font>";}
  else{ $newmark="<font color='$new4c'>新</font>";}
  $sentakumark="<font color='$pink'>選択</font>"; #$#l)#
  if($f_md eq "tv"){ push(@new,$_);}
  elsif($f_no eq "$l_no"){ push(@new,$_);}
  else{ $sentakumark="";}
  if($sub_cut){
  	if(length($l_sub)>$sub_cut){ $l_sub=substr($l_sub,0,$sub_cut); $l_sub.="...";}}
  if($l_dp<0){ $l_dp=0;}  elsif($l_dp>$ind_no){ $l_dp=$ind_no;}#$#f_dno"#;}
  if($l_dp && $l_dp>$dpp+1){ $OUT.="\n";  foreach(1..$l_dp-$dpp-1){ $OUT.="<dl>";}  $dpp=$l_dp-1;}
  if($dpp && $l_dp<=$dpp){$t=$dpp-$l_dp;  if($l_dp){ $t++;}  foreach(1..$t){ $OUT.="</dl>";}}
  $OUT.="\n";
  if($l_dp){ $OUT.="<dd><dl>";}
  $OUT.="<dt>";
  $aname++;$OUT.="<a href='$rai_fL"."md=ov&no=$l_no&pn=$l_pn&ln=$f_ln$f_slntmp'>$iconmv</a>";#   }{#
  if($date_cut){ $l_datet=" ";}  else{ $l_datet=substr($l_date,5,12);}
  $OUT.="$newmark ";
  if($f_md eq "ov"){$OUT.="<a href=\'$rai_fL"."md=tv&pn=$l_pn&ln=$f_ln$f_slntmp#$aname\'>$l_sub</a>";}
  else{ $OUT.="<a href='#$aname'>$l_sub</a>";}
  $OUT.=" <small>$l_name $l_datet\[$l_no]<font color=$vlink>$sentakumark</font></small>";
  $dpp=$l_dp;}elsif($flag && $f_no ne $l_pn){ last;}}
close(LOG);if($dpp && 1<=$dpp){ foreach(1..$dpp){ $OUT.="</dl>";}}$OUT.="\n</dl>\n";
local($fslntmp);if(!$f_sln){ $fslntmp="";}else{ $fslntmp="&sln=$f_sln";}$t="$rai_fL$mdtmp2";if($f_lg && substr($t,length($t)-1,1) eq "&"){ $t=substr($t,0,length($t)-1);}$i="$rai_fL";if($f_lg && substr($i,length($i)-1,1) eq "&"){ $i=substr($i,0,length($i)-1);}
&header();if($f_md eq "tv"){ $i="取り出しツリー";}  else{ $i="取り出し一記事";}print"<a name=TOP></a><a href='$t'>トップへ</a>$lgt<br><center><font color=$tvn_c>取り出しツリー</font></center><hr size=1><dl>
$OUT<hr size=1><br><center><font color=$tvn_c>上の選択記事</font></center>";}sub sled { $aname=0;
local($sres)=$_[3];  local($wintt)=$_[5];if($f_md=~ /pfv/){ $f_lntmp="";  $f_slntmp="&mln=1";}else{ $f_lntmp="&ln=$f_ln";  $f_slntmp="&sln=$f_sln";}if($reg_off eq "3"){ $sres=0;}if($f_lg>0){ $sres=0;}if($wintt){if(substr($c_sur,3,1) eq "2"){ $wintt=" target=_blank";}elsif(substr($c_sur,3,1) eq "3"){ $wintt=" target=new";}else{ $wintt="";}}else{ $wintt="";}if(!$email_dsp){ $emdsp=0;}elsif($email_dsp eq "3"){ $emdsp=2;}elsif($email_dsp eq "2" && $f_md eq "ov"){ $emdsp=2;}else{ $emdsp=1;}if(substr($c_sur,8,1) eq "2"){ $host_dsp=0;}print"<div align=right>";if($f_md eq "mv" && $#new>-1){ ($t,$i)=split(/<>/,$new[0]);  if($t ne $i){ print"<br><br>";}}
foreach $line(@new){ local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$t,$l_host)=split(/<>/,$line);$anamemai=$aname;  $aname++;  $anamepra=$aname+1;if($l_dp>=$res_dp){ $reoff=1;}  else{ $reoff=0;}if($l_dp>$ind_no){ $l_dp=$ind_no;}$ind=int(100-($ind_w*$l_dp));if($rep_c){ $l_msg=~ s/([\>]|^)(&gt;[^<]*)/$1<font color=$rep_c>$2<\/font>/g;}if($link_wd eq "1"){ $l_msg=~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\:\%\;\#]+)/$1<a href='$2' target=_blank>$2<\/a>/g;}elsif($link_wd){ $l_msg=~ s/([^=^\"]|^)(http\:\/\/[\w\.\~\-\/\?\&\=\:\%\;\#]+)/$1<a href='$2' target=_blank>$link_wd<\/a>/g;}if(substr($l_msg,0,1) eq "|"){if(substr($l_msg,0,5) eq "|pre|"){$l_msg=substr($l_msg,5);  $l_msg=~ s/<br>/\n/g;  $l_msg="<pre>$l_msg</pre>";}elsif(substr($l_msg,0,6) eq "|mono|"){$l_msg=substr($l_msg,6);  $l_msg="<font face='ＭＳ ゴシック,Osaka−等幅'>$l_msg</font>";}}if(!$host_dsp){ $l_host="";}  else{ $l_host=" <font size=-2>$l_host</font>";}if($sub_cut){if(length($l_sub)>$sub_cut){ $l_sub=substr($l_sub,0,$sub_cut); $l_sub.= "...";}}if($_[0]>1){if(!$l_dp){ print"<br><br><a name='$aname'></a><table width=100%";}else { if($_[0] eq "3"){ print"<br><br>";}print"<a name='$aname'></a><table width=$ind%";}}else {	if(!$l_dp){ print"<a name='$aname'></a><table width=100%";}else { print"<a name='$aname'></a><table width=$ind%";}$re_email="$l_email";}print" cellpadding=0 cellspacing=0 border=0 bgcolor='$bg_dk'><tr><td>\n<table width='100%' cellspacing=0 border=0 bgcolor='$tbl_lt'><tr><td>";$objtag=$_[4];if(!$_[2]){ print"$objtag";}else      { print"<a href='$rai_fL"."md=tv&pn=$l_pn$f_lntmp$f_slntmp'$wintt>$objtag</a>";}

if   ($l_sin4>=$l_time){ $newmark="";}elsif($l_sin1<$l_time) { $newmark="<font color='$new1c'>新</font>";}elsif($l_sin2<$l_time) { $newmark="<font color='$new2c'>新</font>";}elsif($l_sin3<$l_time) { $newmark="<font color='$new3c'>新</font>";}else{ $newmark="<font color='$new4c'>新</font>";}print"$newmark ";if($l_url){ $l_url="<a href='http://$l_url' target=_blank>$url_i</a>";}if($l_email){	if($emdsp eq "2" && substr($l_set,1,1) ne "1"){ $l_email="<a href=mailto:$l_email>$mail_i</a>";}else{ $l_email="mailあり";}}if(!$_[1]){ print"<a href='#TOP'><b><font color=$ttl_c2>$l_sub</font></b></a>";}elsif($_[1] eq "2"){ print"<a href='$rai_fL"."md=ov&no=$l_no&pn=$l_pn$f_lntmp$f_slntmp'$wintt><b><font color=$ttl_c2>$l_sub</font></b></a>";}else{ print"<b><font color=$ttl_c2>$l_sub</font></b>";}if($na_up){ $l_date=substr($l_date,5);print" &nbsp;<font color='$mvn_c'>$l_name $l_email $l_url $l_date [$l_no]$l_host</font>";}print"</td><td align=right valign=top nowrap>";if($sres && !$reoff){ print"<a href='$rai_fL"."md=hf&no=$l_no&pn=$l_pn$f_lntmp$f_slntmp&bm=$f_md'$wintt>返信</a> &nbsp;";}else { print"&nbsp;";}if($aname<=1){ if($#new>0){ print"<a href='#TOP'>▲</a> <a href='#$anamepra'>▽</a>";}}else{ print"<a href='#$anamemai'>△</a> ";if($aname<=$#new){ print"<a href='#$anamepra'>▽</a>";}else { print"<a href='#TOP'>▲</a>";}}print"</td></tr></table>\n<table cellpadding=2 border=0><tr>";print"<td><font color='$txt_dk'>$l_msg</font></td></tr></table>";if(!$na_up){ print"<div align=right><font color='$mvn_c'>$l_host $l_name $l_email $l_url
$l_date [$l_no]</font></div>";}print"</td></tr></table>";}  #$#fcnprt)#
@t=();print"</div>";if($f_md ne "tv" && $f_md ne "ov"){ return();}print"\n<br><br><br><div align=left><a href='#TOP'>上へ</a></div>";print"<br><br><br><br><br><br>";
&footer();
for(1..5){ print"<br><br><br><br>";}
exit;}sub hf {if(!open(LOG,"$log_fl")){ &error("Can't open l_f3");}$toplogln=<LOG>;
($l_cnt,$l_tpc,$t,$t,$t,$tl_time)=split(/<>/,$toplogln);while(<LOG>){
local($l_no)=split(/<>/);if($f_no==$l_no){ push(@new,$_); last;}}
close(LOG);
&header();
&tf_modoru;print"<center><font color=$tvn_c>返信対象の記事</font></center>";}sub regist {$selfkan_f=1;
@pastka=();$max_nametmp=int($max_name/2);  $max_subtmp=int($max_sub/2);  $max_msgtmp=int($max_msg/2);if($reg_off eq "3"){ &error("投稿/返信できません err897");}elsif($reg_off eq "1" && $f_no<1 && &epwd_chk($F{'pwd'})){ &error("新規投稿できません err844");}elsif($reg_off eq "2" && &epwd_chk($F{'pwd'})){ &error("投稿/返信できません err444");}if(!$f_name){if($name_rq){ $e_msg.="<br>・名前がありません";}else{ $f_name="匿名さん";}}if(length($f_name)>$max_name){ $e_msg.="<br>・名前が長すぎます 全角$max_nametmp字以内でお願いします";}if(!$F{'sub'}){if($sub_rq){ $e_msg.="<br>・題名がありません";}else{ $F{'sub'}="無題";}}if(length($F{'sub'})>$max_sub){ $e_msg.="<br>・題名が長すぎます 全角$max_subtmp字以内でお願いします";}if(!$F{'msg'}){ $e_msg.="<br>・内容がありません";}if(length($F{'msg'})>$max_msg){ $e_msg.="<br>・内容が長すぎます 全角$max_msgtmp字以内でお願いします";}if($email_rq||$F{'email'}||$F{'set2_1'} eq "2"){if(!&mailok($F{'email'})){ $e_msg.="<br>・メールアドレスが不正";}}if(!$F{'url'} && $url_rq){ $e_msg.="<br>・ＵＲＬがありません";}if($F{'url'} && !($F{'url'} =~/(.*)\.(.*)/)){ $e_msg.="<br>・ＵＲＬに問題があります";}if(!$F{'pwd'} && $pwd_rq){ $e_msg.="<br>・暗号がありません";}if($F{'pwd'} && $F{'pwd'} =~/[\W]/){ $e_msg.="<br>・暗号は半角英数字のみです";}if($F{'pwd'} && length($F{'pwd'})>8){ $e_msg.="<br>・暗号が長すぎます 8文字以内でお願いします";}if($e_msg){ &error("$e_msg")};$f_lvl=0;
$F{'icon'}=2;
local($f_set)="";if($F{'set1_1'} eq "1"){ $f_set=&sval_set($f_set,1,1,1);}if($rmail_f){if($rmail_f eq "2" && $F{'set2_1'} eq "2"){ $f_set=&sval_set($f_set,2,1,2);}elsif($rmail_f eq "3" && $F{'set2_1'} eq "3"){ $f_set=&sval_set($f_set,2,1,3);}}
&srand;	 local($un)="";$host2=&host2_get;if($F{'pwd'}){if(!&pwd_match($F{'pwd'},$crypted=&pwd_encrypt($F{'pwd'}))){
&error("暗号作成失敗 err rg<br><br>更新を押してください。");}}else{ $crypted="";}
local($t)=local($i)=local($j)=local($k)="";if(substr($F{'msg'},0,6) eq "|stay|"){ $F{'msg'}=substr($F{'msg'},6);  $reptup_f=0;}if(&lockon($log_lock,1,4,)){ &error("lock error l_f 6889");}if(!open(LOG,"$log_fl")){ &error("Can't open l_f1",$log_lock);}$toplogln=<LOG>;
($l_cnt,$l_tpc,$t,$l_bkuptime,$t,$tl_time,$t,$t,$l_lhost1,$l_lhost2,$l_lhost3)=split(/<>/,$toplogln);$l_cnt=~s/\r//;  $l_cnt=~s/\n//;if(substr($l_tpc,0,1) eq "k"){ &error("現在投稿できません",$log_lock);}if($dblregitm && $tl_time>$time-$dblregitm){ local($t)=$time-$tl_time;  local($i)=$dblregitm-$t;
&error("現在投稿できません。<br>
$t 秒前に投稿がありました。次の投稿には $i 秒お待ち下さい。<br><br>投稿/返信ボタンを連続して押した場合もこのエラーになります。この場合すでに投稿されています。",$log_lock);}
local($j0,$j1,$j2,$j3,$j4,$j5,$j6,$j7)=split(/>/,$l_tpc);if($f_no<1 && $dbltpctm && $j6>$time-$dbltpctm){ $t=$time-$j6;  $i=$dbltpctm-$t;
&error("現在投稿できません。<br>
$t 秒前に新規投稿(話題作成)がありました。次の新規投稿には $i 秒お待ち下さい。<br><br>投稿ボタンを連続して押した場合もこのエラーになります。この場合すでに投稿されています。",$log_lock);}$l_cntpra=$l_cnt+1;  $l_cntmai=$l_cnt-1;if($contiregi_f){ $t=0;if($host eq "$l_lhost1"){ $t++;}  if($host eq "$l_lhost2"){ $t++;}if($host eq "$l_lhost3"){ $t++;}if($t>=3 && ($tl_time+$contiregi_f)>$time){
&error("同一ホストからの４連続投稿はしばらくできません。",$log_lock);}}$qplf=0;  $lnno=-1;  $k=$l_cnt-$c_nvln;  @lines=();  @TV=();  @NV=();
local($f_hen)="";  if($f_no){ $f_hen="000.";}if($f_no){
local($ss)=$f_pn;$treei="x";while(<LOG>){ $lnno++;
($j,$i)=split(/<>/);if($j eq $i){ $qplf++;}if($ss eq $i){
  push(@TV,$_);
  if($treei eq "x"){ $treei=$lnno;} #  if($qplf<1){ $qplf=0;}"#;}
  if($f_lvl){
    ($l_no,$t,$t,$l_dp,$t,$l_time,$t,$t,$t,$t,$t,$t,$t,$t,$t,$t,$t,$t)=split(/<>/);
    if($f_no eq $l_no && $l_dp){ $f_lvl=0;}
    elsif($selfkan_f && $host eq "$t"){ $f_lvl=0;}
  }}else{ push(@lines,$_);}if($j>$k){ push(@NV,$_);}}
close(LOG);if($TV eq "x"){ &error("返信先のツリー($f_pn)がありません。err reg79",$log_lock);}}else{$treei=0;while(<LOG>){ ($j,$i)=split(/<>/);  if($j eq $i){ $qplf++;}
push(@lines,$_);}
close(LOG);}if(!$f_no){ $qplf++;  $re_dp=-1;
unshift(@TV,"$l_cntpra<>$l_cntpra<>$l_cntpra<>0<>$date<>$time<>$f_set<>$f_hen<>0<>$un<>$F{'icon'}<>$F{'sub'}<>$f_name<>$F{'email'}<>$F{'url'}<>$F{'msg'}<>$crypted<>$host<>$host2<><>\n");}elsif($reptl_f){
local($dpt)="x";
local($reari)="x";
local(@new)=();foreach(@TV){
($l_no,$l_pn,$t,$l_dp)=split(/<>/);if($dpt eq "x"){
  if($f_no eq $l_no){
($t,$t,$t,$re_dp,$t,$re_time,$re_set,$re_hen,$t,$t,$t,$t,$t,$re_email)=split(/<>/);$dpt=$re_dp;  $dpt++;
  }
  	}
  	else{
  if($reari eq "x" && $dpt>$l_dp){
push(@new,"$l_cntpra<>$f_pn<>$f_no<>$dpt<>$date<>$time<>$f_set<>$f_hen<>$f_lvl<>$un<>$F{'icon'}<>$F{'sub'}<>$f_name<>$F{'email'}<>$F{'url'}<>$F{'msg'}<>$crypted<>$host<>$host2<><>\n");$reari=1;
  }
  	}if($f_pn eq $l_no){  #?.;}#
($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$l_ango,$l_host,$l_host2)=split(/<>/);$l_lvl+=$f_lvl;  $oya_sub=$l_sub;$t=int(substr($l_hen,0,3));  $t++;if($t<1){ $t=1;}  elsif($t>999){ $t=999;}$l_hen=&hval_set($l_hen,0,3,$t);#&header();}}
push(@new,"$l_no<>$l_pn<>$l_reno<>$l_dp<>$l_date<>$l_time<>$l_set<>$l_hen<>$l_lvl<>$l_un<>$l_icon<>$l_sub<>$l_name<>$l_email<>$l_url<>$l_msg<>$l_ango<>$l_host<>$l_host2<><>\n");}else { push(@new,$_);}}if($dpt eq "x"){ &error("返信先の記事($f_no)が見つかりません。err reg48",$log_lock);}if($reari eq "x"){
push(@new,"$l_cntpra<>$f_pn<>$f_no<>$dpt<>$date<>$time<>$f_set<>$f_hen<>$f_lvl<>$un<>$F{'icon'}<>$F{'sub'}<>$f_name<>$F{'email'}<>$F{'url'}<>$F{'msg'}<>$crypted<>$host<>$host2<><>\n");}  #$#s{#
@TV=@new;}else {
local($dpt)="x";
local($reari)="x";
local(@new)=();foreach(@TV){
($l_no,$l_pn)=split(/<>/);if($f_pn eq $l_no){
($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$l_ango,$l_host,$l_host2)=split(/<>/);$l_lvl+=$f_lvl;  $oya_sub=$l_sub;$t=int(substr($l_hen,0,3));  $t++;if($t<1){ $t=1;}  elsif($t>999){ $t=999;}$l_hen=&hval_set($l_hen,0,3,$t);
push(@new,"$l_no<>$l_pn<>$l_reno<>$l_dp<>$l_date<>$l_time<>$l_set<>$l_hen<>$l_lvl<>$l_un<>$l_icon<>$l_sub<>$l_name<>$l_email<>$l_url<>$l_msg<>$l_ango<>$l_host<>$l_host2<><>\n");}else { push(@new,$_);}if($dpt eq "x" && $f_no eq $l_no){
($t,$t,$t,$re_dp,$t,$re_time,$re_set,$re_hen,$t,$t,$t,$t,$t,$re_email)=split(/<>/);$dpt=$re_dp;  $dpt++;
       				push(@new,"$l_cntpra<>$f_pn<>$f_no<>$dpt<>$date<>$time<>$f_set<>$f_hen<>$f_lvl<>$un<>$F{'icon'}<>$F{'sub'}<>$f_name<>$F{'email'}<>$F{'url'}<>$F{'msg'}<>$crypted<>$host<>$host2<><>\n");}}
@TV=@new;}if(($re_dp>$res_dp-1)||(substr($re_hen,0,3)>=$res_no)){ &error("投稿/返信できません。",$log_lock);}$l_msg="";if($reptup_f){ unshift(@lines,@TV);}else{ splice(@lines,$treei,0,@TV);}$i=int($max_logln * 0.9)+1;if($#lines>$max_logln-1){$pastqnlf=-1;  $pastqplf=0;  $pastmaxl_cnt=0;foreach(0..$#lines){ $pastqnlf++;$t=pop(@lines);
unshift(@pastka,$t);
($l_no,$l_pn)=split(/<>/,$t);if($l_no>$pastmaxl_cnt){ $pastmaxl_cnt=$l_no;}if($l_no eq $l_pn){ $qplf--;  $pastqplf++;if($#lines<$i){ last;}}}
}if($l_bkuptime<($time-60*60*24*7)){ $l_bkuptime=$time; $backup=1;}if($f_no<1){ $j6=$time;}$j1=$#lines+1;if($qplf<1){ $qplf=0;}$j2=int($qplf);$l_tpc="$j0>$j1>$j2>$j3>$j4>$j5>$j6>$j7>";
unshift(@lines,"$l_cntpra<>$l_tpc<><>$l_bkuptime<>$date<>$time<><><>$host<>$l_lhost1<>$l_lhost2<>\n");
open(LOG,">$log_fl")||&error("Can't write l_f62",$log_lock);  print LOG @lines;  close(LOG);if($pastlog_f && @pastka!=()){ $toplogln="$l_cntpra<>$l_tpc<><>$l_bkuptime<>$date<>$time<><><><><><>\n";
&pastlogka;}if($backup && $bkup_f){
unless(-e $bkup_fl){if(&make_fl("$bkup_fl",0666,"0\n")){ &error("Can't make bk_f98",$log_lock);}}if(!open(LOG,">$bkup_fl")){ &error("Can't open bk_f72",$log_lock);}print LOG @lines;  close(LOG);}if(-e $log_lock){ unlink($log_lock);}
undef(@lines);$mailbody="";  $mailhead="";  $sended="";  local(%x9x)=();if($rmail_f eq "3"){
foreach(@TV){#;}#
($t,$t,$t,$t,$t,$t,$i,$t,$t,$t,$t,$t,$t,$t)=split(/<>/);if(substr($i,2,1) eq "3" && &mailok($t)){ $x9x{$t}=1;  $mailhead=1;}}
}if($pmail_f && $F{'email'} && &mailok($F{'email'})){ $x9x{$F{'email'}}=1;  $mailhead=1;}if($rmail_f && $re_email && substr($re_set,2,1) eq "2" && &mailok($re_email)){ $x9x{$re_email}=1;  $mailhead=1;}if($amail_f && &mailok($adminemail)){ $x9x{$adminemail}=1;  $mailhead=1;}if($mailhead){ $mailhead="";foreach $key(keys(%x9x)){ if(!$mailhead){ $mailhead="$key";}  else{ $mailhead.=",$key";}}
$mailhead="Bcc: $mailhead\n";
undef(%x9x);if(&sendmail){ $sended.="2";}}
}sub header {$|=1;if($ENV{'PERLXS'} eq "PerlIS"){ print"HTTP/1.0 200 OK\n";}print"Content-Type: text/html;charset=Shift_JIS\n\n<html lang=\"ja\"><head><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html;charset=Shift_JIS\">
$addstyle<title>$html_ttl</title></head><body background='$bg_i' bgcolor='$bg_lt' text='$txt_lt' link='$link' vlink='$vlink' alink='$alink'>\n";if(!$_[0]){ print"$ban_a\n";}}sub footer {
print"\n\n<font size=2><div align=right>$ver";if(!$_[0]){ print"<a href='http://wakatiai.com/' target=_blank>wakatiai.com</a>$dist_tag
$date</div>\n$ban_b\n";}else{ print"$date</div>\n";}print"</font><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></body></html>\n";}sub error {  if($_[1]){ unlink($_[1]);}  if($_[2]){ unlink($_[2]);}#  if($sub_cut){;}#
&header(1);print"<a href='JavaScript:history.back()'>もどる</a><br><br><br><br><font color=$txt_dk>エラー<br><br>$_[0]</font><br><br><br>"; #  else{ $OUT.="<a href='#$aname'>$l_sub</a>";};}#
&footer(1);  exit;}sub toukou_after {if($sended=~/2/){ $sended="<br><font color='$pink'>メール送信失敗。</font>";}$l_msg=$F{'msg'};if($rep_c){ $l_msg=~s/([\>]|^)(&gt;[^<]*)/$1<font color=$rep_c>$2<\/font>/g;}$t="<tr><td nowrap><font face='ＭＳ ゴシック'>";if($F{'url'}){ $F{'url'}="http://"."$F{'url'}";}
&header(); #$#new
&modoru;print"<center><big><font color='$txt_dk'>
投稿しました<br>ありがとうございます</font></big>$sended<hr></center>";print"<div align=left><table border=0>
$t題　名</font></td><td><b><font color='$link'>$F{'sub'}</font></b></td></tr>
$tお名前</font></td><td><b>$f_name</b></td></tr>
$tメール</font></td><td>$F{'email'}</td></tr>
$tＵＲＬ</font></td><td>$F{'url'}</td></tr>
$t内　容</font></td><td></td></tr></table></div>";print"<table width='100%'><tr><td><font color='$txt_dk'>$l_msg</font></td></tr></table><br><br><br><br><br><br><br><br><hr>";
&footer();  exit;}sub modoru {
local($mdtop)="";if($f_bm eq "mv"||$f_sln eq "x"){if($f_ln>1 && !$reptup_f){ $mdtop="$rai_fL"."md=mv&ln=$f_ln";}else{ $mdtop="$rai_fL"."md=mv";}}elsif($f_bm eq "nv"||$f_ln eq "x"){ $mdtop="$rai_fL"."md=nv";}else{	if($f_ln>1 && !$reptup_f){ $mdtop="$rai_fL"."ln=$f_ln";}else{ $mdtop="$rai_fL";}}print"<a href='$mdtop'>トップへ</a>";if($f_no){if($f_bm eq "mv"||$f_sln eq "x"){if($f_ln>1 && !$reptup_f){ $mdtop="$rai_fL"."md=tv&pn=$f_pn&ln=$f_ln&sln=x";}else{ $mdtop="$rai_fL"."md=tv&pn=$f_pn&ln=1&sln=x";}}elsif($f_bm eq "nv"||$f_ln eq "x"){if($f_sln ne $l_cnt && !$reptup_f){ $mdtop="$rai_fL"."md=tv&pn=$f_pn&ln=x&sln=$f_sln";}else{ $mdtop="$rai_fL"."md=tv&pn=$f_pn&ln=x&sln=$l_cntpra";}}else{	if($f_ln>1 && !$reptup_f){ $mdtop="$rai_fL"."md=tv&pn=$f_pn&ln=$f_ln";}else{ $mdtop="$rai_fL"."md=tv&pn=$f_pn&ln=1";}}print"<br><a href='$mdtop'>自記事へ</a>";}}sub ref_chk {$ref=$ENV{'HTTP_REFERER'};$ref=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;if($ref !~ /$base_url/){ &error("error456");}}sub agent_get {	local($agent)=$ENV{'HTTP_USER_AGENT'};if($agent=~/MSIE /i){$sub_w=46;  $name_w=38;  $url_w=38;  $msg_w=62;}else {	$sub_w=34;  $name_w=28;  $url_w=28;  $msg_w=62;}}sub cook_set {$c_name=~s/[ ;=><"]/x/g;  $c_email=~s/[ ;=><"]/x/g;  $c_url=~s/[ ;=><"]/x/g;$c_pwd=~s/[ ;=><"]/x/g;   $c_icon=~s/[ ;=><"]/x/g;   $c_sur=~s/[ ;=><"]/x/g;$c_idpw=~s/[ ;=><"]/x/g;
local($secg,$ming,$hourg,$mdayg,$monthg,$yearg,$wdayg,$ydayg,$isdstg)=gmtime(time+60*24*60*30);if($secg <10){ $secg ="0$secg";}   if($ming <10){ $ming ="0$ming";}if($hourg<10){ $hourg="0$hourg";}  if($mdayg<10){ $mdayg="0$mdayg";}$yearg+=1900;
local($monthg)=('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$monthg];
local($youbi)=('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wdayg];
local($date_gmt)="$youbi, $mdayg\-$monthg\-$yearg $hourg:$ming:$secg GMT"; #・現在ログを見るにはxと入れます。<br>{#
local($cook)="n>$c_name<>e>$c_email<>u>$c_url<>p>$c_pwd<>i>$c_icon<>s>$c_sur<>idpw>$c_idpw";if($f_md eq "nocook"){ $date_gmt="Sun, 01-Jan-1995 01:00:00 GMT";  $cook="";  $f_bm="av";  $f_ln="";}print"Set-Cookie: $f_bs=$cook; expires=$date_gmt\n";}sub pastlogka {
unless(-e $pastno_fl){ if(&make_fl("$pastno_fl",0666,"1\n")){ &error("Can't make pno_f71",$log_lock);}}
open(LOG,"$pastno_fl")||&error("Can't open pno_f72",$log_lock);$no=<LOG>;  close(LOG);$no=~ s/\r//;  $no=~ s/\n//;$past_fl="$pastlog_dir/$no\.log";#,
unless(-e $past_fl){ if(&make_fl("$past_fl",0666,"0\n")){ &error("Can't make p_f999",$log_lock);}}
open(LOG,"$past_fl")||&error("Can't open p_f13",$log_lock);  @past=<LOG>;  close(LOG);if($#past>=$max_pastlogln){
shift(@past); #$#fcnprt"#;}
local($pastqplf)=0;  local($pastmaxl_cnt)=0;foreach(@past){ local($t,$i)=split(/<>/);if($t>$pastmaxl_cnt){ $pastmaxl_cnt=$t;}if($t eq $i){ $pastqplf++;}}
local($pastj1)=$#past+1;
local($pastj2)=$pastqplf;
local($pastl_tpc)=">$pastj1>$pastj2>>>>>>";#&header();
unshift(@past,"$pastmaxl_cnt<>$pastl_tpc<><><>$date<>$time<><><><><><>\n");
open(LOG,">$past_fl")||&error("Can't write p_f11",$log_lock); print LOG @past;  close(LOG);
@past=@pastka;  unshift(@past,$toplogln);$no++;$past_fl="$pastlog_dir/$no\.log";if(&make_fl("$past_fl",0666,"0\n")){ &error("Can't make p_f791",$log_lock);}
open(LOG,">$pastno_fl")||&error("Can't write pno_f12",$log_lock);print LOG $no;  close(LOG);}else {	local($t,$t)=split(/<>/,shift(@past));
local($pastj1,$pastj1,$pastj2)=split(/>/,$t);$pastj1+=$pastqnlf;$pastj2+=$pastqplf;
local($pastl_tpc)=">$pastj1>$pastj2>>>>>>";
unshift(@past,@pastka);
unshift(@past,"$pastmaxl_cnt<>$pastl_tpc<><><>$date<>$time<><><><><><>\n");}#@TV=@new;}else {
open(LOG,">$past_fl")||&error("Can't write p_f11",$log_lock);print LOG @past; close(LOG);
undef(@pastka);  undef(@past);$t=int($no-$pastlog_f);if($t>0){ $i="$pastlog_dir/$t\.log";  if(-e $i){ unlink($i);}}}sub toukou_f {if($f_bm eq "av"||!$f_sln){ $f_lntmp=$f_ln;}if($c_name eq "$adminname"){ $c_name="$adminnameaxs";}$inputtmp="<input type=hidden name=fp value='$flg2"."no:$f_no,pn:$f_pn,ln:$f_ln,sln:$f_sln,bm:$f_bm'>";if(!$toplogln){if(!open(LOG,"$log_fl")){ &error("Can't open l_fb6");}$toplogln=<LOG>;
close(LOG);
($l_cnt,$l_tpc,$t,$t,$t,$tl_time)=split(/<>/,$toplogln);}if(substr($l_tpc,0,1) eq "k"){ $kinsi=1;}if($f_md ne "hf"){ &tf_modoru;}if($f_md eq "sf"){ $f_ln=1;}print"<br><br><br><div align=center>$lgt<form action='$rai_ff' method=POST><input type=hidden name=fp value='$flg2"."md:regist,ln:$f_ln,sln:$f_sln,bm:$f_bm'>";if($kinsi){ print"<br><b><big><big><font color='$txt_dk'>
現在投稿/削除できません。</font></big></big></b><br>";}elsif($dblregitm && $tl_time>$time-$dblregitm){ local($t)=$time-$tl_time;  local($i)=$dblregitm-$t;print"<font color='$pink'>$t 秒前に投稿がありました。投稿は $i 秒お待ち下さい。</font><br>";}if($f_md eq "ov"||$f_md eq "hf"){ $reswdt="返信する";print"<font color=$tvn_c><b><big>▼　返信はここからです　▼</big></b></font><input type=hidden name=no value='$f_no'><input type=hidden name=pn value='$f_pn'>";}else { $reswdt="投稿する";print"<font color=$tvn_c><b><big>▼　投稿はここからです　▼</big></b></font><input type=hidden name=no value=0>";}if($ml_email){ print"<br><font color='$pink'>投稿/返信内容はメールリストに送信されます。</font><br>";}print"\n\n<table border=0 cellspacing=0 cellpadding=3><tr><td bgcolor=$bg_dk nowrap><b><font color=$mvn_c>題　名</font></b></td><td bgcolor=$bg_dk nowrap><input type=text name=sub size=$sub_w> <input type=submit value=' $reswdt '></td></tr>
\n<tr><td bgcolor=$bg_dk nowrap><b><font color=$mvn_c>お名前</font></b></td><td bgcolor=$bg_dk nowrap><input type=text name=name value='$c_name' size='$name_w'></td></tr>
\n<tr><td bgcolor=$bg_dk nowrap><b><font color=$mvn_c>内　容</font></b></td><td bgcolor=$bg_dk>&nbsp;</td></tr>
\n<tr><td bgcolor=$bg_dk colspan=2 align=center><textarea name=msg rows=13 cols='$msg_w' wrap='$wrap'></textarea><br><br></td></tr>";if(!$email_rq && !$url_rq && !$pwd_rq){ print"\n<tr bgcolor=$op_c><td>&nbsp; </td><td><font color='$txt_dk'> ...&nbsp; ここから下は記入しなくても投稿できます&nbsp; ...</font><br></td></tr>";}print"\n<tr bgcolor=$op_c><td nowrap><b><font color=$mvn_c>メール</font></b></td>
  <td><input type=text name=email size=$url_w value='$c_email'> <font color=$mvn_c>";if($email_rq){ print"必須";} else { print"任意";}if($rmail_f||$email_dsp){ print"<br>";}if($rmail_f eq "2"&&(split(/,/,$new[0]))[3]<$res_dp){ print"<input type=checkbox name=set2_1 value=2>返信をメールで受信 ";}elsif($rmail_f eq "3"){ print"<input type=checkbox name=set2_1 value=3>今後全同ツリー内返信をメール受信 ";}print"<input type=checkbox name=set1_1 value=1>メール非表\示";print"</font></td></tr>
\n<tr bgcolor=$op_c><td nowrap><b><font color=$mvn_c>ＵＲＬ</font></b></td>
  <td><input type=text name=url value='http://$c_url' size='$url_w'> ";if($url_rq){ print"<font color=$mvn_c>必須</font>";} else { print"<font color=$mvn_c>任意</font>";}print"</td></tr>";if(substr($pdsp_swt,6,1) eq "1"){
print"\n<tr bgcolor=$op_c><td nowrap><b><font color=$mvn_c>暗号</font></b></td><td><input type=password name=pwd value='$c_pwd' size=8 maxlength=8>
 <a href='$rai_fl"."md=phow' target=_blank>説明</a></td></tr>";}print"</table></form>";if($uchk_f){ print"<br>
掲示板ユーザー登録がまだの方は<a href='$rai_fl"."md=puser'>こちら</a>からどうぞ";}print"</div><br><br><br><br><br><br><br>";
&footer();  exit;}

sub tf_modoru {$t="$rai_fL";if($f_lg && $f_bm eq "av" && $f_ln<2){ $t=substr($t,0,length($t)-1);}print"<a href='$t";
if   ($f_bm eq "av"){	if($f_ln>1){ print"ln=$f_ln";}}elsif($f_bm eq "mv"){ print"md=mv";  if($f_ln>1){ print"&ln=$f_ln";}}elsif($f_bm eq "nv"){	print"md=nv";  if($f_sln){ print"&sln=$f_sln";}}else{	if($f_ln){ $lnt="&ln=$f_ln";}  if($f_sln){ $lnt.="&sln=$f_sln";}if($f_bm eq "tv")	{ print"md=tv&pn=$f_pn$lnt";}else			{ print"md=ov&no=$f_no&pn=$f_pn$lnt";}}print"'>もどる</a>";}sub axs_chk { $axs_chk="ok";if($axsoff[0]){#$#new
foreach(@axsoff){if(!$_){ last;}$_ =~ s/\*/\.\*/g;if($host =~ /$_/){ $axs_chk="ng"; last;}}
}if($axs_chk eq "ng"){ &header(1);print"<h3>Unable to access this URL.</h3></body></html>";  exit;}}sub epwd_chk {if($_[0] ne "$adminpwd"){ return(100);}
return();}sub srand { if($srand_chk ne "1"){ srand(time^($$+($$<<15)));  $srand_chk="1";}}sub host2_get {
local($t);$t=$ENV{'HTTP_VIA'} if($ENV{'HTTP_VIA'}=~s/.*\s(\d+)\.(\d+)\.(\d+)\.(\d+)/$1.$2.$3.$4/ );$t=$ENV{'HTTP_FORWARDED'} if($ENV{'HTTP_FORWARDED'}=~s/.*\s(\d+)\.(\d+)\.(\d+)\.(\d+)/$1.$2.$3.$4/ );$t=$ENV{'HTTP_X_FORWARDED_FOR'} if($ENV{'HTTP_X_FORWARDED_FOR'}=~s/^(\d+)\.(\d+)\.(\d+)\.(\d+)(\D*).*/$1.$2.$3.$4/ );$t=~s/</&lt;/g;  $t=~s/>/&gt;/g;
return($t);}sub make_fl {	open(LOG,">$_[0]")||return(10);if($_[2]){ print LOG $_[2];}#&header();)#
close(LOG);  chmod($_[1],"$_[0]");  return();}sub pwd_encrypt { &srand;
local(@xset)=('a'..'z','A'..'Z','0'..'9','.','/');
local($salt)=$xset[int(rand(@xset))].$xset[int(rand(@xset))];
return(crypt($_[0],$salt)||crypt($_[0],'$1$'.$salt));}sub pwd_match {
local($salt)=$_[1]=~/^\$1\$(.*)\$/ && $1 || substr($_[1],0,2);if(crypt($_[0],$salt) eq "$_[1]" || crypt($_[0],'$1$'.$salt) eq "$_[1]"){ return(100);}#  if($qplf<1){ $qplf=0;};}#
return();}  #$#s


sub udel {if($reg_off>2){ &error("投稿/削除はできません");}if(!$F{'delno'}){ &error("削除記事番号が入力されていません");}if(!$F{'delpwd'}){ &error("暗号が入力されていません");}
push(@sptdata,"1/$adminpwd/9");
local($authnamet,$auth6)=("Poster","");if($F{'delpwd'}=~/\//){ $auth6=&auth_get($F{'delpwd'});if($auth6!~/9/ && $auth6!~/6/){ &error("削除権限がありません($F{'delpwd'})");}else{ $auth6=1;  ($authnamet)=split(/\//,$F{'delpwd'});if($authnamet eq "1"){ $authnamet="Administrator";}
else{ $authnamet="helper $authnamet";}}
}if(&lockon($log_lock,1,4,)){ &error("lock error l_f 464");}if(!open(LOG,"$log_fl")){ &error("Can't open l_fb9876",$log_lock);} #   }
@lines=<LOG>;  close(LOG);##
local($toplogln)=shift(@lines);
($l_cnt,$l_tpc)=split(/<>/,$toplogln);if(substr($l_tpc,0,1) eq "k"){ &error("現在削除できません",$log_lock);}
($t,$t,$qplf)=split(/>/,$l_tpc);
local($renoari)=local($fnolvl)=local($del_er)=0;
local($fnooya)="x";  local($oyai)="x";  local($renoi)="x";
for($i=$#lines; $i>=0; $i--){ #$ih\"ango\" $vt\"$l_ango\">}}
  ($l_no,$l_pn,$l_reno)=split(/<>/,$lines[$i]);
  if($F{'delno'} eq $l_reno && $l_no ne $l_pn){ $renoari=1;}
  if($F{'delno'} eq $l_no){
local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$l_ango)=split(/<>/,$lines[$i]);if(!$auth6){if(!$l_ango){ &error("この記事には暗号が設定されていません",$log_lock);}if(!&pwd_match($F{'delpwd'},$l_ango)){ &error("暗号が違います err udel",$log_lock);}}$renoi=$i;$nod=$l_no;  $named=$l_name;if($l_dp){ $fnooya=$l_pn;}else{ $oyai=$i;  last;}if($l_dp eq "1"){ $fnolvl=$l_lvl;}
  }
  if($fnooya ne "x" && $fnooya eq $l_no){ $oyai=$i;  last;}}if($renoi eq "x"){ &error("記事($F{'delno'})がみつかりません。err udel48",$log_lock);}if($fnooya ne "x" && $oyai ne "x"){
local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$l_ango,$l_host)=split(/<>/,$lines[$oyai]);$l_lvl-=$fnolvl;$t=int(substr($l_hen,0,3));  $t--;if($t<0){ $t=0;}  elsif($t>999){ $t=999;}$l_hen=&hval_set($l_hen,0,3,$t);$lines[$oyai]="$l_no<>$l_pn<>$l_reno<>$l_dp<>$l_date<>$l_time<>$l_set<>$l_hen<>$l_lvl<>$l_un<>$l_icon<>$l_sub<>$l_name<>$l_email<>$l_url<>$l_msg<>$l_ango<>$l_host<><><>\n";}if($renoari==1 && $renoi ne "x"){
local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$l_ango,$l_host)=split(/<>/,$lines[$renoi]);$lines[$renoi]="$l_no<>$l_pn<>$l_reno<>$l_dp<>$l_date<>$l_time<>$l_set<>$l_hen<>$l_lvl<>$l_un<>$l_icon<>Deleted by $authnamet<>Deleted<><><><><><><><>\n";}else{ if(!(split(/<>/,$lines[$renoi]))[3]){ $qplf--;}  splice(@lines,$renoi,1,"");} #$#f_dno
($l_cnt,$l_tpc,$t,$l_bkuptime,$l_date,$tl_time,$t,$t,$l_lhost1,$l_lhost2,$l_lhost3)=split(/<>/,$toplogln);$l_cnt=~s/\r//;  $l_cnt=~s/\n//;
local($j0,$j1,$j2,$j3,$j4,$j5,$j6,$j7)=split(/>/,$l_tpc);$j1=$#lines+1;if($qplf<1){ $qplf=0;}$j2=int($qplf);$l_tpc="$j0>$j1>$j2>$j3>$j4>$j5>$j6>$j7>";
unshift(@lines,"$l_cnt<>$l_tpc<><>$l_bkuptime<>$l_date<>$tl_time<><><>$l_lhost1<>$l_lhost2<>$l_lhost3<>\n");if(!open(LOG,">$log_fl")){ &error("Can't write l_f7",$log_lock);}print LOG @lines;  close(LOG);if(-e $log_lock){ unlink($log_lock);}
&header();print"<a href='$rai_fl"."md=pudel'>もどる</a><br><br><hr><br><b><big>削除完了しました</big></b><br><br><font color=$txt_dk><b>記事番 $nod <br>投稿者 $named <br></b></font><br><br><hr>";
&footer();  exit;}sub eav {if(&epwd_chk($F{'pwd'})){ &error("管理パスワードが違います");}if($F{'info'}){$infoiki="";}  else{ $infoiki="&info=1";}if(!open(LOG,"$log_fl")){ &error("ログが存在しないか、開くことができません err42");}
@lines=<LOG>;  close(LOG);
($l_cnt,$l_status)=split(/<>/,$lines[0]);if($l_status eq "kinsi"){ $kinsi=1;}if(!$c_avln){ $hyo=$avln;}elsif($c_avln<1){ $hyo=$avln;}elsif($c_avln>$max_avln){ $hyo=$max_avln;}else {$hyo=$c_avln;}if   ($f_ln<1)      {$f_ln=1;}elsif($f_ln>$#lines){$f_ln=1;}
if(!$f_lg){ $f_lg="x";}if($f_lg eq "x"){$lgt=" &nbsp; &nbsp; <font color='$pink'>現在ログ</font>";}else{	$lgt=" &nbsp; &nbsp; <font color='$pink'>過去ログ$f_lg</font>";}
&header(1);print"<table width='100%' border=0 cellpadding=2 cellspacing=0><tr><td nowrap><a href='$rai_fl"."md=panel'>パネルへもどる</a>
$lgt&nbsp;<font color='$pink'>編集中</font></td><td align=right width='1%'>";print"<form action='$rai_ff' method=POST>	<input type=hidden name=lg value='$f_lg'><input type=hidden name=md value='kinsi'>	<input type=hidden name=pwd value='$F{'pwd'}'><input type=hidden name=ln value='$f_ln'>	<input type=hidden name=info value='$F{'info'}'><input type=submit value='投稿/削除禁止'></form></td><td align=right width='1%'>";print"<form action='$rai_ff' method=POST>	<input type=hidden name=lg  value='$f_lg'><input type=hidden name=md  value='kaikin'>	<input type=hidden name=pwd value='$F{'pwd'}'><input type=hidden name=ln  value='$f_ln'>	<input type=hidden name=info value='$F{'info'}'><input type=submit value='投稿/削除解禁'></form></td></tr></table>";$wintt=substr($c_sur,3,1);if($wintt eq "2"){ $wintt=" target=_blank";}elsif($wintt eq "3"){ $wintt=" target=new";}else{ $wintt="";}print"<div align=center><table border=0><tr><form action='$rai_ff' method=GET><td>
ログ<input name=lg value='$f_lg' size=4>を<input type=submit value='見る'><input type=hidden name=md value=eav><input type=hidden name=pwd value='$F{'pwd'}'>
&nbsp; &nbsp;</td></form><form action='$rai_ff' method=GET$wintt><td><input type=hidden name=lg value='$f_lg'><input type=hidden name=md value=eov>
記事<input name=no value='' size=4>番を<input type=submit value='見る'><input type=hidden name=pwd value='$F{'pwd'}'></td></form></tr></table></div>";if($kinsi){ print"<big><big><font color='$txt_dk'>注意：現在投稿/削除禁止中です。<br>右上の<b>投稿/削除解禁</b>	ボタンを押すまで解除されません。</font></big></big>";}print"<div align=center><b><font size=+3 color='$ttl_c'>$html_ttl</font></b>";if($dai_dsp){ &dai_dsp;}if($f_ln>1){ $t="&ln=$f_ln";}  else{ $t="";}$i=substr($rai_fL,0,length($rai_fL)-1);if($f_ln>1){ $i.="?ln=$f_ln";}print"<table border=0 cellpadding=2 cellspacing=0 width='100%'><tr><td bgcolor=$tbl_dk><a href='$rai_fL"."md=eav&pwd=$F{'pwd'}$t$infoiki'>操作</a> &nbsp; <a href='$i' target=_blank>補助</a>　　　　<font color='$white'>ページ→</font> ";if($#lines<1){ print"<font color='$white'>1 </font>";}else{	$i=1;  $t=1;while($t<=$#lines){if($i>100){ print"<font color='$link'>...</font>";  last;}if(($f_ln>=$t) && ($f_ln<$t+$hyo)){ print"<font color='$white'>$i </font>";}else {	if($t>1){
print" <a href='$rai_fL"."md=eav&pwd=$F{'pwd'}&ln=$t'>$i </a>";}else{	print" <a href='$rai_fL"."md=eav&pwd=$F{'pwd'}'>$i </a>";}}$t+=$hyo;  $i++;}}print"</td></tr></table>";print"<table border=0 cellpadding=2 cellspacing=0 width='100%'><tr><td bgcolor=$tbl_dk colspan=3><form action='$rai_ff' method=POST><input type=hidden name=lg value='$f_lg'><input type=hidden name=md value='edel'><input type=hidden name=pwd value='$F{'pwd'}'><input type=hidden name=ln value='$f_ln'><input type=submit value='削除/更新'> <input type=reset value='リセット'></td></tr>";if($F{'info'}){if(&pastno_get){ $pastno="";}if($pastno>0)	{ $pastnot="(現在ログはx、過去ログは( $pastno . . 1)です。)";}else		{ $pastnot="(現在ログはx、過去ログはありません。)";}print"\n<tr><td bgcolor=$tbl_dk colspan=3><font color='$white'><center>$pastnot</center><b>
▼「チェックBOX」 にチェックを入れて 「削除/更新」 を押しますと削除できます。
削除する記事に返信記事がある場合
その内容は削除されますが記事は残ります。完全に消すには先にその返信記事をすべて消します。<br><br>
▼題名リンクを選択しますと編集画面に入ります。編集画面では投稿内容等を編集できます。<br><br>
▼ユーザーからの投稿/削除を禁止するには投稿/削除禁止を押します。
投稿削除の禁止を中止するには投稿/削除解禁を押します。
過去ログはこの設定をしなくても投稿/削除できません。<br><br>
▼パネル設定で一覧表\示件数を少なくしてからこの編集画面に入りますと表\示が早くなります。<br><br>
▼ご注意<br>
・編集/削除をしますと、編集/削除前のデータは復旧できません。<br>
・投稿/削除の禁止をしますと、投稿/削除の解禁をするまでの間ずっと投稿ができなくなります。<br><a href='$rai_fL"."md=eav&pwd=$F{'pwd'}&ln=$f_ln$infoiki'>操作を消す</a></b></font></td></tr>";}print"</table><br></div>";if($delmsgok){ print"<br><b><font color='$txt_dk'>削除成功: $delmsgok</b></font><br>";}if(($f_ln+$hyo-1)<$#lines){ $end=($f_ln+$hyo-1);} else { $end=$#lines;}print"\n<dl>";  $dpp=0;foreach($f_ln .. $end){
local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$t,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$t,$t,$t,$t,$l_host)=split(/<>/,$lines[$_]);if($sub_cut){if(length($l_sub)>$sub_cut){ $l_sub=substr($l_sub,0,$sub_cut); $l_sub.= "...";}}if($l_dp<0){ $l_dp=0;}  elsif($l_dp>$ind_no){ $l_dp=$ind_no;}if($l_dp && $l_dp>$dpp+1){ print"\n";  foreach(1..$l_dp-$dpp-1){ print"<dl>";}  $dpp=$l_dp-1;}if($dpp && $l_dp<=$dpp){$t=$dpp-$l_dp;  if($l_dp){ $t++;}  foreach(1..$t){ print"</dl>";}}print"\n";  if($l_dp){ print"<dd><dl>";}print"<dt>";print"<input type=checkbox name=dno value=$l_no>";print"$iconav";if($l_dp eq "1"){ print"　";}if   ($l_sin4>=$l_time){ ;}elsif($l_sin1<$l_time) { print"<font color='$new1c'>新</font>";}elsif($l_sin2<$l_time) { print"<font color='$new2c'>新</font>";}elsif($l_sin3<$l_time) { print"<font color='$new3c'>新</font>";}else{ print"<font color='$new4c'>新</font>";}if($date_cut){ $l_datet=" ";}  else{ $l_datet=substr($l_date,5,12);}print"<a href='$rai_fL"."md=eov&no=$l_no&ln=$f_ln&pwd=$F{'pwd'}'$wintt>$l_sub</a> $l_name $l_datet $l_host [$l_no]";$dpp=$l_dp;}if($dpp && 1<=$dpp){ foreach(1..$dpp){ print"</dl>";}}print"\n</dl>\n";print"</form><br><br><br><div align=left></div><br><br>";  #;{#
&footer(1);  exit;}sub eov {if(&epwd_chk($F{'pwd'})){ &error("管理パスワードが違います");}if(!$f_no)		 { &error("削除記事番号がありません(ed)");}
open(LOG,"$log_fl")||&error("Can't open l_fb6"); #$#s;}#
@lines=<LOG>;  close(LOG);  shift(@lines);$editari="";  $i=-1;foreach $line(@lines){ $i++;
($l_no)=split(/<>/,$line);if($f_no eq "$l_no"){ $editari=1;  $ttln=$line;  last;}}if(!$editari){ &error("編集対象記事が見つかりません");}
($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$l_ango,$l_host,$l_host2)=split(/<>/,$ttln);
undef(@lines);if(!$f_ln){
local($hyo)="";if($c_avln<1){ $hyo=$avln;}elsif($c_avln>$max_avln){ $hyo=$max_avln;}else         { $hyo=$c_avln;}if($i>$hyo){ $f_ln=int($i/$hyo)*$hyo+1;}
else{ $f_ln=1;}}$l_msg =~ s/<br>/\r/g;if($f_ln<2){ $flnt="";}  else{ $flnt="&ln=$f_ln";}if($l_name eq "$adminname"){ $l_name="$adminnameaxs";}if($l_host2){ $t="$l_host ($l_host2)";}  else{ $t="$l_host";}
&header(1);print"<a name=TOP href='$rai_fL"."md=eav&pwd=$F{'pwd'}$flnt'>編集一覧表\示へ</a><br><br><center><table border=0><tr><td><font color='$txt_dk'>記事番号　</font></td><td><font color='$txt_dk'>$l_no</font></td></tr><tr><td><font color='$txt_dk'>投稿者名　</font></td><td><font color='$txt_dk'>$l_name</font></td></tr><tr><td><font color='$txt_dk'>ホストアドレス　</font></td><td><font color='$txt_dk'>$t</font></td></tr></table><form action='$rai_ff' method=POST><table border=0 cellspacing=0 cellpadding=3 bgcolor=$bg_lt><tr><td colspan=2 bgcolor=$tbl_dk align=center><br><font color=$white><b><big>▼変更はここからです▼</big></b></font><br><br></td></tr><tr><td nowrap><b><font color=$mvn_c>題　名</font></b></td><td nowrap><input type=text name=sub value='$l_sub' size=$sub_w> <input type=submit value='変 更 する'>　<input type=reset value='リセット'></td></tr><tr><td nowrap><b><font color=$mvn_c>お名前</font></b></td><td nowrap><input type=text name=name value='$l_name' size='$name_w'>　</td></tr><tr><td nowrap><b><font color=$mvn_c>内　容</font></b></td><td>　</td></tr><tr><td colspan=2 align=center><textarea name=msg rows=13 cols=$msg_w wrap='$wrap'>$l_msg</textarea><br><br></td></tr><tr bgcolor=$op_c><td>　</td><td>　</td></tr>";print"\n<tr bgcolor=$op_c><td nowrap><b><font color=$mvn_c>メール</font></b></td>
  <td><input type=text name=email size=$url_w value='$l_email'>　</td></tr>
\n<tr bgcolor=$op_c><td valign=top nowrap><b><font color=$mvn_c>ＵＲＬ</font></b></td><td><input type=text name=url value='http://$l_url' size='$url_w'>　<br><br><br><br></td></tr>";$it="<input type=text name=";$ih="<input type=hidden name=";$vt="value=";if($op_dsp){ print"
\n<tr><td colspan=2><font color='$txt_dk'><b>▼注意:ここから下のデータを変更しますと問題が発生する可能\性があります。</b></td></tr>
\n<tr bgcolor=$op_c><td colspan=2><b>no</b>$it\"no\" $vt\"$l_no\" size=3><b>pn</b>$it\"pn\" $vt\"$l_pn\" size=3><b>reno</b>$it\"reno\" $vt\"$l_reno\" size=3><b>dp</b>$it\"dp\" $vt\"$l_dp\" size=3><b>date</b>$it\"date\" $vt\"$l_date\" size=18><b>time</b>$it\"time\" $vt\"$l_time\" size=14><b>set</b>$it\"set\" $vt\"$l_set\" size=3><b>hen</b>$it\"hen\" $vt\"$l_hen\" size=3><b>elvl</b>$it\"elvl\" $vt\"$l_lvl\" size=2><b>un</b>$it\"un\" $vt\"$l_un\" size=3><b>ango</b>$it\"ango\" $vt\"$l_ango\" size=18><b>host</b>$it\"host\" $vt\"$l_host\" size=18><b>host2</b>$it\"host2\" $vt\"$l_host2\" size=18><b>lg</b>$it\"lg\" $vt\"$f_lg\" size=5><b>md</b>$it\"md\" $vt\"eedit\" size=6><b>ln</b>$it\"ln\" $vt\"$f_ln\" size=3><b>icon</b>$it\"icon\" $vt\"$l_icon\" size=3><b>pwd</b>$it\"pwd\" $vt\"$F{'pwd'}\" size=3></td></tr>";}else { print"
$ih\"no\" $vt\"$l_no\">
$ih\"pn\" $vt\"$l_pn\">
$ih\"reno\" $vt\"$l_reno\">
$ih\"dp\" $vt\"$l_dp\">
$ih\"date\" $vt\"$l_date\">
$ih\"time\" $vt\"$l_time\">
$ih\"set\" $vt\"$l_set\">
$ih\"hen\" $vt\"$l_hen\">
$ih\"elvl\" $vt\"$l_lvl\">
$ih\"un\" $vt\"$l_un\">
$ih\"ango\" $vt\"$l_ango\">
$ih\"host\" $vt\"$l_host\">
$ih\"host2\" $vt\"$l_host2\">
$ih\"lg\" $vt\"$f_lg\">
$ih\"md\" $vt\"eedit\">
$ih\"ln\" $vt\"$f_ln\">
$ih\"icon\" $vt\"$l_icon\">
$ih\"pwd\" $vt\"$F{'pwd'}\">";}print"</table></form></center><br><br><br><br><br><br>";
&footer(1);  exit;}sub edel {if(&epwd_chk($F{'pwd'})){ &error("管理暗号が違います");}if(!$f_dno[0]){ &eav;}  #${#
local($authnamet)="Administrator";if(&lockon($log_lock,1,4,)){ &error("lock error l_f 799");}if(!open(LOG,"$log_fl")){ &error("Can't open l_fb2796",$log_lock);}
@lines=<LOG>;  close(LOG);
local($toplogln)=shift(@lines);  #;}#
($t,$l_tpc)=split(/<>/,$toplogln);  #&phead;print"基本操作方法の説明です。<br><br>)#
($t,$t,$qplf)=split(/>/,$l_tpc);  #$#f_dno"#;}
  $z=-1;  local($write)=0;
  local($renoari)=local($fnolvl)=0;
  local($fnooya)="x";  local($oyai)="x";  local($renoi)="x";  #  else{ $OUT.="<a href='#$aname'>$l_sub</a>";}}}
  foreach(0..$#f_dno){ $z++;$renoari=$fnolvl=0;$fnooya="x";  $oyai="x";  $renoi="x";
for($i=$#lines; $i>=0; $i--){
   ($l_no,$l_pn,$l_reno)=split(/<>/,$lines[$i]);
   if($f_dno[$z] eq $l_reno && $l_no ne $l_pn){ $renoari=1;}
   if($f_dno[$z] eq $l_no){
local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$l_ango)=split(/<>/,$lines[$i]);$renoi=$i;$nod=$l_no;if($l_dp){ $fnooya=$l_pn;}else{ $oyai=$i;  last;}if($l_dp eq "1"){ $fnolvl=$l_lvl;}#$#new
  }
  if($fnooya ne "x" && $fnooya eq $l_no){ $oyai=$i;  last;}}if($fnooya ne "x" && $oyai ne "x"){
local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$l_ango,$l_host)=split(/<>/,$lines[$oyai]);$l_lvl-=$fnolvl;$t=int(substr($l_hen,0,3));  $t--;if($t<0){ $t=0;}  elsif($t>999){ $t=999;}$l_hen=&hval_set($l_hen,0,3,$t);$lines[$oyai]="$l_no<>$l_pn<>$l_reno<>$l_dp<>$l_date<>$l_time<>$l_set<>$l_hen<>$l_lvl<>$l_un<>$l_icon<>$l_sub<>$l_name<>$l_email<>$l_url<>$l_msg<>$l_ango<>$l_host<><><>\n";}if($renoi ne "x"){
  $write=1;
  if($renoari==1){
local($l_no,$l_pn,$l_reno,$l_dp,$l_date,$l_time,$l_set,$l_hen,$l_lvl,$l_un,$l_icon,$l_sub,$l_name,$l_email,$l_url,$l_msg,$l_ango,$l_host)=split(/<>/,$lines[$renoi]);$lines[$renoi]="$l_no<>$l_pn<>$l_reno<>$l_dp<>$l_date<>$l_time<>$l_set<>$l_hen<>$l_lvl<>$l_un<>$l_icon<>Deleted by $authnamet<>Deleted<><><><><><><><>\n";} #$#s
  else{ if(!(split(/<>/,$lines[$renoi]))[3]){ $qplf--;}  splice(@lines,$renoi,1,"");}}if($write==1){ $delmsgok.="$nod ";}
  }if($write==1){
  ($l_cnt,$l_tpc,$t,$l_bkuptime,$l_date,$tl_time,$t,$t,$l_lhost1,$l_lhost2,$l_lhost3)=split(/<>/,$toplogln);
  $l_cnt=~s/\r//;  $l_cnt=~s/\n//;
  local($j0,$j1,$j2,$j3,$j4,$j5,$j6,$j7)=split(/>/,$l_tpc);#$"#;}
  $j1=$#lines+1;
  if($qplf<1){ $qplf=0;}
  $j2=int($qplf);
  $l_tpc="$j0>$j1>$j2>$j3>$j4>$j5>$j6>$j7>";
  unshift(@lines,"$l_cnt<>$l_tpc<><>$l_bkuptime<>$l_date<>$tl_time<><><>$l_lhost1<>$l_lhost2<>$l_lhost3<>\n");
  if(!open(LOG,">$log_fl")){ &error("Can't write l_f7",$log_lock);}
  print LOG @lines;  close(LOG);}if(-e $log_lock){ unlink($log_lock);}
undef(@lines);}sub eedit {if(&epwd_chk($F{'pwd'})){ &error("管理暗号が違います");}if(!$f_no){ &error("削除記事番号が入力されていません (ng)");}if(!$F{'sub'}){ &error("題名がありません err eov198");}$F{'icon'}=int($F{'icon'});$f_name=~s/&/&amp;/g;$f_name=~s/</&lt;/g;  $f_name=~s/>/&gt;/g;$host2=&host2_get;if(&lockon($log_lock,1,4,)){ &error("lock error l_f 8111");}if(!open(LOG,"$log_fl")){ &error("Can't open l_fb6",$log_lock);}$toplogln=<LOG>;$qplf=0;  local(@lines)=();  local($t)=local($edari)="";  local($i)=$f_no;while(<LOG>){ #  if($sub_cut){)#
($t,$l_pn)=split(/<>/);if($t eq $l_pn){ $qplf++;}if($i eq $t){ $edari=1;
push(@lines,"$f_no<>$f_pn<>$F{'reno'}<>$F{'dp'}<>$F{'date'}<>$F{'time'}<>$F{'set'}<>$F{'hen'}<>$F{'elvl'}<>$F{'un'}<>$F{'icon'}<>$F{'sub'}<>$f_name<>$F{'email'}<>$F{'url'}<>$F{'msg'}<>$F{'ango'}<>$F{'host'}<>$F{'host2'}<>edited>$date>$time>$host>$host2>><>\n");}else{ push(@lines,$_);}}
close(LOG);if(!$edari){ &error("指定番号($f_no)の記事がみつかりません。err eedit98",$log_lock);} #・現在ログを見るにはxと入れます。<br>"#;}
($l_cnt,$l_tpc,$t,$l_bkuptime,$l_date,$tl_time,$t,$t,$l_lhost1,$l_lhost2,$l_lhost3)=split(/<>/,$toplogln);$l_cnt=~s/\r//;  $l_cnt=~s/\n//;
local($j0,$j1,$j2,$j3,$j4,$j5,$j6,$j7)=split(/>/,$l_tpc);$j1=$#lines+1;$j2=$qplf;$l_tpc="$j0>$j1>$j2>$j3>$j4>$j5>$j6>$j7>";
unshift(@lines,"$l_cnt<>$l_tpc<><>$l_bkuptime<>$l_date<>$tl_time<><><>$l_lhost1<>$l_lhost2<>$l_lhost3<>\n");if(!open(LOG,">$log_fl")){ &error("Can't write l_fe5",$log_lock);}print LOG @lines;  close(LOG);if(-e $log_lock){ unlink($log_lock);}
undef(@lines);}sub kinsi {if(&epwd_chk($F{'pwd'})){ &error("管理パスワードが違います");}if(&lockon($log_lock,1,4,)){ &error("lock error l_f 179");} #&phead;print"基本操作方法の説明です。<br><br>}}
open(LOG,"$log_fl")||&error("Can't open l_f1",$log_lock);  @lines=<LOG>;  close(LOG);
local($toplogln)=shift(@lines);  $toplogln=~ s/\r//g;  $toplogln=~ s/\n//g;
($l_cnt,$l_tpc,$t,$l_bkuptime,$t,$l_time,$t,$t,$l_lhost1,$l_lhost2,$l_lhost3)=split(/<>/,$toplogln);  #・現在ログを見るにはxと入れます。<br>
local($j0,$j1,$j2,$j3,$j4,$j5,$j6,$j7)=split(/>/,$l_tpc);if($f_md eq "kinsi"){ $j0="k";}  else{ $j0="x";}$j1=$#lines+1;$l_tpc="$j0>$j1>$j2>$j3>$j4>$j5>$j6>$j7>";
unshift(@lines,"$l_cnt<>$l_tpc<><>$l_bkuptime<>$date<>$l_time<><><>$l_lhost1<>$l_lhost2<>$l_lhost3<>\n");
open(LOG,">$log_fl")||&error("Can't write l_f2",$log_lock);  print LOG @lines;  close(LOG);if(-e $log_lock){ unlink($log_lock);}
undef(@lines);}sub sendmail {
    if(!$mailhead){ return(200);}
    &jcode'convert(*mailhead,'jis');
    if(!$mailbody){$f_bs=~s/\(//;  $f_bs=~s/\)//;
local($m_sub)=$F{'sub'};if($ml_email && $ml_email ne "1"){ $m_sub.=" ($l_cntpra)";}else{ $m_sub="\[$f_bs:$l_cntpra\] $m_sub";}
local($m_msg)=$F{'msg'};  $m_msg=~s/<br>/\n/g;  $m_msg=~s/^\|pre\|//i;  $m_msg=~s/^\|mono\|//i;
local($my_name)=$f_name;
local($my_url);if(!$F{'url'}){ $my_url="";}  else{ $my_url="http://$F{'url'}";}
local($my_host);if($host2){ $my_host="$host($host2)";}  else{ $my_host="$host";}
local($m_From)=$adminemail;
local($my_email)=$F{'email'};
local($m_MessageID)="<$l_cntpra()$time()$f_bs>";
local($m_InReplyTo);if(!$f_no){ $m_InReplyTo="";}else{ $m_InReplyTo="\nIn-Reply-To: <$f_no()$re_time()$f_bs>";}
local($m_ReplyTo)="\nReply-To: ReplyTo_Not_Set\@xx.xx";if(substr($pdsp_swt,2,1) ne "0"){ if(&pastno_get){ $pastno="x";}}else{ $pastno="x";}
local($moya_sub)="";if($oya_sub){ $moya_sub="\nツリー >   $oya_sub";}$mailbody="From: $m_From
MIME-Version: 1.0
Content-type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
Message-ID: $m_MessageID$m_InReplyTo$m_ReplyTo
X-Mailer: $f_bs
Subject: $m_sub\n
掲示板 >>  $html_ttl$moya_sub
名  前   $my_name
ホスト   $my_host
ブラウザ $ENV{'HTTP_USER_AGENT'}
メール   $my_email
ＵＲＬ   $my_url
日  付   $date\n
=======================================================
$m_sub
=======================================================\n
$m_msg\n\n\n
-------------------------------------------------------
返信 & ツリー  http://$ENV{'SERVER_NAME'}$ENV{'SCRIPT_NAME'}?md=tv&no=$l_cntpra&mln=$pastno
投稿    http://$ENV{'SERVER_NAME'}$ENV{'SCRIPT_NAME'}?md=sf&ln=1
BBS     http://$ENV{'SERVER_NAME'}$ENV{'SCRIPT_NAME'}?
Program http://wakatiai.com/
-------------------------------------------------------
";$mailbody=~s/&lt\;/</g;  $mailbody=~s/&gt\;/>/g;$mailbody=~s/&quot\;/\"/g;  $mailbody=~s/&amp\;/&/g;
&jcode'convert(*mailbody,'jis');
    }if(!open(MAIL,"| $sendmail -t")){ return(10);}print MAIL "$mailhead$mailbody";
close(MAIL);
return();}sub lockon { local($u)="";  local($c)=$_[2];if(-e $_[0]){if($_[3]>0){ $u=$_[3];}  else{ $u=10;}
local($t)=(stat($_[0]))[9];if($t<965693000){ return(10);}if($t<$time-360){ &srand;if(int rand($u)==0){$lock2_lock=$_[0];  $lock2_lock.="2";$lock2r=$u;if(&lockon2($lock2_lock,1,1,$lock2r)){ return(20);}
unlink($_[0]);  sleep(5);
unlink($lock2_lock);
undef($lock2_lock);  undef($lock2r);  return(777);}}}if($lock_f eq "1"){ while(!symlink(".",$_[0])){if(--$c<=0){ return(30);} sleep($_[1]);}}elsif($lock_f eq "2"){ local($o)="";  foreach(1..$c){ if(-e $_[0]){ sleep($_[1]);}else{ open(LOCK,">$_[0]")||return(40); close(LOCK);  $o=1;  last;}} if(!$o){ return(50);}}}sub lockon2 { local($u)="";  local($c)=$_[2];if(-e $_[0]){if($_[3]>0){ $u=$_[3];}  else{ $u=10;}
local($t)=(stat($_[0]))[9];if($t<965693000){ return(10);}if($t<$time-360){ &srand;  if(int rand($u)==0){ unlink($_[0]);}}}if($lock_f eq "1"){ while(!symlink(".",$_[0])){if(--$c<=0){ return(20);} sleep($_[1]);}}elsif($lock_f eq "2"){ local($o)="";  foreach(1..$c){ if(-e $_[0]){ sleep($_[1]);}else{ open(LOCK,">$_[0]")||return(30); close(LOCK);  $o=1;  last;}} if(!$o){ return(40);}}}

sub panel{
&header();
&phead;print"$info_ttl";print"</td></tr></table></td></tr></table>"; #$ih\"ango\" $vt\"$l_ango\">
&footer();  exit;}sub pset{if(substr($pdsp_swt,5,1) eq "0"){ &error("この項目は使用不可");}  #$#f_dno{#
&header(); #$#l
&phead;print"ここから設定ができます。<br><br><center><table border=0 cellspacing=1 cellpadding=0>";if(($c_avln<1)||($c_avln>$max_avln)){ $c_avln=$avln;}if(($c_mvln<1)||($c_mvln>$max_mvln)){ $c_mvln=$mvln;}if(($c_nvln<1)||($c_nvln>$max_nvln)){ $c_nvln=$nvln;}if(($c_fvln<1)||($c_fvln>$max_fvln)){ $c_fvln=$fvln;}print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=lnset><tr bgcolor=$op_c><td><font color='$mvn_c'>
一覧表\示数を　 <input name=avln value='$c_avln' size=5 maxlength=4> (1 - $max_avln) 件に、<br>
内容表\示数を　 <input name=mvln value='$c_mvln' size=5 maxlength=4> (1 - $max_mvln) 件に、<br>
新着順表\示数を<input name=nvln value='$c_nvln' size=5 maxlength=4> (1 - $max_nvln) 件に、<br>
検索表\示数を　 <input name=fvln value='$c_fvln' size=5 maxlength=4> (1 - $max_fvln) 件に<input type=submit value='変更する'></font></td></tr></form>";$t=substr($c_sur,1,1);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=pbmset><tr bgcolor=$op_c><td><font color='$mvn_c'>パネル終了先を<input name=no value='$t' size=2>(1：一覧 2：内容 3：新着順)表\示に<input type=submit value='する'></font></td></tr></form>";$t=substr($c_sur,2,1);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=pwinset><tr bgcolor=$op_c><td><font color='$mvn_c'>
パネル内(過去ログボタン,検索リンク等)から新ウインドウを<input name=no value='$t' size=2>(1：開かない 2：開く) <input type=submit value='決定'></font></td></tr></form>";$t=substr($c_sur,3,1);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=awinset><tr bgcolor=$op_c><td><font color='$mvn_c'>
トップページのリンクから新ウインドウを<input name=no value='$t' size=2>(1：開かない 2：開く_blank 3：開くnew) <input type=submit value='決定'></font></td></tr></form>";  #."#;}


$t=substr($c_sur,6,1);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=dcutset><tr bgcolor=$op_c><td><font color='$mvn_c'>
記事の一覧で日付表\示を<input name=no value='$t' size=2>(1：消さない 2：消す) <input type=submit value='決定'></font></td></tr></form>";$t=substr($c_sur,7,1);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=naupset><tr bgcolor=$op_c><td><font color='$mvn_c'>
内容表\示で名前部分を上に<input name=no value='$t' size=2>(1：しない 2：する) <input type=submit value='決定'></font></td></tr></form>";
    if($host_dsp||substr($c_sur,8,1) eq "2"){ $t=substr($c_sur,8,1);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=hcutset><tr bgcolor=$op_c><td><font color='$mvn_c'>
内容表\示でホストアドレスを<input name=no value='$t' size=2>(1：消さない 2：消す) <input type=submit value='決定'></font></td></tr></form>";
    }$t=substr($c_sur,14,2);  $t=sprintf("%01d",$t);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=fsizeset><tr bgcolor=$op_c><td><font color='$mvn_c'>
文字サイズを<input name=no value='$t' size=3>( 7 - 18、19は設定なし) に<input type=submit value='する'></font></td></tr></form>";$t=substr($c_sur,12,2);  $t=sprintf("%01d",$t);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=tsizeset><tr bgcolor=$op_c><td><font color='$mvn_c'>
タイトル文字サイズを<input name=no value='$t' size=3>( 7 - 40、41は設定なし) に<input type=submit value='する'></font></td></tr></form>";$t=substr($c_sur,16,2);  $t=sprintf("%01d",$t);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=indnoset><tr bgcolor=$op_c><td><font color='$mvn_c'>
返信記事のインデント(右寄り)数を<input name=no value='$t' size=3>( 0 - 12、13は設定なし) に<input type=submit value='する'></font></td></tr></form>";$t=substr($c_sur,18,1);  $t=sprintf("%01d",$t);print"<form action='$rai_ff' method=POST><input type=hidden name=md value=psetedit><input type=hidden name=smd value=subcutset><tr bgcolor=$op_c><td><font color='$mvn_c'>
記事タイトル文字表\示数を<input name=no value='$t' size=3>( 8 - 98、99は設定なし) バイトに<input type=submit value='切る'></font></td></tr></form>";print"<form action='$rai_ff' method=POST><input type=hidden name=md value=nocook><tr bgcolor=$op_c><td><font color='$mvn_c'>** 初期設定に<input type=submit value='戻す'> (クッキーを消します) **</font></td></tr></form>";print"</table><br><div align=left><small>・一覧表\示数は返信数を含みます。<br>
・新着順表\示数は削除等があった場合に変わります。<br>
・すべての設定が使用できるとは限りません。<br>
・よくわからない場合は初期設定のままご使用ください。</small></div>";print"</td></tr></table></td></tr></table>";
&footer();  exit;}sub psetedit{if(substr($pdsp_swt,5,1) eq "0"){ &error("この項目は使用不可");}
local($f_smd)=$F{'smd'};
local($digt,$locat,$mint,$maxt,$fnot);if($f_smd eq "lnset"){$c_avln=int($F{'avln'});  $c_mvln=int($F{'mvln'});$c_nvln=int($F{'nvln'});  $c_fvln=int($F{'fvln'});$digt=4;  $locat=28;  $mint=1;  $maxt=$max_avln;  $fnot=$c_avln;if($i=&snomod($fnot,$mint,$maxt,$digt)){ &error("設定ができませんでした err $f_smd $i");}
$t=substr($f_nomod,length($f_nomod)-$digt,$digt);  substr($c_sur,$locat,$digt)="$t";$digt=3;  $locat=32;  $mint=1;  $maxt=$max_mvln;  $fnot=$c_mvln;if($i=&snomod($fnot,$mint,$maxt,$digt)){ &error("設定ができませんでした err $f_smd $i");}$t=substr($f_nomod,length($f_nomod)-$digt,$digt);  substr($c_sur,$locat,$digt)="$t";$digt=3;  $locat=35;  $mint=1;  $maxt=$max_nvln;  $fnot=$c_nvln;if($i=&snomod($fnot,$mint,$maxt,$digt)){ &error("設定ができませんでした err $f_smd $i");}$t=substr($f_nomod,length($f_nomod)-$digt,$digt);  substr($c_sur,$locat,$digt)="$t";$digt=3;  $locat=38;  $mint=1;  $maxt=$max_fvln;  $fnot=$c_fvln;if($i=&snomod($fnot,$mint,$maxt,$digt)){ &error("設定ができませんでした err $f_smd $i");}$t=substr($f_nomod,length($f_nomod)-$digt,$digt);  substr($c_sur,$locat,$digt)="$t";}else{	$fnot=$f_no;
if   ($f_smd eq "pbmset")  { $digt=1;  $locat=1;  $mint=1;  $maxt=3;}elsif($f_smd eq "pwinset") { $digt=1;  $locat=2;  $mint=1;  $maxt=2;}elsif($f_smd eq "awinset") { $digt=1;  $locat=3;  $mint=1;  $maxt=2;}elsif($f_smd eq "icutset") { $digt=1;  $locat=4;  $mint=1;  $maxt=2;}elsif($f_smd eq "fcutset") { $digt=1;  $locat=5;  $mint=1;  $maxt=2;}elsif($f_smd eq "dcutset") { $digt=1;  $locat=6;  $mint=1;  $maxt=2;}elsif($f_smd eq "naupset") { $digt=1;  $locat=7;  $mint=1;  $maxt=2;}elsif($f_smd eq "hcutset") { $digt=1;  $locat=8;  $mint=1;  $maxt=2;}elsif($f_smd eq "fsizeset"){ $digt=2;  $locat=14; $mint=7;  $maxt=19;}elsif($f_smd eq "tsizeset"){ $digt=2;  $locat=12; $mint=7;  $maxt=41;}elsif($f_smd eq "indnoset"){ $digt=2;  $locat=16; $mint=0;  $maxt=13;}elsif($f_smd eq "subcutset"){ $digt=2; $locat=18; $mint=8;  $maxt=99;}else{ &error("指定の設定項目は変更できません");}if($i=&snomod($fnot,$mint,$maxt,$digt)){ &error("設定ができませんでした err $f_smd $i");}#$
substr($c_sur,$locat,$digt)=substr($f_nomod,length($f_nomod)-$digt,$digt);}
&cook_set;
&header();print"<a href='$rai_fl"."md=pset'>もどる</a><br><br><hr><br><b><big>設定作業が完了致しました。<br>
ブラウザのクッキー機能\に依存しますので、必ず設定が反映されるとは限りません。</big></b><br><br><br><br><hr>";
&footer();  exit;}sub snomod{
local($no,$min,$max,$dig)=@_;  local($t)="";$no =int($no);  $min=int($min);  $max=int($max);  $dig=int($dig);if(length($max)>$dig){ $t="max over dig";}if($min<0)           { $t="min under 0";}if($t){ return("掲示板の設定に問題があります err $t");}if($no<$min){ $t="min";}if($no>$max){ $t="max";}if(length($no)>$dig){ $t="dig";}if($t){ return("$t");}$f_nomod=sprintf("%0${dig}d",$no);  #@TV=@new;}else {
return();}sub nocookafter {if(substr($pdsp_swt,5,1) eq "0"){ &error("この項目は使用不可");}  #@TV=@new;}else {;}#
&cook_set;
&header();print"<a href='$rai_fl"."md=pset'>もどる</a><br><br><hr><br><b><big>クッキーデータを消しました</big></b><br><br><br><br><hr>";
&footer();  exit;}sub pudel{if(substr($pdsp_swt,6,1) eq "0"){ &error("この項目は使用不可");}
&header();
&phead;print"ここから記事の削除ができます。<br><br><center><table border=0 cellspacing=1 cellpadding=1><form action='$rai_ff' method=POST>
\n<tr bgcolor=$op_c><td><font color='$mvn_c'>
記事番号<input type=hidden name=md value=udel><input type=text name=delno size=5>　暗号<input type=password name=delpwd size=8 maxlength=8> <input type=submit value='削除する'></font></td></tr></form></table></center><br><br><small>
・記事の削除は記事番号と投稿時に設定した暗号を記入して「削除する」を押します。<br>
・投稿時に暗号を設定されなかった場合には削除できません。<br>
・過去ログ内の投稿内容は削除できません。<br></small><br>";print"</td></tr></table></td></tr></table>"; #sub panel{"#;}
&footer();  exit;}sub padmin{
&header();
&phead;print"管理人専用の画面です。<center><form action='$rai_ff' method=POST$wintt><table border=0 cellspacing=1 cellpadding=1><tr bgcolor=$op_c><td nowrap><font color='$mvn_c'><input type=hidden name=md value=eav>
管理暗号<input type=password name=pwd size=12> <input type=submit value='管理人'></font></td></tr></table>";if(!$dlld_off){if(&pastno_get){ $pastno="x";}if($pastno>0)	{ $pastnot="(現在ログはx、過去ログは( $pastno . . 1)です。)";}else		{ $pastnot="(現在ログはx、過去ログはありません。)";}print"</form><form action='$rai_ff' method=POST$wintt><table border=0 cellspacing=1 cellpadding=1><tr bgcolor=$op_c><td nowrap><font color='$mvn_c'><input type=hidden name=md value=dlld>
ログファイル<input name=lg value=x size=3>のダウンロード<input type=password name=pwd size=12> <input type=submit value='管理人'></font></td></tr></table><small>$pastnot</small>";}print"</form></center></td></tr></table></td></tr></table>";
&footer();  exit;}sub pfv{if(substr($pdsp_swt,3,1) eq "0"){ &error("この項目は使用不可");}if(($c_fvln<1)||($c_fvln>$max_fvln)){ $fvln=int($max_fvln/3)+1;}else{ $fvln=$c_fvln;}$F{'msg'}=~ s/　/ /g;  $F{'msg'}=~ s/、/ /g;  $F{'msg'}=~ s/,/ /g;$F{'msg'}=~s/ {2,}/ /g;  $F{'msg'}=~s/^ //;  $F{'msg'}=~s/ $//;
@findkey=split(/ /,$F{'msg'});if($#findkey>3){ &error("検索文字は4つまでにしてください。");}
foreach $ln(@findkey){ if(length($ln)<2){ &error("この検索文字は短かすぎます($ln)");}}
local($e_msg)=local($nofind)="";if($f_md ne "pfv"){if(!$F{'msg'}){ $e_msg.="<font color='$pink'>検索文字が指定されていません</font><br>";  $nofind=1;}}
   local($backfw)=local($nextfw)="";  @arikey=();  @nasikey=();
   if(!$f_lg){ $flgt="x";}  else{ $flgt=$f_lg;}  #  if($sub_cut){{#
   if(!$nofind){
@fcnprt=();if($F{'cn'}){
@fcnprt=split(/,/,$F{'cn'});if($fcnprt[0] ne "1"){ $fcnprt[0]=1;}else{ foreach(0..$#fcnprt){ $fcnprt[$_]=int($fcnprt[$_]);}}}else{ $fcnprt[0]=1;}#;
@new=();  $backln="";  $nextln="";if($findkey[0]){ &foundln_get;}
local($ffkey)=$F{'msg'};$ffkey=~s/([^0-9A-Za-z_ ])/'%'.unpack('H2',$1)/eg;  $ffkey=~s/ /+/g;if($backln){ if($backln eq "1"){ $t="";}  else{ $t="&cn=$backln";}$backfw="\n<a href='$rai_fl"."lg=$flgt&md=pfvn$t&msg=$ffkey'>&lt;--前</a>";}else{	$backfw="<font color='$bg_lt'>&lt;--前</font>";}if($nextln){$nextfw="\n<a href='$rai_fl"."lg=$flgt&md=pfvn&cn=$nextln&msg=$ffkey'>次--&gt;</a>";}else{	$nextfw="<font color='$bg_lt'>次--&gt;</font>";}if(&pastno_get){ $pastno="";}if($pastno>0){ $pastnot="(現在ログはx、過去ログは( $pastno . . 1)です。)";}else{ $pastnot="(現在ログはx、過去ログはありません。)";}
   }
&header();
&phead;print"ここから記事を検索できます（検索範囲は当BBS内のみです）<br><br><div align=center><table border=0 cellspacing=1 cellpadding=2 bgcolor='$op_c'><form action='$rai_ff' method=GET><tr><td><center><font color='$mvn_c'>
ログ <input name=lg value='$flgt' size=4> 内で、<input type=hidden name=md value=pfvn>
文字 <input name=msg value='$F{'msg'}' size=22> を<input type=submit value='検索する'><br></font></center></td></tr></form></table><small>$pastnot</small></div>";if($nofind || $f_md eq "pfv"){ print"<br><small>
$e_msg
検索は検索したいログと検索文字を入れて「検索する」を押します。<br>
・現在ログからの検索はログにxと記入し、過去ログからの検索はログに過去ログ番号を記入します。<br>
・過去ログは数字が大きいほど新しいものです。<br>
・検索文字は半角スペースで区切って4文字まで入力できます。<br>
・検索文字の先頭に「-」を記入しますとその文字を含まないものを検索します。<br>
 &nbsp; &nbsp; 記入例 &nbsp; &nbsp; &nbsp;「素材 -食べ物」 &nbsp; &nbsp;
 ←素材の後に半角スペースがあります。<br>
 &nbsp; &nbsp; 検索対象 &nbsp;「素材」という文字を含み「食べ物」という文字を含まない記事<br>
・日本語文字コードの関係上一部正しく検索できない文字があります。<br>
・<font color='$ttl_c'>検索した記事のタイトルをクリックしますとその記事のツリーを表\示します。</font><br></small>";}else{ print"<a href='$rai_fL"."md=pfv'>使用方法</a>";}print"</td></tr></table></td></tr></table>";if($nofind){ &footer();  exit;}if($arikey[0]){ print"検索文字：";  foreach $ln(@arikey){ print"$ln ";}}if($nasikey[0]){ print" 排他文字：";  foreach $ln(@nasikey){ print"$ln ";}}$t=$#new+1;  $i=$lnnox-1;if($F{'msg'}){ print"<div align=center><table border=0><tr><td nowrap>
$backfw&nbsp; &nbsp;$fcnprt[$#fcnprt]-$i件目内に$t件発見&nbsp; &nbsp;$nextfw</div></td></tr></table>";}if($F{'msg'}&&!$new[0]){
print"<font color='$pink'>検索対象は見つかりませんでした</font><br><br><br><br><br><br>";}elsif(!$new[0]){;}else{ &sled(3,2,1,0,$iconav,1);print"<br><br>\n<div align=left><a href='#TOP'>上へ</a>";print" &nbsp; &nbsp;$nextfw</div>";}print"<br><br><br><br><br><br>";
&footer();
for(1..5){ print"<br><br><br><br>";}
exit;}sub foundln_get {if(!open(LOG,"$log_fl")){ return("ログが存在しないか、開くことができません err pfv41");}$toplogln=<LOG>;foreach(@findkey){if(substr($_,0,1) eq "-"){ push(@nasikey,substr($_,1));}else{ push(@arikey,$_);}}
local($bgn)=$fcnprt[$#fcnprt];  local($cnnxtchk)="";$lnnox=0;  local(@ttln)=();while(<LOG>){ $lnnox++;if($lnnox<$bgn){ next;}if($cnnxtchk eq "1"){ $cnnxtchk=$lnnox;  last;}
local($splited)=local($fail)="";foreach $mn(@arikey){if(index($_,$mn) eq "-1"){ $fail=1;  last;}$fail=1;
@ttln=split(/<>/,$_);  $splited=1;
if   (index($ttln[11],$mn) ne "-1"){ $fail="";}elsif(index($ttln[12],$mn) ne "-1"){ $fail="";}elsif(index($ttln[15],$mn) ne "-1"){ $fail="";}if($fail eq "1"){ last;}}if($fail){ next;}
foreach $mn(@nasikey){if($splited ne "1"){ @ttln=split(/<>/,$_);}if   (index($ttln[11],$mn) ne "-1"){ $fail=1;}elsif(index($ttln[12],$mn) ne "-1"){ $fail=1;}elsif(index($ttln[15],$mn) ne "-1"){ $fail=1;}if($fail eq "1"){ last;}}if($fail eq "1"){ next;}
push(@new,$_);if($#new>$fvln-2){ $cnnxtchk=1;}}if($cnnxtchk<2){ $nextln="";  $lnnox++;}
else{
push(@fcnprt,$cnnxtchk);$nextln=join(",",@fcnprt);#{}}
pop(@fcnprt);}if($#fcnprt>0){$t=pop(@fcnprt);$backln=join(",",@fcnprt);
push(@fcnprt,$t);}else{ $backln="";}
return();}sub pov{if(substr($pdsp_swt,2,1) ne "0"){ if(&pastno_get){ $pastno="";}}else{ $pastno="";}if($pastno>0)	{ $pastnot="(現在ログはx、過去ログは( $pastno . . 1)です。)";}else		{ $pastnot="(現在ログはx、過去ログはありません。)";}if(!$f_lg){ $flgt=x;}  else{ $flgt=$f_lg;}
&header();#{"#;}
&phead;print"ここから指定記事へ直接ジャンプできます。<br><div align=center><form action='$rai_ff' method=GET$wintt><input type=hidden name=mln value=1><table border=0 cellspacing=1 cellpadding=0 bgcolor='$op_c'><tr><td><font color='$mvn_c'>
ログ <input name=lg value='$flgt' size=4> 内で、<input type=hidden name=md value=ov>
記事番号 <input name=no value='$F{'no'}' size=4> へ<input type=submit value='ジャンプ'><input type=hidden name=mln value=pov></font></td></tr></table>
        <small>$pastnot</small></form></div><small>
・記事に直接ジャンプするにはログ番号と記事番号を入れて「ジャンプ」を押します。<br>
・過去ログを見るには過去ログの番号を入れます。<br>
・過去ログは数字が大きいほど新しいものです。<br>
・現在ログを見るにはxと入れます。<br>
・現在ログであふれたものが順次最新の過去ログに入っていきます。<br>
・最新の過去ログは件数が少ない場合があります。<br>
・すべての過去ログがあるとは限りません。<br>
・過去ログでは投稿/削除できません。<br></small>";print"</td></tr></table></td></tr></table>";
&footer();  exit;}sub pplog{if(substr($pdsp_swt,2,1) eq "0"){ &error("この項目は使用不可");}if(&pastno_get){ $pastno="x";}
&header();
&phead;if($pastno>0)	{ $pastnot="過去ログは( $pastno . . 1)、現在ログはxです。";}else		{ $pastnot="(過去ログはありません。現在ログはxです。)";}if($f_md eq "pplog" && !$f_lg){ $flgt=$pastno;}else                          { $flgt=$f_lg;}print"ここから過去ログを閲覧することができます。<br><div align=center><form action='$rai_ff' method=GET$wintt><table border=0 cellspacing=1 cellpadding=0 bgcolor='$op_c'><tr><td><font color='$mvn_c'>
ログ <input name=lg value='$flgt' size=4> を <input type=submit value='見る'> </font></td></tr></table>
        <small>$pastnot</small></form></div><small>
・過去ログを見るには過去ログの番号を入れて「見る」を押します。<br>
・過去ログは数字が大きいほど新しいものです。<br>
・xと入れますと現在ログが見られます。<br>
・現在ログであふれたものが順次最新の過去ログに入っていきます。<br>
・最新の過去ログは件数が少ない場合があります。<br>
・すべての過去ログがあるとは限りません。<br>
・過去ログでは投稿/削除できません。<br></small>";print"</td></tr></table></td></tr></table>";
&footer();  exit;}sub pastno_get{if(substr($pdsp_swt,2,1)eq "0" && &epwd_chk($F{'pwd'})){ return();}if(!open(LOG,"$pastno_fl")){ return(200);}$pastno=<LOG>;  close(LOG);$pastno=~ s/\r//g;  $pastno=~ s/\n//g;$pastno=int($pastno);
return();}sub phow{if(substr($pdsp_swt,1,1) eq "0"){ &error("この項目は使用不可");}$l_sin1=($time-$l_sin1)/3600;  $l_sin2=($time-$l_sin2)/3600;$l_sin3=($time-$l_sin3)/3600;  $l_sin4=($time-$l_sin4)/3600;
&header();
&phead;print"基本操作方法の説明です。<br><br>
▼表\示について<br>
画面右上のボックスで表\示を変更できます。<br>
「一覧表\示」　 では、新しい順に上から親記事が表\示され返信記事は親記事の下に表\示されます。";if($reptup_f){ print"返信があったツリーは一番上に移動します。";}print"<br>
「内容表\示」　 では、一覧表\示と同じ順序で各記事の内容も表\示されます。<br>
「新着順表\示」では、親記事/返信記事の関係なく新しい順に上から表\示されます。内容も表\示されます。<br><br>▼投稿について<br>
投稿ボタンを押しますと新規投稿ができます。<br>
返信ボタンを押しますと返信ができます。<br>";if(substr($pdsp_swt,6,1)){ print"投稿時に暗号を設定しますとしばらくの間その記事の削除が可能\になります。<br>";}print"<br>▼その他<br><font color='$new1c'>新</font>は$l_sin1時間以内、<font color='$new2c'>新</font>は$l_sin2時間以内、<font color='$new3c'>新</font>は$l_sin3時間以内、<font color='$new4c'>
新</font>は$l_sin4時間以内の投稿につきます。<br>";if(!$tag_ok){ print"投稿時投稿内容の先頭に「>」と記入しますとその行の色を変えられます。<br>";}print"投稿時投稿内容の先頭に「|pre|」と記入しますと図表\として記録されます。<br>
投稿時投稿内容の先頭に「|mono|」と記入しますと等幅フォントで記録されます。<br>
通常よりも右に寄って表\示されている記事は返信記事です。<br>";if($f_md eq "mv"||$f_md eq "nv"){ print"一番右上の「上」「下」を押しますと記事を順に見られます。<br>";}if($reptup_f){ print"返信のあったツリーは最上に移動します。<br>
但し投稿時投稿内容の先頭に「|stay|」と記入しますと上に移動しません。<br>";}if($email_dsp eq "2"){ print"メールアドレスは取り出し一記事画面で見ることができます。<br>";}print"<br><br></b></font>";print"</td></tr></table></td></tr></table>";
&footer();  exit;}sub phead{$wintt=substr($c_sur,2,1);if($wintt eq "2"){ $wintt=" target=_blank";}else{ $wintt="";}$t=substr($c_sur,1,1);if($t eq "2"){ $t="<a href='$rai_fl'>_</a> <a href='$rai_fl"."md=mv'>内容へ</a> <a href='$rai_fl"."md=nv'>_</a>";}elsif($t eq "3"){ $t="<a href='$rai_fl'>_</a> <a href='$rai_fl"."md=mv'>_</a> <a href='$rai_fl"."md=nv'>新着順へ</a>";}else{ $t="<a href='$rai_fl'>一覧へ</a> <a href='$rai_fl"."md=mv'>_</a> <a href='$rai_fl"."md=nv'>_</a>";}print"<a name=TOP></a>$t<br><center><b><font color='$ttl_c'>パネル &nbsp;- &nbsp;$html_ttl</font></b></center><table border=0 cellpadding=3 cellspacing=0 width='100%'><tr> <td bgcolor='$tbl_dk'><font color='$white'>| ";if($f_md eq "panel"){ print"<font color='$white'>紹介</font>";}else                { print"<A href='$rai_fl"."md=panel'>紹介</A>";}if(substr($pdsp_swt,1,1) eq "1"){
print" | ";if($f_md eq "phow") { print"<font color='$white'>操作</font>";}else                { print"<A href='$rai_fl"."md=phow'>操作</A>";}}if(substr($pdsp_swt,2,1) eq "1"){
print" | ";if($f_md=~ /pplog/) { print"<font color='$white'>過去ログ</font>";}else                { print"<A href='$rai_fl"."md=pplog'>過去ログ</A>";}}if(substr($pdsp_swt,3,1) eq "1"){
print" | "; #&phead;print"基本操作方法の説明です。<br><br>)#
if   ($f_md=~ /pfv/){ print"<font color='$white'>キーワード検索</font>";}else                { print"<A href='$rai_fl"."md=pfv'>キーワード検索</A>";}}print" | ";if($f_md eq "pov")  { print"<font color='$white'>記事</font>";}else                { print"<A href='$rai_fl"."md=pov'>記事</A>";}if(substr($pdsp_swt,5,1) eq "1"){  #[
print" | ";if($f_md eq "pset") { print"<font color='$white'>設定</font>";}else                { print"<A href='$rai_fl"."md=pset'>設定</A>";}}if(substr($pdsp_swt,6,1) eq "1"){
print" | ";if($f_md eq "pudel"){ print"<font color='$white'>削除</font>";}else                { print"<A href='$rai_fl"."md=pudel'>削除</A>";}}print" | ";if($f_md eq "padmin"){ print"<font color='$white'>管理</font>";}else                { print"<A href='$rai_fl"."md=padmin'>管理</A>";}print" | ";print"</font></td></tr></table><table width=100% border=0 cellpadding=1 cellspacing=0 height=1 bgcolor='$tbl_dk'><tr><td><table width=100% border=0 cellpadding=3 bgcolor='$bg_lt'><tr><td>";}sub sval_set{ if($_[1]<0){ return();}  if($_[2]<1){ return();}if(length($_[3])<0||$_[3]=~/[\W]/){ return();}
local($sepai1)=13;  local($lset)=$_[0];  local($inval)=$_[3];if(length($lset)<$_[1]+$_[2]){ while(length($lset)<$_[1]+$_[2]){ $lset.="0";}}if(length($inval)<$_[2]){ while(length($inval)<$_[2]){ $inval="0$inval";}}
substr($lset,$_[1],$_[2])=substr($inval,0,$_[2]);if($_[1]+$_[2]>$sepai1 && substr($lset,$sepai1,2) ne "`."){ substr($lset,$sepai1,2)="`.";}
return($lset);}sub hval_set{ if($_[1]<0){ return();}  if($_[2]<1){ return();}if(length($_[3])<0||$_[3]=~/[\W]/){ return();} #&header();
local($sepai1)=3;  local($lset)=$_[0];  local($inval)=$_[3];if(substr($lset,3,1) ne "."){ int($lset);  if($lset<0){ $lset=0;}  elsif($lset>999){ $lset=999;}$lset=sprintf("%03d",$lset).".";}if(length($lset)<$_[1]+$_[2]){ while(length($lset)<$_[1]+$_[2]){ $lset.="0";}}if(length($inval)<$_[2]){ while(length($inval)<$_[2]){ $inval="0$inval";}}
substr($lset,$_[1],$_[2])=substr($inval,0,$_[2]);if($_[1]+$_[2]>$sepai1 && substr($lset,$sepai1,1) ne "."){ substr($lset,$sepai1,1)=".";}
return($lset);}sub auth_get{if(!$_[0]){ return();}if($_[0]!~/\//){ if(&epwd_chk($_[0])){ return();}  return("9");} #$#f_dno
local(@t)=split(/\//,$_[0]);if($t[0]){ return(&sptauth_get($_[0]));}
return();}sub sptauth_get{if($_[0]!~/\//||$#sptdata<0){ return();}
local(@fpwd)=split(/\//,$_[0]);foreach(@sptdata){
local(@sd)=split(/\//);if($fpwd[0] eq @sd[0]){if(&sptpwd_match($fpwd[1],$sd[1])){ return();};
return($sd[2]);}}
return();}sub sptpwd_match {if(!$_[0]||$_[0] ne $_[1]){ return(100);} #;{#
return();}sub dlld{if($dlld_off){ &error("download 不可 err dlld43");}  #  if($qplf<1){ $qplf=0;}"#;}
local($auth)=&auth_get($F{'pwd'});if($auth!~/2/ && $auth!~/3/){ &error("ダウンロード権限がありません($F{'pwd'})");}if($f_lg>0 && $auth!~/4/){ &error("過去ログダウンロード権限がありません($F{'pwd'})");}if(!open(LOG,$log_fl)){ &error("Can't open l_f 487");}if($auth=~/3/){#$#f_dno
print"Content-type: text/plain\n\n";while(<LOG>){ print $_;}}elsif($auth=~/9/||$auth=~/2/||$auth=~/1/){if($auth=~/9/||$auth=~/2/){ $t=2;}  else{ $t=1;}print"Content-type: text/plain\n\n";while(<LOG>){ local(@t)=split(/<>/);if($t eq "1" && $t[4]){ next;}print"$t[0]<>$t[1]<>$t[2]<>$t[3]<>$t[4]<>$t[5]<>$t[6]<>$t[7]<>$t[8]<>$t[9]<>$t[10]<>$t[11]<>$t[12]<><>$t[14]<>$t[15]<><><><><>\n";}}
close(LOG);
exit;}sub mailok{if(length($_[0])>50||$_[0]!~/(.+)\@(.+)\.(.+)/||$_[0]=~/[^a-zA-Z0-9_\@\-\.]/){ return();} #;
return(1);}
