#!/usr/bin/perl
# ↑はサーバーに合わせて変更して下さい。

#---------------------------------------------------------------------#
#  ☆　STARDUST-BBS 3   星屑掲示板-3　☆                              #
#                                                                     #
#　　・複数の返信が可能な多機能掲示板です。                           #
#　　・最近の投稿状況を知ることが容易です。                           #
#　　・今後、さまざまな端末からのアクセスが可能になります（予定）     #
#                                                                     #
#                                                                     #
#                            by T-2                                   #
#  HP: http://stardust.t-ring.com/                                    #
#---------------------------------------------------------------------#
$ver = 'STD-BBS3 v3.8';

use CGI;
$query = new CGI;

#---------------------------------------------------------------------#
#  使用に関して                                                       #
#                                                                     #
#     ・自分で利用するための改造はもちろん可能です。                  #
#     ・非商用なら設置は自由です。                                    #
#     ・商用ページに設置の場合は連絡ください。（事後でも可）          #
#                                                                     #
#     ・無断での配布・再配布（改造含む）・雑誌等への掲載は禁止します。#
#       必ず、私の許可を得てください。基本的にメールをいただければ    #
#       許可しますので。（確認したいだけなので）                      #
#                                                                     #
#     ・著作権表示、配布元サイトへのリンクの削除は禁止です。          #
#                                                                     #
#           上記の事柄に反しない限りご自由にお使いください。          #
#           ただし、本CGI利用に関する不具合、損害に関して、私は       #
#           一切責任をとれせん。ご自身の責任範囲にて使用ください。    #
#---------------------------------------------------------------------#

#-------このファイルへの改造は知識のある方のみお願いします。-------#
#
#            通常の使用の場合はこのファイルの改造は不要です。
#
$ver_html =0;
$ver_value=0;

require("./value.cgi");
require("./html.cgi");


$ver_html_min = 4.0;
$ver_value_min = 20.0;


#-----------------------#
#    メイン             #
#-----------------------#
$modo = 0;
$modo = $query ->param('SUBMIT') ;
$modo = jcode::euc($modo);

if($stdmodeY==1){
  $visits = $query ->param('VISITS') ;
  $visits = jcode::euc($visits);
}

#カウンター--------------------------------------------------
#
#　　表示例　総数$coall 今日$cotod 昨日$coyes
#

#IPアドレスまたはホスト名を取得
$ipA = $query->remote_host();

#使用ブラウザを取得
$osA = $query->user_agent();

fileReadSysLogco();

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


if($day != $mday){
  
  $coyes = $cotod ;
  $cotod = 0 ;
  $day = $mday;
  
	}
if($ipdouble == 0){
  if($ipA ne $ipA_co || $osA ne $osA_co){
    $coall = $coall + 1 ;
    $cotod = $cotod + 1 ;
    fileWriterSysLogco();
  }
}else{
  $coall = $coall + 1 ;
  $cotod = $cotod + 1 ;
  fileWriterSysLogco();
}

#カウンタここまで---------------------------------------------


#送信フォームで入力された値を内包する-----------

$mailA_on_off = $query ->param('MAILA_ON_OFF') ;
$mailA_on_off = jcode::euc($mailA_on_off);
chomp($mailA_on_off);

$agesage = $query ->param('AGESAGE') ;
$agesage = jcode::euc($agesage);
chomp($agesage);

$tiA = $query ->param('SUBJECT') ;
$tiA = jcode::euc($tiA);
chomp($tiA);
$naA = $query ->param('NAME') ;
$naA = jcode::euc($naA);
$naA_sub = $naA ;
chomp($naA_sub);
$emA = $query ->param('MAIL') ;
$emA = jcode::euc($emA);
chomp($emA);
$hpA = $query ->param('URL') ;
$hpA = jcode::euc($hpA);
chomp($hpA);
$txtA = $query ->param('TEXT') ;
$txtA = jcode::euc($txtA);
chomp($txtA);
$iro1A = $query ->param('IRO1') ;
$iro1A = jcode::euc($iro1A);
chomp($to1A);
$iro2A = $query ->param('IRO2') ;
$iro2A = jcode::euc($iro2A);
chomp($iro2A);
$delA = $query ->param('DEL') ;
$delA = jcode::euc($delA);
chomp($delA);

$cgA = $query ->param('CG') ;
$cgA = jcode::euc($cgA);
chomp($cgA);

$pass = $query ->param('PASS') ;
chomp($pass);
#PASSの暗号化
$pass = crypt($pass, $salt);

$mypass = crypt($mypass, $salt);

#IPアドレスまたはホスト名を取得
$ipA = $query->remote_host();

#ホスト名を取得
$hostaddr = host_name();

#使用ブラウザを取得
$osA = $query->user_agent();

#現在の時間を取得
get_time();

#　訪問前のアドレス
$ref_url = $ENV{'HTTP_REFERER'};
$ref_url =~ s/\?(.|\n)*//ig;
$ref_url =~ s/\%7E/\~/ig;
if($ref_url eq ''){
	$ref_url = "直リンク／携帯電話";
}

$upfile = $query ->param('FILENAME') ;
$upfile = jcode::euc($upfile);

kisyusentaku();

#ここまで----------------------------------------


#クッキー読み込み
get_cookie();

#クッキー書き込み---------------------------------------#
if($useCookieAcc == 1){
  #自動名前機能を無効にする
  $useCookieAutoName = 0;
}

if($modo eq '送信'||$modo eq 'クッキー書き込み'||$modo eq '編集確定'||$modo eq '管理人に送信'){
	#総アクセス数
	$kaisuu1A = $kaisuu1_c;
	#書き込み回数
	$kaisuu2A = $kaisuu2_c+1;
	$accstimeA = $timeA;
	
	$name_c = $naA;
	$delAc = $delA;

	set_cookie();

}else{
  if($name_c ne ""){
    
    if($useCookieAcc == 1){
      #既定の名前を含む場合、強制的に決められた文字を含む名前を削除する。
      $deleteNameValueMode = 0;
      if($name_c =~ /$deleteNameValue/){
        $deleteNameNow = $name_c;
        $deleteNameValueMode = 1;
        $name_c = "";
      }
    }
	
    #文字列制限
    if(length($name_c) > $minimumNameL){
      $minimumNameLMode = 0;
    }else{
      $minimumNameLNow = $name_c;
      $minimumNameLValue = length($name_c);
      $minimumNameLMode = 1;
      $name_c = "";
      if($deleteNameValueMode == 1){
        $minimumNameLMode = 0;
      }
    }
    if($name_c ne ""){
    	$naA = $name_c;
    }
  }else{
    #PCブラウザでの動作のみ
    if($printmode == 0){
      if($useCookieAutoName == 1){
        $useCookieAutoNameNo=int(rand(1000));
        $name_c = "名無し(NO.$mday-$useCookieAutoNameNo-$min$sec-$mon)";
        $naA = $name_c;
      }
    }
  }
  
  if($mail_c ne ""){
    $emA = $mail_c;
  }
  if($hp_c ne "" || $hp_c ne "http://"){
	$hpA = $hp_c;
  }
  if($del_c ne ""){
	$delAc = $del_c;
  }
  if($cg_c ne ""){
	$cgA = $cg_c;
  }
  if($iro1_c ne ""){
	$iro1A = $iro1_c;
  }
  if($iro2_c ne ""){
	$iro2A = $iro2_c;
  }
	$kaisuu1A = $kaisuu1_c+1;
	$kaisuu2A = $kaisuu2_c;
	$accstimeA = $timeA;
  if($modo ne 'クッキー削除'){
    set_cookie();
  }
}


#--------------------------------------------------------#

if($modo eq 'クッキー削除'){
	del_cookie();
}

#お約束＆キャッシュ無効表現
print "Content-type: text/html\n";
print "Pragma: no-cache\n";
print "Cache-Control: no-cache\n";
print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n\n";


################
#$printmode= 1;
################
tempHeader();

debug($modo);

#アクセスログ-------------------------------------------------#
if($modo =~ /アクセス解析/ || $modo =~ /管理人/ ){

}else{
	fileReadSysAnaco();
#	fileWriterSysAnaco("<TR><TD><b>$timeA</b></TD> <TD><font color=$haikeifcb>$name_c</font></TD> <TD><font color=$haikeifca>$hostaddr</font><br>$ref_url</TD><TD><i>$ipA</i></TD><td>$osA</td><td>$modo</td><td>$kaisuu1_c / $kaisuu2_c</td></TR>");
  	fileWriterSysAnaco("$timeA\{\}$name_c\{\}$hostaddr\{\}$ref_url\{\}$ipA\{\}$osA\{\}$modo\{\}$kaisuu1_c\{\}$kaisuu2_c");

}
#-------------------------------------------------------------#

if($modo ne ""){
	#アクセス制限機能---------------------------------------------#
	
	if($acc_st_host[0] ne ""){
		for($i=0 ; $i < @acc_st_host ; $i++){
			if($hostaddr =~ /$acc_st_host[0]/){
				sjis("<br>アクセス制限中です。");
				fileWriterSysAnaco("$timeA\{\}$name_c\{\}$hostaddr\{\}$ref_url\{\}$ipA\{\}$osA\{\}アクセス制限\{\}$kaisuu1_c\{\}$kaisuu2_c");
				PrintYourD_acc();
				tempFooter();
				exit();
			}
		}
	}
	
	if($acc_st_ip[0] ne ""){
		for($i=0 ; $i < @acc_st_ip ; $i++){
			if($ipA eq $acc_st_ip[0]){
				sjis("<br>アクセス制限中です。");
				fileWriterSysAnaco("$timeA\{\}$name_c\{\}$hostaddr\{\}$ref_url\{\}$ipA\{\}$osA\{\}アクセス制限\{\}$kaisuu1_c\{\}$kaisuu2_c");
				PrintYourD_acc();
				tempFooter();
				exit();
			}
		}
	}

	if($acc_st_os[0] ne ""){
		for($i=0 ; $i < @acc_st_os ; $i++){
			if($osA =~ /$acc_st_os[0]/){
				sjis("<br>アクセス制限中です。");
				fileWriterSysAnaco("$timeA\{\}$name_c\{\}$hostaddr\{\}$ref_url\{\}$ipA\{\}$osA\{\}アクセス制限\{\}$kaisuu1_c\{\}$kaisuu2_c");
				PrintYourD_acc();
				tempFooter();
				exit();
			}
		}
	}

	if($acc_st_cname[0] ne ""){
		for($i=0 ; $i < @acc_st_cname ; $i++){
#			if($name_c eq $acc_st_cname[0]){
			if($name_c =~ /$acc_st_cname[$i]/){	#龍爺修正、名前の一部一致でアクセス制限
				sjis("<br>アクセス制限中です。");
				fileWriterSysAnaco("$timeA\{\}$name_c\{\}$hostaddr\{\}$ref_url\{\}$ipA\{\}$osA\{\}アクセス制限\{\}$kaisuu1_c\{\}$kaisuu2_c");
				PrintYourD_acc();
				tempFooter();
				exit();
			}
		}
	}


	#-------------------------------------------------------------#
}

#メッセ機能のチェック
if($usemailA == 1){
	if($YourEmail eq "???\@???.jp"){
		sjis("警告：メールアドレスの設定がされていません。メール機能はOFFで動作します。<br>");
		$usemailA = 0;
	}
}

#デバッグ機能用、全情報表示
if($debug ==1){
	foreach ( sort keys ( %ENV ) ){
	print "$_ = $ENV{$_}<br>\n";
	}
}

#--------------------------#
# システムチェック         #
#--------------------------#

if($ver_html < $ver_html_min){sjis("<font color=$haikeifca>HTML設定ファイル(html.cgi)のバージョンが古いようです。新しいhtml.cgiを使ってください。</font><br>");}
if($ver_value < $ver_value_min){sjis("<font color=$haikeifca>動作設定ファイル(value.cgi)のバージョンが古いようです。新しいvalue.cgiを使ってください。</font><br>");}

title();

#文字列制限のエラーメッセージ
	if($minimumNameLMode == 1){
		$minimumNameL2Byte = $minimumNameL / 2.0;
		$minimumNameL2Byte = int($minimumNameL2Byte + 1.0);
		$minimumNameL ++ ;
		sjis("<br><font size=+1>クッキーに保存されている名前”$minimumNameLNow”は半角換算で$minimumNameLValue文字なので自動的に削除されました。</font><br><b>半角$minimumNameL文字以上の名前を入れて下さい。</b>（全角の場合は$minimumNameL2Byte文字以上）<br>");
	}
#名前制限でひっかかった場合
	if($deleteNameValueMode == 1){
		sjis("<br><font size=+1>現在設定されている名前”$deleteNameNow”の使用は許可されていません。</font><br><b>（”$deleteNameValue”を含むことはできません。）</b><br>");
	}


if($modo eq 'クッキー削除'){
	sjis("<br><b>ユーザー$name_cの処理によりクッキーは削除されました。</b><br><br>");
	sjis("<a href=stdbbs3_1.cgi><font size=+2>→こちらから入ってください。</font></a><br><br>");
	tempFooter();
	exit();
}

if($modo eq '管理人宛' || $modo eq '管理人に送信'){

}else{
	#PCブラウザでの動作のみ
	if($printmode == 0){
	  
	  #クッキー制限-----------------------------------------------------#
	  
	  if($name_c eq ""){
	    if($useCookieAcc == 1){

	      #sjis("$modo<hr>");
	      if($modo eq 'クッキー書き込み'){
	        sjis("$useCookieAccTXT<br>");
	        sjis("<a href=stdbbs3_1.cgi><font size=+2>→こちらから入ってください。</font></a><br><br>");
	      }else{
	        CookieAcc();
	        fileReadSysAnaco();
	        #fileWriterSysAnaco("<TR><TD><b>$timeA</b></TD> <TD><font color=$haikeifcb>$name_c</font></TD> <TD><font color=$haikeifca>$hostaddr</font><br>$ref_url</TD><TD><i>$ipA</i></TD><td>$osA</td><td><font color=$haikeifca>クッキー入力画面</font></td><td>$kaisuu1_c / $kaisuu2_c</td></TR>");
	        fileWriterSysAnaco("$timeA\{\}$name_c\{\}$hostaddr\{\}$ref_url\{\}$ipA\{\}$osA\{\}クッキー入力待ち\{\}$kaisuu1_c\{\}$kaisuu2_c");
	        
	      }
	      
	      tempFooter();
	      exit();
	    }
	  }
	  #-----------------------------------------------------------------#
	  
	  StatusBarCookie();
	}
}
#入力された値のチェック
checkIn();
#---------------------

# 動作準備及び初期動作処理はここまで

if($modo eq '送信'){
  $bangou2 = 0 ;
  $oya = $query ->param('OYA') ;
  $oya = jcode::euc($oya);
  chomp($oya);
  $type = $query ->param('TYPE') ;
  $type = jcode::euc($type);
  chomp($type);
  
  $rebangou = $query ->param('BANGOU') ;
  $rebangou = jcode::euc($rebangou);
  chomp($rebangou);
 
  fileRead();
  
  debug($bangou);
  debug($rebangou);
  bangouchk();

  $sysmon=$mon+1;
  
  # ファイル添付処理
  $upfiles = $query ->param('FILENAME') ;
  $upfiles = jcode::euc($upfiles);
  $fileupMode = $query ->param('FILENAME_MODE') ;
  $fileupMode = jcode::euc($fileupMode);
  
  if ($upfiles ne "" ){
    sjis("<br>添付ファイルのアップロード処理<br>ファイル名：$upfiles<br>");
    FileUp();
    $cgA_sub = "\{\}$timeNo$tail\{\}$fileupMode";
    $cgA=$cgA.$cgA_sub;
  }
  
	if($type == 1){
		fileWriterR();
		if($mailA_on_off == 0){
			syslog("<font color=$haikeifc >→<font color=$haikeifcb >$naA_sub</font>さんがNo.$oyaに対し返信しました。</font>＜$sysmon月$mday日$hour時</font><br>");
		}else{
			syslog("<font color=$haikeifc >→<font color=$haikeifcb >$naA_sub</font>さんがNo.$oyaに対し<font color= $HaikeiMailOshirase>メール機能ON</font>で返信しました。＜$sysmon月$mday日$hour時</font><br>");
		}
		sjis("<font color=$haikeifc ><br><b>⇒⇒⇒返信投稿が完了しました。</b><hr></font>");
	}else{
		fileWriter();
		if($mailA_on_off == 0){
			syslog("<font color=$haikeifc >→<font color=$haikeifcb >$naA_sub</font>さんが新規投稿（No.$bangous）しました。</font>＜$sysmon月$mday日$hour時</font><br>");
		}else{
		syslog("<font color=$haikeifc >⇒<font color=$haikeifcb >$naA_sub</font>さんが<font color= $HaikeiMailOshirase>メール機能ON</font>で新規投稿（No.$bangous）しました。＜$sysmon月$mday日$hour時</font><br>");
		}
                sjis("<font color=$haikeifc ><br><b>⇒⇒⇒新規投稿が完了しました。</b><hr></font>");
	}

	#メーリングリスト機能使用時
	if($usemailA == 1){
		if($mailA_on_off == 0){
			sjis("<br><font color=$haikeifcb><b>▼　お知らせメール機能 ▼</b><br>メール送信はしませんでした。<br>");

		}else{
                  fileReadSysLogKAZUmail();
                  fileReadSysLogmail();

                  $mailto = $syslogMail[0];
                  if($mailto eq ""){
                    sjis("お知らせメール機能：<br>リストに誰も登録されて居ないため送信しませんでした。<br>");
                    rewrite();
                    next;
                  }                  
                  for($its=1 ; $its < $adressK ;$its++){
                    $mailto=sprintf("%s,%s",$mailto,$syslogMail[$its]);
                    chomp($mailto);
                  }

                  
                  $MailtxtA = $query ->param('TEXT');
                  $MaiitxtA = jcode::euc($MailtxtA);
                  
                  $MailnaA = $query ->param('NAME') ;
                  $MailnaA = jcode::euc($MailnaA);
                  
                  $TitleA = $query ->param('SUBJECT') ;
                  $TitleA = jcode::euc($TitleA);
                  
                  $mess="STD-BBS3 \n http://stardust.t-ring.com/";
                  $mess=jcode::jis($mess);
                  $MailTitle="▼ $Htitleに投稿がありました";
                  $MailTitle= base64($MailTitle);
                  $MailText ="-=-題名-=-\n$TitleA\n-=-投稿者-=-\n$MailnaAさん\n-=-投稿内容-=-\n$MaiitxtA \n$timeA\nこのメールは$Htitleメーリングリストに登録されている人に送られています。\n";
                  $MailText= jcode::jis($MailText);
                  FUSEItxt($MailText);
                  FUSEItxtA($moji);
                  $MailText=$moji;
                  $MailText= jcode::jis($MailText);
                  
                  $MailTextA="解除→$homepageStd\n";
                  $MailTextA= jcode::jis($MailTextA);

                  #sjis("<hr>$mailto<hr>");
                  
                  open(MAIL,"| $sendmail -t") || &sjis("送信失敗。");
                  print MAIL "X-Mailer: STD Mailer\n";
                  print MAIL "To: $YourEmail\n";
                  print MAIL "Bcc: $mailto\n";
                  print MAIL "From:$YourEmail\n";
                  print MAIL "Return-Path:$YourEmail\n";
                  print MAIL "Subject: $MailTitle\n";
                  print MAIL "MIME-Version: 1.0\n";
                  print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
                  print MAIL "Content-Transfer-Encoding: 7bit\n";
                  print MAIL "\n";
                  print MAIL "$MailText\n\n";
                  print MAIL "$MailTextA\n";
                  print MAIL "--------------------------------------------------\n $mess";
                  close(MAIL);
		}
	}
  
	rewrite();
  
}elsif($modo eq '返信'){


$oya = $query ->param('OYA') ;
$oya = jcode::euc($oya);
chomp($oya);
$type=1;
fileRead();
debug($bangou);
chkhenshin();

sjis("　■　返信用の送信フォームは一番下にあります　■　<br>");
readoya();
sjis("<hr>");

$restitle1 = "Re:";

$restitle2 = $restitle1.$restitle;

sendF();

}elsif($modo eq '検索'){
	
	$kensakucode = $query ->param('KENSAKU') ;
	$kensakucode= jcode::euc($kensakucode);

	sjis("検索対象文字：$kensakucode<br>");
	fileRead();
	kensaku();
        cont();


}elsif($modo eq '使い方'){
	how_to_use();
	if($USE_JYOUKYOU == 1){
		sjis("<hr>！警告！<br>状況の確認が管理モードになっています。パスワードが必要です。<hr>");
		$new_adress = $query ->param('PASS');
		$new_adress = jcode::euc($new_adress);
		$new_adress =~ s/\s//g;
		$new_adress = crypt($new_adress, $salt);
		if($new_adress ne $mypass){
			sjis("<font color=$haikeifca >管理パスワードが違います。<br>正しいパスワードを入力してください。</font>");
			tempFooter();
			exit();
		}
	}
	sjis("<center>");
	CHECK_KANRI();
	sjis("</center>");

}elsif($modo eq 'アクセス解析'){
		
		$new_adress = $query ->param('PASS');
		$new_adress = jcode::euc($new_adress);
		$new_adress =~ s/\s//g;
		$new_adress = crypt($new_adress, $salt);
		if($new_adress ne $mypass){
			sjis("<font color=$haikeifca >管理パスワードが違います。<br>正しいパスワードを入力してください。</font>");
			tempFooter();
			exit();
		}
	sjis("<font color=$haikeifca size=5>アクセス解析</font><br>");
        fileReadSysAnaco();
	fileReadSysAnacoPrint();
	sjis("<br><br>　　<a href='stdbbs3_1.cgi?SUBMIT=A_E_戻る'>戻る</a><br>");
	
}elsif($modo eq '編集'){

	$no1 = $query ->param('NO1') ;
	chomp($no1);
	$no2 = $query ->param('NO2') ;
	chomp($no1);
	FUSEIkazu($no1);
	FUSEIkazu($no2);

	fileRead();
	hensyu();

}elsif($modo eq '編集確定'){
  
	$rebangou = $query ->param('BANGOU') ;
	$rebangou = jcode::euc($rebangou);
	chomp($rebangou);
	
	$no1 = $query ->param('NO1') ;
	chomp($no1);
	$no2 = $query ->param('NO2') ;
	chomp($no2);
	FUSEIkazu($no1);
	FUSEIkazu($no2);
	debug($no1);
	debug($no2);
	
	$retime = $query ->param('TIME') ;
	$retime = jcode::euc($retime);
	chomp($retime);
	
	fileRead();
	
	$oya = $query ->param('OYA') ;
	$oya = jcode::euc($oya);
	chomp($oya);
	$type = $query ->param('TYPE') ;
	$type = jcode::euc($type);

	chomp($type);
	
	bangouchk();
	chkhensyu();
	
	#sjis("<font color=$haikeifc >チェック終わり</font>");
	fileSaveHensyu();
	
	sjis("<font color=$haikeifc >編集完了しました。<br><br><a href='stdbbs3_1.cgi?SUBMIT=編集完了_戻る'>戻る</a></font>");

	$sysmon=$mon+1;
#	if($name_c eq ''){
#	syslog("<font color=$haikeifc >？　編集（No.$no1-$no2）されました。＜$sysmon月$mday日$hour時</font><br>");
#	}else{
	syslog("<font color=$haikeifc >？　$naA_subさんが編集（No.$no1-$no2）しました。＜$sysmon月$mday日$hour時</font><br>");
#	}

}elsif($modo eq '削除'){

  sjis("<font color=$haikeifc >削除・・・</font>");
  
  fileRead();
  
  $no1 = $query ->param('NO1') ;
  chomp($no1);
  $no2 = $query ->param('NO2') ;
  chomp($no2);
  

  fileSaveSakujyo();
  $sysmon=$mon+1;
  if($name_c eq ''){
    syslog("<font color=$haikeifc >×　削除（No.$no1-$no2）されました。＜$sysmon月$mday日$hour時</font><br>");
  }else{
    syslog("<font color=$haikeifc >×　$name_cさんが削除（No.$no1-$no2）しました。＜$sysmon月$mday日$hour時</font><br>");
  }
  sjis("<font color=$haikeifc >削除完了しました。<br><br><a href='stdbbs3_1.cgi?SUBMIT=削除完了_戻る'>戻る</a></fon>");
  
}elsif($modo eq '新規投稿'){

	fileRead();

	sendF();

}elsif($modo eq '近況'){

	if($printlog == 1){sjis("<font color=$haikeifca ><b><br>＊近況＊<br></b></font>");fileReadSysLogRGB();sjis("<br><a href=./stdbbs3_1.cgi>戻る</a><hr>ここを保存しておけばパケット代の無駄を省けます。");}

}elsif($modo eq '画像'){

	for($gazoui=0 ; $gazoui < @cg_in ; $gazoui++){
		sjis("<img src='$cg_in[$gazoui]'alt='$cg_out[$gazoui]'> ");
	}
	out(<<END);
	<form>
	<p><center><input type="button" value="閉じる"
	onClick="window.close()"> </center></p>
	</form>
END


}elsif($modo eq '登録'){
	$new_adress = $query ->param('MAIL');
	$new_adress = jcode::euc($new_adress);
	$new_adress =~ s/\s//g;
	if($new_adress !~ "\@"){
		sjis("アドレスが不正です。");
		tempFooter();
		exit();
		}
	fileReadSysLogKAZUmail();
	fileReadSysLogmail();
	fileWriterSysLogmail();
	
	$mailto = $new_adress;
	$mess="STD-BBS3 \n http://stardust.t-ring.com/";
	$mess= jcode::jis($mess);
	$MailTitle="▼ $Htitleより";
	$MailTitle= base64($MailTitle);
	$MailText ="確認メールです。\n\nメールアドレス $mailto が $Htitle メーリングリストに登録されました。\n解除希望の際は登録と同様にして解除ボタンを押してください。\n\n\n取得ホスト名：$hostaddr\n取得IPアドレス：$ipA\n取得OS情報：$osA\n登録名：$name_c\n\n";
	$MailText= jcode::jis($MailText);
	$MailTextA="解除→$homepageStd\n";
	$MailTextA= jcode::jis($MailTextA);
	
	open(MAIL,"| $sendmail $mailto") || &sjis("送信失敗。");
	print MAIL "X-Mailer: STD Mailer\n";
	print MAIL "To: $mailto\n";
	print MAIL "From:$YourEmail\n";
	print MAIL "Return-Path:$YourEmail\n";
	print MAIL "Subject: $MailTitle\n";
	print MAIL "MIME-Version: 1.0\n";
	print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
	print MAIL "Content-Transfer-Encoding: 7bit\n";
	print MAIL "\n";
	print MAIL "$MailText\n\n";
	print MAIL "$MailTextA\n";
	print MAIL "--------------------------------------------------\n $mess";
	close(MAIL);
	
	#管理者にも登録を知らせるメールを送るかどうか
	if($usemailAnewuser==1){
	
		$MailText ="新規登録者がありました。\n\nメールアドレス $mailto が $Htitle メーリングリストに登録されました。\n\n\n取得ホスト名：$hostaddr\n取得IPアドレス：$ipA\n取得OS情報：$osA\n登録名：$name_c\n\n";
		$MailText= jcode::jis($MailText);
	
		open(MAIL,"| $sendmail $YourEmail") || &sjis("送信失敗。");
		print MAIL "X-Mailer: STD Mailer\n";
		print MAIL "To: $YourEmail\n";
		print MAIL "From:$YourEmail\n";
		print MAIL "Return-Path:$YourEmail\n";
		print MAIL "Subject: $MailTitle\n";
		print MAIL "MIME-Version: 1.0\n";
		print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
		print MAIL "Content-Transfer-Encoding: 7bit\n";
		print MAIL "\n";
		print MAIL "$MailText\n\n";
		print MAIL "$MailTextA\n";
		print MAIL "--------------------------------------------------\n $mess";
		close(MAIL);
	
	}
	
	sjis("<br><a href = stdbbs3_1.cgi?SUBMIT=登録_戻る>戻る</a>");
	
}elsif($modo eq '解除'){
	$new_adress = $query ->param('MAIL');
	$new_adress = jcode::euc($new_adress);
	$new_adress =~ s/\s//g;
		if($new_adress !~ "\@"){
		sjis("アドレスが不正です。");
		tempFooter();
		exit();
		}
	sjis("解除対象は$new_adressです");
	fileReadSysLogKAZUmail();
	fileReadSysLogmail();
	delete_admail();
	fileWriterSysLogdelmail();

	sjis("<br><a href = stdbbs3_1.cgi?SUBMIT=解除完了_戻る>戻る</a>");
	
	
}elsif($modo eq '一覧'){
	$new_adress = $query ->param('MAIL');
	$new_adress = jcode::euc($new_adress);
	$new_adress =~ s/\s//g;
	$new_adress = crypt($new_adress, $salt);
	if($new_adress ne $mypass){
		sjis("<font color=$haikeifca >管理パスワードが違います。<br><br>正しいパスワードをメールアドレス入力フォームの中に入力してください。</font>");
		tempFooter();
		exit();
		}
	sjis("<font color=$haikeifc >");
	fileReadSysLogIchiranmail();
	sjis("</font>");
	
}elsif($modo eq 'メール'){
	#この選択欄は携帯端末からアクセスされることを想定してます。#
	#メーリングリスト登録・削除フォーム
	if($usemailA == 1){

out(<<END);
	<hr>
	<font color=$haikeifc >	
	<form action="stdbbs3_1.cgi"method="post">$stdmailmgMesi<br><br>メールアドレス：<br><input type=text name="MAIL" value=""><br>
	<input type="submit"name="SUBMIT"value="登録">
	<input type="submit"name="SUBMIT"value="解除">
	<input type="submit"name="SUBMIT"value="一覧">
	</form>
	</form>	
	※一覧は管理用です。
	
END
}

}elsif($modo eq '全表示'){
	
	fileRead();
	$maxread = $bangou;

	sjis("ログ内容を全部表示します。（現在保存数 $readVALUE / 最大保存数 $maxwrite）<br>このページを保存すれば過去ログになります。</br>");

	read10();
	
}elsif($modo eq '日記'){
	
	sjis("<form action='stdbbs3_1.cgi'method='post'><input type='submit'name='SUBMIT'value='日記を書く'>Password：<input type='password'name='PASS'value=$del_c></form>");

}elsif($modo eq '日記を書く'){
	
	$new_adress = $query ->param('PASS');
	$new_adress = jcode::euc($new_adress);
	$new_adress =~ s/\s//g;
	$new_adress = crypt($new_adress, $salt);
	if($new_adress ne $mypass){
		sjis("<font color=$haikeifca >管理パスワードが違います。<br>正しいパスワードを入力してください。</font>");
		tempFooter();
		exit();
	}
	
	fileRead();
	
	if(($maxwrite - $readVALUE) < int($maxwrite * 0.1)){
		sjis("残り書き込み許容量（$readVALUE / ＭＡＸ $maxwrite）が１割を切りました。<br>過去ログ作成をお勧めします。");
	}
	
                      if($printmode == 0){
                        sjis("<CENTER><TABLE border='0'width='97%'><TBODY><TR><TD>");
                        sendF();
			sjis("</TD><TD width='40%'>");
                             
			if($sureTitlePrint == 1){
                                sjis("<CENTER><TABLE border='0'width='94%' bgcolor=$Color_SureWaku><TBODY><TR><TD bgcolor=$Color_SureWaku_Naka>");
				sjis("<font color=$HaikeiMailOshirase >■</font>　スレッド一覧（更新順）　<font color=$HaikeiMailOshirase >■</font><br><br>");
				sureTitlePrint();
                                sjis("</TD></TR></TBODY></TABLE></center>");

			}
			sjis("</TD></TR></TBODY></TABLE></CENTER>");
		}else{
			sendF();
                }

}elsif($modo eq '管理人宛'){

	#送信モードの設定
	$type = 2;
	sendF();

}elsif($modo eq '管理人に送信'){

	fileWriterSysAdmin("　▼　<FONT size=+1 COLOR=$haikeifcc><b>$naA_subさん</b></font><FONT COLOR=$haikeifcd>からメッセージが届いています。</font>　＜　$timeA　▼　<br><br><FONT COLOR=$haikeifca>■　内容　■</FONT><br><br>$txtA<br><Br><FONT COLOR=$haikeifca>■　追記情報　■</font><br><br>・Email : $emA 　・Homepage :$hpA<br>$hostaddr　$ipA<br>$osA<hr>");
	syslog("<font color=$haikeifc >→<font color=$haikeifcb >$naA_sub</font>さんが<b>$AdminName宛</b>にメッセージを送信しました。</font>＜$mday日$hour時</font><br>");

	if($usemailA == 1){

		$mess="STD-BBS3 \n http://stardust.t-ring.com/";
		$MailTitle="▼ $Htitle管理人宛メッセ機能";
		$MailTitle= jcode::jis($MailTitle);
		$MailText ="$naAさんから貴方宛にメッセージが有りました。\n確認してください。\n※削除時にはメール配信はありません。\n\n■内容■\n\n $txtA";
		$MailText= jcode::jis($MailText);


		open(MAIL,"| $sendmail $YourEmail") || &sjis("送信失敗。");
		print MAIL "X-Mailer: STD Mailer\n";
		print MAIL "To: $YourEmail\n";
		print MAIL "From:$YourEmail\n";
		print MAIL "Return-Path:$YourEmail\n";
		print MAIL "Subject: $MailTitle\n";
		print MAIL "MIME-Version: 1.0\n";
		print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
		print MAIL "Content-Transfer-Encoding: 7bit\n";
		print MAIL "\n";
		print MAIL "$MailText\n\n";
		print MAIL "$homepageStd\n";
		print MAIL "--------------------------------------------------\n $mess";
		close(MAIL);

#		sjis("処理→メールでの配信も成功しました。<br>");

	}

	sjis("<FONT size=+1 COLOR=$haikeifcc>$txtA<hr></font>");
	sjis("$naA_subさんから$AdminName宛に、上記の文を送信しました。<br><br> <a href='./stdbbs3_1.cgi?SUBMIT=管理人宛メッセージ_戻る'>戻る</a><br>");

}elsif($modo eq '管理人室'){

	sjis("<form action='stdbbs3_1.cgi'method='post'><input type='submit'name='SUBMIT'value='管理人室に入る'>　Password：<input type='password'name='PASS'value=$del_c></form>");


}elsif($modo eq '管理人室に入る'){

	$new_adress = $query ->param('PASS');
	$new_adress = jcode::euc($new_adress);
	$new_adress =~ s/\s//g;
	$new_adress = crypt($new_adress, $salt);
	if($new_adress ne $mypass){
		sjis("<font color=$haikeifca >管理パスワードが違います。<br>正しいパスワードを入力してください。</font>");
		tempFooter();
		exit();
	}
	sjis("<BR><CENTER><TABLE border='0'width='97%'bgcolor=$Color_SureWaku><TBODY><TR><TD><TABLE border='0'width='100%'bgcolor=$Color_Waku_Naka><TBODY><TR><TD>");
	fileReaderSysAdmin();
	sjis("</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER>");
	sjis("<br><br><center><font size=+2>上記メッセージを削除しますか？　＞＞　<a href='./stdbbs3_1.cgi?SUBMIT=管理人室削除'>はい</a>／<a href='./stdbbs3_1.cgi'>いいえ</a></font><br><br></center>");

}elsif($modo eq '管理人室削除'){

		sjis("<form action='stdbbs3_1.cgi'method='post'><input type='submit'name='SUBMIT'value='管理人宛メッセ削除'>　Password：<input type='password'name='PASS'value=$del_c></form>");

}elsif($modo eq '管理人宛メッセ削除'){
	$new_adress = $query ->param('PASS');
	$new_adress = jcode::euc($new_adress);
	$new_adress =~ s/\s//g;
	$new_adress = crypt($new_adress, $salt);
	if($new_adress ne $mypass){
		sjis("<font color=$haikeifca >管理パスワードが違います。<br>正しいパスワードを入力してください。</font>");
		tempFooter();
		exit();
	}
	sjis("<BR><CENTER><TABLE border='0'width='97%'bgcolor=$Color_SureWaku><TBODY><TR><TD><TABLE border='0'width='100%'bgcolor=$Color_Waku_Naka><TBODY><TR><TD>");
	fileReaderSysAdmin();
	sjis("</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER>");

	fileWriterSysAdminDEL();
	sjis("<center><br>上記は削除直前のデータです。<br><br>削除完了しました。<br><br> <a href='./stdbbs3_1.cgi?SUBMIT=管理人宛メッセ_戻る'>戻る</a></center><br>");

}else{
  $istart = $query ->param('START') ;
  if($istart eq ""){
    $istart = 0;
    $istart_back =0;
  }
  
  if($modo eq '前へ'){
    $istart = $query ->param('START_BACK') ;

  }elsif($modo eq '続き'){
    $istart_back = $query ->param('START_NOW') ;
    if($istart_back eq ""){
      $istart_back = 0;
    }
    $istart_now = $istart;
  }else{
    $istart_back = $istart;
  }
  #sjis("<hr>$istart_back : $istart ■$istart_now<hr>");
    
  $istart_no_start = $query ->param('START_NO_START') ;
  $istart_no = $query ->param('START_NO') ;

  if($modo eq '最新より表示'){
    $istart = 0;
    $istart_back =0;
  }
	fileRead();
	if($MODE_RUN == 0){
		if($printmode == 0){
			sjis("<CENTER><TABLE border='0'width='97%'><TBODY><TR><TD>");
			sendF();
			sjis("</TD><TD width='40%'>");
                             
			if($sureTitlePrint == 1){
                                sjis("<CENTER><TABLE border='0'width='94%' bgcolor=$Color_SureWaku><TBODY><TR><TD bgcolor=$Color_SureWaku_Naka>");
				sjis("<font color=$HaikeiMailOshirase >■</font>　スレッド一覧（更新順）　<font color=$HaikeiMailOshirase >■</font><br><br>");
				sureTitlePrint();
                                sjis("</TD></TR></TBODY></TABLE></center>");
			}
			sjis("</TD></TR></TBODY></TABLE></CENTER>");
		}
		
	}elsif($MODE_RUN == 1){
		
		sjis("<div align=right>");

		sjis("<a href=stdbbs3_1.cgi?SUBMIT=日記>□　日記を書く</a>　　");
		
		if($printmode == 0){
			sjis("<a href = $homepageP>■　ホームページに戻る</a>　　<font color=$haikeifc >総数 $coall 今日 $cotod 昨日 $coyes</font>　　");
		}
		
		sjis("</div>");
		
	}
	
	if($printmode == 0){
          sjis("<hr><CENTER><TABLE width='98%'><TBODY><TR><TD valign='top'>");
          
          if($printlog == 1){sjis("<b><TABLE width='100%'><TBODY><TR><TD nowrap bgcolor=$haikeiCeH><font color=$haikeifca >　■　近況　■</font></TD></TR></TBODY></TABLE></b>");fileReadSysLogRGB();sjis("<a href='stdbbs3_1.cgi?SUBMIT=近況'>　■　近況のみ表示する。</a>");}
          
          sjis("</td><td>");
          
          #メーリングリスト登録・削除フォーム
          if($usemailA == 1){
            
            out(<<END);
            <form action="stdbbs3_1.cgi"method="post">
              <TABLE width='100%'><TBODY><TR><TD nowrap bgcolor=$haikeiCeM>
                <font color=$HaikeiMailOshirase >　▼　メールでお知らせ機能　▼</font>
                  </TD></TR>
                    </TBODY></TABLE>
                      $stdmailmgMes<br>　　メールアドレス： <input type=text name="MAIL" value="">
                        <input type="submit"name="SUBMIT"value="登録">
                          <input type="submit"name="SUBMIT"value="解除">
                            <input type="submit"name="SUBMIT"value="一覧">
                              </form>
                              </font>	
END
}
          
          sjis("</TD></TR></TBODY></TABLE></CENTER>");
          
        }
  
  
  if($MODE_PRINT == 0){
    read10();
  }elsif($MODE_PRINT == 1 ){
    read10t();
    
  }
  
  if($istart < $bangou){
    nextpage();
  }
  if($printmode == 1){
  	sjis("<hr>");
  	cont();
  	
  }
  sjis("　　　<a href='stdbbs3_1.cgi?SUBMIT=クッキー削除'>■　クッキー削除　■</a>");
  #cont();
}

tempFooter(); #閉め


#-----------------------#
#    ツール             #
#-----------------------#

sub out {
    print STDOUT jcode::sjis($_[0]);
}


#---------------------------------------------#
# ヘッダ（ＰＣ用）                            #
#- - - - - - - - - - - - - - - - - - - - - - -#
# スタイルの設定等の変更はここで              #
#---------------------------------------------#
sub tempHeaderpc {
    out(<<END);

<HTML lang="ja-JP">
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Last-Modified" content="Wed, 24 JUN 1999 16:26:18 GMT">
END
  if($dame_robots == 1){
	sjis('<meta name="robots" content="noindex,nofollow,NOARCHIVE">');
  }
  out(<<END);  
<LINK REL=STYLESHEET TYPE="text/css" HREF="style.css" TITLE="$Htitle">
<TITLE>
$Htitle
</TITLE>
<link rel="SHORTCUT ICON" href="./stdfav.ico">
  
END
 out(<<END);
</HEAD>
<BODY $htmlBody>


END
}
#----------------------------------------------------------------#
# フッタ (！著作権表示！）削除・改変は色は不許可。               #
#                         意味が同じであれば改造はＯＫです       #
#----------------------------------------------------------------#
sub tempFooter {
    out(<<END);
<hr>
<div align="center">

END
if($MODE_RUN == 1){
	sjis("〜日記モード〜<br>");
}
    out(<<END);
    
<a href="http://stardust.t-ring.com/"><b> -=-STD-BBS 3-=-</b></a><br>

</div>
</BODY>
</HTML>
END
}

#-------------------------------------------------------------------#
# 送信フォーム（PC用の表示です。                                    #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
#   out(<<END);　〜　ENDの間のみ通常のHTML表記ができます。          #
#   それ以外の部分ではsjis("ＨＴＭＬ文章");とすることでデザインの   #
#   　変更が容易にできますよ（＾＾）                                #
#-------------------------------------------------------------------#
sub sendFpc{
	
	if($stdmodeY==1){
	$visits=rand($maxexp);
	$visits=int($visits)+120;
		}
	if($hp_c eq ""){
		$hp_c ="http://";
	}
	print("<form method='POST' action='./stdbbs3_1.cgi'enctype='multipart/form-data'>");
	if($type == 1){
	print("<input type='hidden'name='OYA'value='$oya'>");
	print("<input type='hidden'name='TYPE'value='$type'>");

}
	
    out(<<END);
<table border=0 cellspacing=0>
<tr>
  <td nowrap><b ID=FORM01>[NAME]   </b></td>
  <td>
END
#名前の処理（自動ネームは表示しない）
if($useCookieAutoName == 1){
  if($name_c =~ /^名無し\(NO\.\d.*\d\)$/){
    sjis('<input type=text name=NAME size=20 value="" ID=INPUT01>');
  }else{
    if($name_c eq ""){
    	sjis('<input type=text name=NAME size=20 value="" ID=INPUT01>');
    }else{
    	sjis("<input type=text name=NAME size=20 value=$name_c ID=INPUT01>");
    }
  }
}else{
  if($name_c eq ""){
  	sjis('<input type=text name=NAME size=20 value="" ID=INPUT01>');
  }else{
  	sjis("<input type=text name=NAME size=20 value=$name_c ID=INPUT01>");
  }
}
out(<<END);
  
      </td>
</tr>
<tr>
  <td nowrap><b ID=FORM01>[E-MAIL] </b></td>
  <td><input type=text name=MAIL size="20" value="$mail_c" ID=INPUT01></td>
</tr>
<tr>
  <td nowrap><b ID=FORM01>[SUBJECT] </b></td>
  <td nowrap>
    <input type=text name=SUBJECT size="25" ID=INPUT01 value="$restitle2">
END
	if($type == 2){
    		sjis('<input type=submit name=SUBMIT value="管理人に送信">');
	}else{
    		sjis('<input type=submit name=SUBMIT value="送信">');
	}

out(<<END);

<input type=reset value="リセット"><input type=hidden name=BANGOU value="$bangou"><input type=hidden name=VISITS value="$visits">
  </td>
</tr>
<tr>
  <td colspan=2>
    　　<b ID=FORM02>[COMMENT]</b><br>
    <textarea cols="56" rows=7 name=TEXT wrap="soft" ID=INPUT01></textarea>
  </td>
</tr>


END
#メール機能ON-OFFによる表示

if($type == 1){
	
	if($usemailA == 1){
		sjis("<tr><td nowrap>　　<b ID=FORM01>[OPTION]</b></td><td><select name=MAILA_ON_OFF ID=INPUT01><option value='1'>メール配信ＯＮ<option value='0' SELECTED >メール配信ＯＦＦ</select>　");
		if($MODE_RUN != 1){
			sjis("<select name=AGESAGE ID=INPUT01><option value='1' SELECTED >スレを上げる<option value='0'>スレを上げない</select></td></tr>");
		}else{
			sjis("<select name=AGESAGE ID=INPUT01><option value='0' SELECTED >スレを上げない</select></td></tr>");
		}
	}else{
		if($MODE_RUN != 1){
			sjis("<tr><td nowrap>　　<b ID=FORM01>[OPTION]</b></td><td><select name=AGESAGE ID=INPUT01><option value='1' SELECTED >スレを上げる<option value='0'>スレを上げない</select></td></tr>");
		}else{
			sjis("<tr><td nowrap>　　<b ID=FORM01>[OPTION]</b></td><td><select name=AGESAGE ID=INPUT01><option value='0' SELECTED >スレを上げない</select></td></tr>");
		}
	}
	
}else{
	if($type != 2){
		if($usemailA == 1){
			sjis("<tr><td nowrap>　　<b ID=FORM01>[OPTION]</b></td><td><select name=MAILA_ON_OFF ID=INPUT01><option value='1'>メール配信ＯＮ<option value='0' SELECTED >メール配信ＯＦＦ</select></td></tr>");
		}
        }
  
}

if($useFileUp==1){
  sjis("<tr><td nowrap>　　<b ID=FORM01>[File]</b></td><td><input type=file name='FILENAME' size=24 ID=INPUT01> <select name='FILENAME_MODE' ID=INPUT01><option value='0' SELECTED >自動<option value='1' >画像非表示</select></td></tr>");
}

out(<<END);
<tr>
<td nowrap>　　<b ID=FORM01>[URL]</b> </td>
<td><input type=text size="50" name=URL value="$hp_c" ID=INPUT01></td>
</tr>

END

if($use_iconCG ==1){
  sjis("<tr><td nowrap>　　<b ID=FORM01>[IMAGE]</b>   </td><td><select name=CG ID=INPUT01>");
  for(my($i)=0 ; $i < @cg_in ; $i++){
    if($cg_in[$i] eq $cg_c){
      sjis("<option value='$cg_in[$i]' SELECTED >$cg_out[$i]");
    }else{
      sjis("<option value='$cg_in[$i]'>$cg_out[$i]");
    }
  }
  
  
  sjis("</select>");
  out(<<END);
  <input type='button' value='IMAGE一覧'onClick="window.open('stdbbs3_1.cgi?SUBMIT=画像' , '' , 'width=$show_icon_window_w,height=$show_icon_window_h')">
END

sjis("</td></tr>");
}
      out(<<END);

<tr><td nowrap>　　<b ID=FORM02>[DEL-KEY]</b> </td>
<td><input type=password name=DEL size=8 maxlength=8 value="$del_c" ID=INPUT01>
</td></tr>
<tr><td nowrap><b ID=FORM03>[TITLE-COLOR]</b></td><td>
END

for($i=0 ; $i < @iro_s ; $i++){
  if($iro_s[$i] eq $iro1_c){
    sjis("<input type=radio name=IRO1 value=$iro_s[$i] checked><font color=#$iro_s[$i] ID=INPUT02>■</font>");
  }else{
    sjis("<input type=radio name=IRO1 value=$iro_s[$i]><font color=#$iro_s[$i] ID=INPUT02>■</font>");
  }
}
out(<<END);

</td></tr><tr>
<td nowrap>
<b ID=FORM03>[FONT-COLOR]</b></td><td>

END
for($i=0 ; $i < @iro_s ; $i++){
  if($iro_s[$i] eq $iro2_c){
    sjis("<input type=radio name=IRO2 value=$iro_s[$i] checked><font color=#$iro_s[$i] ID=INPUT02>■</font>");
  }else{
    sjis("<input type=radio name=IRO2 value=$iro_s[$i]><font color=#$iro_s[$i] ID=INPUT02>■</font>");
  }
}
out(<<END);

</td>
</td>
</tr></table></form>$mesP<br><br><a href = '$homepageP'>■　ホームページ</a>　　<font color=$haikeifc >　総数 $coall 今日 $cotod 昨日 $coyes</font>
END

}

#------------------------------------------------------------------#
#      ファイル処理＝＝＝読み込み                                  #
#                        変更した場合動作保証できません。          #
#------------------------------------------------------------------#
sub fileRead{

$bangou = 0;
open(F,"$logfile") || die cannot();

$bangou =<F>;
chomp($bangou);
$readVALUE=0;
  
for($i=0; $i <= $bangou+1 ; $i++ ){

$logbg[$i]=<F>;
chomp($logbg[$i]);
  if($logbg[$i] eq ''){
    #sjis("ファイル空っぽ　$i番目<br>");
    last;

  }
$logbg2[$i]=<F>;
chomp($logbg2[$i]);
  if($logbg2[$i] == 0){
    $readVALUE++;
  }
$logti[$i]=<F>;
chomp($logti[$i]);

  $lognam[$i]=<F>;
  chomp($lognam[$i]);

  ($logna[$i],$lognakai[$i]) = split( /{}/ , $lognam[$i] , 2);

  
$logem[$i]=<F>;
chomp($logem[$i]);
$loghp[$i]=<F>;
chomp($loghp[$i]);
$logtxt[$i]=<F>;
chomp($logtxt[$i]);
$logiro1[$i]=<F>;
chomp($logiro1[$i]);
$logiro2[$i]=<F>;
chomp($logiro2[$i]);
$logip[$i]=<F>;
chomp($logip[$i]);
$logos[$i]=<F>;
chomp($logos[$i]);
$logtime[$i]=<F>;
chomp($logtime[$i]);
$logdel[$i]=<F>;
chomp($logdel[$i]);
  
$logcgm[$i]=<F>;
chomp($logcgm[$i]);
($logcg[$i],$logfileup[$i],$logfileupMode[$i]) = split( /{}/ , $logcgm[$i] , 3);
#  sjis("<hr>$logcg[$i],$logfileup[$i],$logfileupMode[$i]<hr>");
  
}
close(F);

}

#-------------------------------------------------------------------#
# 内容を表示する(PC用）                                             #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
#   out(<<END);　〜　ENDの間のみ通常のHTML表記ができます。          #
#   それ以外の部分ではsjis("ＨＴＭＬ文章");とすることでデザインの   #
#   　変更が容易にできますよ（＾＾）                                #
#-------------------------------------------------------------------#
sub read10pc{
  sjis("<hr><center>");
  #cont();
  sjis("</center>");
  $js = 0;
  if($istart != 0){
    sjis("<br>　　　　<font color=$haikeifc >$istart個目の書き込みから表示します。</font>");
  }
  
  if($istart_no ne ''){
    #sjis("前ページの最初の番号：No.$istart_no_start　前ページの最後の番号：No.$istart_no"); #仕様変更のため未使用
  }else{
    $istart_no = $bangou;
  }
  $istart_no_co = 0; #カウンター
  $istart_no_co_back = 0; #戻しカウンター
  
  for($j=$istart ; $js < $maxread ;$j++){
    
    if($logbg[$j] eq""){
      #ログが空だったらココで終了
      sjis("</TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE></CENTER>");
      sjis("<br>　　　　これ以上ログはありません。");
      cont();
      sjis("<br>");
      tempFooter();
      exit();
      
    }else{
      
      if($logbg2[$j] == 0){
        #親スレだったら・・・
        
        if($istart_no_co == 0){
          $istart_no_start = $logbg[$j];
        }
        
        if($istart_no ne $logbg[$j]){
          $istart_no_co++;
          $istart_no = $logbg[$j];
        }
        
        if($j != $istart){
          sjis("</TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE></CENTER>");
        }
        sjis("<br><CENTER><TABLE border='0' width='95%' bgcolor=$Color_Waku><TBODY><TR><TD bgcolor=$Color_Waku_Naka>");
        sjis("<CENTER><TABLE width='97%'><TBODY><TR><TD nowrap width='50' valign='top'><br><br><br>");
        if($use_iconCG == 1){sjis("<img src='$logcg[$j]'>");}
        sjis("</TD><TD>");
        
        #	sjis("投稿番号：$logbg[$j]　");
        #	sjis("付属番号：$logbg2[$j]　");
        
        print("<br>");
        
        if($logti[$j] ne ""){
          sjis("<b><font size=4 color='#$logiro1[$j]'>$logti[$j]</font></b>　　No.$logbg[$j]-$logbg2[$j]<br>");
        }else{
          sjis("<b><font size=4 color='#$logiro1[$j]'>No Title</font></b>　　No.$logbg[$j]-$logbg2[$j]<br>");
        }
        
        if($MODE_RUN != 1){
          sjis("<font color=$Color_Toukoumei><b>投稿者　$logna[$j]</b>　</font>");
          
          if($stdmodeY == 1){
            sjis("<font color=$Color_ToukoumeiKai>階級　$lognakai[$j]　</font>");
          }
          sjis("<font color=$Color_Toukou_Time>$logtime[$j]</font>　");
          if($printip == 1){
            sjis("IP : $logip[$j]　");
          }
          if($logem[$j] ne ""){
            sjis("<A href='mailto:$logem[$j]'>E-mail</a>　");
          }
          if($loghp[$j] ne "http://" && $loghp[$j] ne "" ){
            sjis("<a href ='$loghp[$j]'  target='_blank'>HomePage</a>");
          }
          if($print_systemA == 1){
          	sjis("<br>　$logos[$j]");
          }
          
        }else{
          #日記の時の親記事の表示
          sjis("　　<font color=$Color_Toukou_Time>$logtime[$j]</font>　");
        }
        
        print("<br><br>");
        sjis("<font color='#$logiro2[$j]'>$logtxt[$j]</font>");
        print("<br><br>");
        
        if($logfileup[$j] ne ""){
          #sjis("動作モード$logfileupMode[$j]<br>");
          if($logfileupMode[$j] eq "0"){
            #sjis("表示は自動を選択<br>");
            FileUpFlag($logfileup[$j]);
            if($flag == 2){
              sjis("<br><center><img src = $UpDir\/$logfileup[$j]></center>");
            }else{
              sjis("<br><div align=right><img src=download.png><a href=$UpDir\/$logfileup[$j]><br>ファイルがあります</a></div>");
            }
          }else{
            sjis("<br><div align=right><img src=download.png><a href=$UpDir\/$logfileup[$j]><br>ファイルがあります</a></div>");
          }
        }
        
        #sjis($logdel[$j]);
        sjis("<div align ='right'><form action='stdbbs3_1.cgi'method='post'>
	<input type='hidden'name='OYA'value='$logbg[$j]'>
	<input type='submit'name='SUBMIT'value='返信'>
	</form></div>");
        
        
      }else{
        if($istart_no_co == 0){
          $istart--;
          $js--;
          #sjis("やり直し");
          next;
        }
        print("<hr>");
        sjis("<TABLE width='100%'><TBODY><TR><TD width='50'><br><br><br>");
        if($use_iconCG == 1){ sjis("<img src='$logcg[$j]'>");}
        sjis("</TD><TD>");
        
        #	sjis("投稿番号：$logbg[$j]　");
        #	sjis("付属番号：$logbg2[$j]　");
        print("<br>");
        
        if($logti[$j] ne ""){
          sjis("<b><font size=4 color='#$logiro1[$j]'>$logti[$j]</font></b>　　No.$logbg[$j]-$logbg2[$j]<br>");
        }else{
          sjis("<b><font size=4 color='#$logiro1[$j]'>No Title</font></b>　　No.$logbg[$j]-$logbg2[$j]<br>");
        }
        
        sjis("<font color=$Color_Toukoumei ><b>投稿者　$logna[$j]</b>　</font>");
        
        if($stdmodeY == 1){
          sjis("<font color=$Color_ToukoumeiKai>階級　$lognakai[$j]　</font>");
        }
        sjis("<font color=$Color_Toukou_Time>$logtime[$j]</font>　");
        if($printip == 1){
          sjis("IP : $logip[$j]　");
        }
        if($logem[$j] ne ""){
          sjis("<A href='mailto:$logem[$j]'>E-mail</a>　");
        }
        if($loghp[$j] ne "http://" && $loghp[$j] ne "" ){
          sjis("<a href ='$loghp[$j]'  target='_blank'>HomePage</a>");
        }
        if($print_systemA == 1){
			sjis("<br>　$logos[$j]");
		}
        print("<br><br>");
        sjis("<font color='#$logiro2[$j]'>$logtxt[$j]</font>");
        print("<br><br>");
        
        if($logfileup[$j] ne ""){
          FileUpFlag($logfileup[$j]);
          if($logfileupMode[$j] eq "0"){
            if($flag == 2){
              sjis("<br><center><img src = $UpDir\/$logfileup[$j]></center>");
            }else{
              sjis("<br><div align=right><img src=download.png><a href=$UpDir\/$logfileup[$j]><br>ファイルがあります</a></div>");
            }
          }else{
            sjis("<br><div align=right><img src=download.png><a href=$UpDir\/$logfileup[$j]><br>ファイルがあります</a></div>");
          }
        }
        
        sjis("</TD></TR></TBODY></TABLE></CENTER>");
        
        
      }
      if($logbg[$j] != $logbg[$j+1]){
        $js=$js+1;
      }
      
    }
    
    
  }
  sjis("</TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE></CENTER><br>");
  cont();
  sjis ("<font color=$haikeifcb > 　　　$j個の書き込みを表示しましたが、まだ続きがあります。</font>");
}


#-------------------------------------------------------------------#
#   返信元の内容を表示する(PC用)                                    #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
#   out(<<END);　〜　ENDの間のみ通常のHTML表記ができます。          #
#   それ以外の部分ではsjis("ＨＴＭＬ文章");とすることでデザインの   #
#   　変更が容易にできますよ（＾＾）                                #
#-------------------------------------------------------------------#
sub readoyapc{
  debug($oya);
  
  $restitleRe1 = 0;
  
  for($j=0 ; $j < $bangou ;$j++){
    if($logbg[$j] eq""){
      last;
    }else{
      
      if($oya == $logbg[$j]){
        if($logti[$j] ne ""){
          if($restitleRe1 != 1){
            $restitle = $logti[$j];
            #				sjis("$restitle になりました");
          }
          if($restitleRe == 1){
            $restitleRe1 = 1;
          }
        }
        if($logbg2[$j] > 0){
          sjis("<font color='$haikeifc'>★返信★</font>");
        }

        sjis("<br><TABLE border='0' width='95%' bgcolor='$Color_Waku'><TBODY><TR><TD bgcolor='$Color_Waku_Naka'>");
	sjis("<CENTER><TABLE width='97%'><TBODY><TR><TD nowrap width='50' valign='top'><br><br><br>");
        if($use_iconCG == 1 ){ sjis("<img src='$logcg[$j]'>");}
        sjis("</TD><TD>");
        
	print("<br>");
        sjis("<b><font size=4 color='#$logiro1[$j]'>$logti[$j]</font></b>　　No.$logbg[$j]-$logbg2[$j]<br>");
	sjis("<font color=$Color_Toukoumei >投稿者　$logna[$j]　</font><font color=$Color_Toukou_Time>$logtime[$j]</font>　");
        if($printip == 1){
          sjis("IP : $logip[$j]");
        }
	if($logem[$j] ne ""){
          sjis("<A href='mailto:$logem[$j]'>E-mail</a>　");
        }
        if($loghp[$j] ne "http://" && $loghp[$j] ne "" ){
          sjis("<a href ='$loghp[$j]'  target='_blank' >URL</a>");
        }
        if($print_systemA == 1){
        	sjis("<br>　$logos[$j]");
        }
        print("<br><br>");
        sjis("<font color='#$logiro2[$j]'>$logtxt[$j]</font>");
        print("<br><br>");
        
        sjis("</TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE>");
        
        
      }
    }
  }
  
}
#-------------------------------------------------------------------#
# 検索内容を表示する（PC）                                          #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
#   out(<<END);　〜　ENDの間のみ通常のHTML表記ができます。          #
#   それ以外の部分ではsjis("ＨＴＭＬ文章");とすることでデザインの   #
#   　変更が容易にできますよ（＾＾）                                #
#-------------------------------------------------------------------#
sub kensakupc{
  $js = 0;
  sjis("<font color='$haikeifc'>検索　全$logbg[$j]件中（対象：投稿者名、題名、本文）</font><br><br><br>");
  for($j=$istart ; $js < $maxread ;$j++){
    if($logbg[$j] eq""){
      sjis("</TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE><br>");
      #tempFooter();
      #exit();
      last;
      
    }else{
      
      #本文orタイトルで検索
		#sjis("名前：$logna[$j]<br><br>タイトル：$logti[$j]<br>本文：$logtxt[$j]<hr>");
      if($logtxt[$j] =~ /$kensakucode/ || $logti[$j] =~ /$kensakucode/ || $logna[$j] =~ /$kensakucode/){
        
        if($logbg2[$j] > 0){
          sjis("<font color='$haikeifc'>↓返信部分です↓</font>");
        }
		sjis("<center>");
        sjis("<TABLE border='0' width='95%' bgcolor='$Color_Waku'><TBODY><TR><TD bgcolor='$Color_Waku_Naka'>");
		sjis("<CENTER><TABLE width='97%'><TBODY><TR><TD nowrap width='50' valign='top'><br><br><br><img src='$logcg[$j]'></TD><TD>");
        
        print("<br>");
        sjis("<b><font size=4 color='#$logiro1[$j]'>$logti[$j]</font></b>　　No.$logbg[$j]-$logbg2[$j]<br>");
        sjis("<font color=$Color_Toukoumei >投稿者　$logna[$j]　</font><font color=$Color_Toukou_Time>$logtime[$j]</font>　");
        if($logem[$j] ne ""){
          sjis("<A href='mailto:$logem[$j]'>E-mail</a>　");
        }
        if($loghp[$j] ne "http://" && $loghp[$j] ne "" ){
          sjis("<a href ='$loghp[$j]'  target='_blank'>URL</a>");
		}
		if($print_systemA == 1){
        	sjis("<br>　$logos[$j]");
        }
        print("<br><br>");
        sjis("<font color=#$logiro2[$j]'>$logtxt[$j]</font>");
        print("<br><br>");
        
        sjis("</TD></TR></TBODY></TABLE></CENTER></TD></TR></TBODY></TABLE><br>");
        $js=$js+1;
        sjis("</center>");
      }
    }
  }
  sjis("<br><br>");
}

#-------------------------------------------------------------------#
# 検索内容を表示する（携帯）                                        #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
#   ＰＣ用の簡易表示です                                            #
#-------------------------------------------------------------------#
sub kensakui{
  $js = 0;
  sjis("<font color='$haikeifc'>検索　全$logbg[$j]件中（対象：投稿者名、題名、本文）</font><br><br><hr>");
  for($j=$istart ; $js < $maxread ;$j++){
    if($logbg[$j] eq""){


      last;
      
    }else{
      
      #本文orタイトルで検索
		#sjis("名前：$logna[$j]<br><br>タイトル：$logti[$j]<br>本文：$logtxt[$j]<hr>");
      if($logtxt[$j] =~ /$kensakucode/ || $logti[$j] =~ /$kensakucode/ || $logna[$j] =~ /$kensakucode/){
        
        if($logbg2[$j] > 0){
          sjis("<font color='$haikeifc'>↓返信部分です↓</font>");
        }

        print("<br>");
        sjis("<b><font color='#$logiro1[$j]'>$logti[$j]</font></b>　　No.$logbg[$j]-$logbg2[$j]<br>");
        sjis("<font color=$Color_Toukoumei >投稿者　$logna[$j]　</font><br><font color=$Color_Toukou_Time>$logtime[$j]</font>");

        print("<br><br>");
        sjis("<font color=#$logiro2[$j]'>$logtxt[$j]</font>");
        print("<br>");
        
        sjis("<hr>");
        $js=$js+1;
        sjis("</center>");
      }
    }
  }
  sjis("<br><br>");
}


#-------------------------#
#  編集する               #
#                         #
#-------------------------#
sub hensyupc{

  for($j=0;;$j++){

    if($logbg[$j] eq""){
		tempFooter();
		break();
		}else{

		if($no1 == $logbg[$j] && $no2 == $logbg2[$j]){
			if($pass ne $mypass){
			if($pass ne $logdel[$j] ){
			sjis("<font color=$haikeifc >パスワードが一致しませんでした。<br>ブラウザの戻るを利用し、入力し直してください。</font>");
			tempFooter();
			break();
			}
		}
			FUSEItxtA($logtxt[$j]);
			$logtxt[$j]=$moji;
                        unAUTOlink($logtxt[$j]);
                        $logtxt[$j]=$moji;
			hensyupcS();
		}
		}
	}
	
}

#-------------------------------------------------------------------#
#  編集時の送信フォーム（PC）                                       #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
#   out(<<END);　〜　ENDの間のみ通常のHTML表記ができます。          #
#   それ以外の部分ではsjis("ＨＴＭＬ文章");とすることでデザインの   #
#   　変更が容易にできますよ（＾＾）                                #
#-------------------------------------------------------------------#
sub hensyupcS{
		if($stdmodeY==1){
		$visits=rand($maxexp);
		$visits=int($visits);
		}
    out(<<END);
    <form method='POST' action='./stdbbs3_1.cgi'>

<table border=0 cellspacing=0>
<tr>
  <td nowrap>[NAME]    </td>
  <td>

END
#名前の処理（自動ネームは表示しない）
if($useCookieAutoName == 1){
  if($name_c =~ /^名無し\(NO\.\d.*\d\)$/){
    sjis("<input type=text name=NAME size=20 value='' ID=INPUT01>");
  }else{
    sjis("<input type=text name=NAME size=20 value=$name_c ID=INPUT01>");
  }
}else{
  sjis("<input type=text name=NAME size=20 value=$name_c ID=INPUT01>");
}
out(<<END);

    </td>
</tr>
<tr>
  <td nowrap>[E-MAIL] </td>
  <td><input type=text name=MAIL size="20" value="$logem[$j]"ID=INPUT01>
    </td>
</tr>
<tr>
  <td nowrap>[SUBJECT] </td>
  <td nowrap>
    <input type=text name=SUBJECT size="25" value="$logti[$j]" ID=INPUT01>
	<input type=submit name=SUBMIT value="編集確定"><input type=hidden name=BANGOU value="$bangou"><input type=hidden name=TIME value="$logtime[$j]">
    <input type=hidden name='NO1' value="$no1"><input type=hidden name='NO2' value="$no2"><input type=hidden name=VISITS value="$visits">
  </td>
</tr>
<tr>
  <td colspan=2>
    　　[COMMENT]<br>
    <textarea cols="56" rows=7 name=TEXT wrap="soft" ID=INPUT01>$logtxt[$j]</textarea>
  </td>
</tr>
<tr>
END

if($useFileUp==1){
  if($logfileup[$j] ne ""){
    sjis("<tr><td nowrap>　　<b ID=FORM01>[File]</b></td><td><select name='FILENAME_H_MODE' ID=INPUT01><option value='0' SELECTED >そのまま<option value='1' >削除</select> <select name='FILENAME_MODE' ID=INPUT01><option value='0' SELECTED >自動<option value='1' >画像非表示</select></td></tr>");
  }
}

out(<<END);
  <td nowrap>　　[URL] </td>
  <td><input type=text size="50" name=URL value="$hp_c" ID=INPUT01></td>
</tr>
END

if($use_iconCG ==1){
	sjis("<tr><td nowrap>　　<b ID=FORM01>[IMAGE]</b>   </td><td><select name=CG ID=INPUT01>");
	for(my($i)=0 ; $i < @cg_in ; $i++){
	if($cg_in[$i] eq $cg_c){
		sjis("<option value='$cg_in[$i]' SELECTED >$cg_out[$i]");
	}else{
		sjis("<option value='$cg_in[$i]'>$cg_out[$i]");
	}
	}

	    
	sjis("</select>");
	
	out(<<END);
	<input type='button' value='IMAGE一覧'
	  onClick="window.open('stdbbs3_1.cgi?SUBMIT=画像' , '' , 'width=320,height=240')" >
END
	sjis("</td></tr>");
}

    out(<<END);

<tr><td nowrap>　　[DEL-KEY] </td>
<td><input type=password name=DEL size=8 maxlength=8 value="$del_c" ID=INPUT01>
</td></tr>
<tr><td nowrap>[TITLE-COLOR]</td><td>
END

for($i=0 ; $i < @iro_s ; $i++){
if($iro_s[$i] eq $logiro1[$j]){
sjis("<input type=radio name=IRO1 value='$iro_s[$i]' checked><font color='#$iro_s[$i]'>★</font>");
}else{
sjis("<input type=radio name=IRO1 value='$iro_s[$i]'><font color='#$iro_s[$i]'>★</font>");
}
}
    out(<<END);
    
</td></tr><tr>
<td nowrap>
[FONT-COLOR]</td><td>

END
for($i=0 ; $i < @iro_s ; $i++){
if($iro_s[$i] eq $logiro2[$j]){
sjis("<input type=radio name=IRO2 value='$iro_s[$i]' checked><font color='#$iro_s[$i]'>★</font>");
}else{
sjis("<input type=radio name=IRO2 value='$iro_s[$i]'><font color='#$iro_s[$i]'>★</font>");
}
}
    out(<<END);

</td>
</tr></table></form>
END

}
#---------------------------------------------------------------#
# 返信が最大値以内かをチェック！                                #
#         わかる人以外変更しないで！                            #
#---------------------------------------------------------------#
sub chkhenshin{
	for($j=0;$j<$bangou;$j++){
  		if($oya == $logbg[$j]){
			while($oya == $logbg[$j]){
			if($logbg2[$j] >= $maxreply){
				sjis("<font color=$haikeifc ><br>これ以上、この記事に対しての返信はできません。</font>");
				rewrite();
				tempFooter();
				exit();
			}
			$j=$j+1;
			}
		return();
		}
	}
}
#---------------------------------------------------------------#
# 編集前に削除されていないかを確認し、新しいデータを代入        #
#         わかる人以外変更しないで！                            #
#---------------------------------------------------------------#
sub chkhensyu{
	debug($bangou);
	debug($no1);
	debug($no2);
	
	for($j=0;$j<$bangou;$j++){
    if($logbg[$j] eq""){
		#ループだけ抜ける命令ないんかな
		}else{
		#sjis("$no1 == $logbg[$j] && $no2 == $logbg2[$j]<br>");
		if($no1 == $logbg[$j] && $no2 == $logbg2[$j]){
			if($logtime[$j] ne $retime){
			debug($logtime[$j]);
			debug($retime);
			sjis("<font color=$haikeifc >その投稿は削除されています。<br>内容の変化を防ぐため、この状態での投稿は禁止されています。<br>投稿しなおしてください。<br>!注意！ブラウザの戻るを使用は無意味です。</font>");
			exit();
			}

			#↓管理人宛メッセ機能
			if($useAdminMes == 1){
				fileWriterSysAdmin("　▼　<FONT size=+1 COLOR=$haikeifcc><b>$naAさん</b></font><FONT COLOR=$haikeifcd>が<font size=6>編集</font>しました。編集前のデータ。</font>　＜　$timeA　▼　<br><br><FONT COLOR=$haikeifca>■　内容　■</FONT><br><br>$logtxt[$j]<br><Br><FONT COLOR=$haikeifca>■　追記情報　■</font><br><br>$hostaddr　$ipA<br>$osA<hr>");
			}

		#編集する項目の代入
		$logti[$j]=$tiA;
		$logna[$j]=$naA;
		$logem[$j]=$emA;
		$loghp[$j]=$hpA;
		$logtxt[$j]=$txtA;
		$logdel[$j]=$delA;
		$logiro1[$j]=$iro1A;
		$logiro2[$j]=$iro2A;
		$logcg[$j]=$cgA;

                  #添付ファイルを削除するとき
                  $fileupHMode = $query ->param('FILENAME_H_MODE') ;
                  $fileupMode = $query ->param('FILENAME_MODE') ;
                  if($fileupHMode eq "1"){

                    if((unlink "\.\/$UpDir\/$logfileup[$j]") != 1){
                      sjis("UPファイルの削除に失敗しました。<br>$!<BR>$UpDir\/$logfileup[$j]<BR>");
                      exit;
                    }

                    sjis("<BR>× アップロードされていたファイル $logfileup[$j]の削除を行いました。<BR><BR>");
                    $logfileup[$j]="";
                    $logfileupMode[$j]="";
                    
                  }else{
                    
                    $logfileupMode[$j]="$fileupMode";
                    
                  }
		
		$temptime1 = "<br>→　編集時刻：　";
		$temptime2 = $logtime[$j];
		$logtime[$j] = $temptime2.$temptime1;
		$temptime2 = $logtime[$j];
		$logtime[$j] = $temptime2.$timeA;
	 
#		sjis("題名　$logti[$j]<br>");
#		sjis("名前　$logna[$j]<Br>");
#		sjis("メール　$logem[$j]<BR>");
#		sjis("ＨＰ　$loghp[$j]<br>");
#		sjis("内容　$logtxt[$j]<br>");
#		sjis("削除　$logdel[$j]<br>");
#		sjis("色１　$logiro1[$j]<br>");
#		sjis("色２　$logiro2[$j]<br>");
#		sjis("ＣＧ　$logcg[$j]<Br>");
		
		
		}
		}
	}


}

#-----------------------------------------#
# ロックファイル（symlink関数）           #
#   ファイルをロックするためのプログラム  #
#-----------------------------------------#
sub lock{ 

if($lockf == 1){
	local($retry) = 5;
	while (!symlink(".", $lockfile)) {
		if (--$retry <= 0) { &error("LOCK is BUSY"); }
		sleep(1);
	}
}else{
		local($flag) = 0;
	foreach (1 .. 5) {
		unless (-e $lockfile) {
			open(LOCK,">$lockfile");
			close(LOCK);
			$flag = 1;
			last;
		} else {
			sleep(1);
		}
	}
	if ($flag == 0) { &error("LOCK is BUSY"); }
}
}
#----------------------------------------#
#  アンロック                            #
#----------------------------------------#
sub unlock{
	# ロック解除
	unlink($lockfile) if (-e $lockfile);
}
#-------------------------------------------------------------#
# ファイル操作＝＝上書き                                      #
#     変更したらどうなるか知らんよ（＾＾；                    #
#-------------------------------------------------------------#
sub fileWriter{

  if($printmode == 0 ){
    if($stdmodeY == 1){
      $visitsR_plus_print = $visitsR + $visits;
      sjis("<font color=$haikeifc><br><br>新規書き込みによって<b>書き込みポイントが$visits上昇</b>しました。<br><font color=$haikeifcd>現在 $visitsR_plus_printポイント</font></font><br>");
    }
  }

chomp($bangou);
$bangous = $bangou +1;
chomp($bangous);
$maxVALUEw = 0;
lock();

open(W,">$logfile") || die cannot();

#-----------
print W "$bangous\n";
print W "$bangous\n";
print W "$bangou2\n";
print W "$tiA\n";
print W "$naA\n";
print W "$emA\n";
print W "$hpA\n";
print W "$txtA\n";
print W "$iro1A\n";
print W "$iro2A\n";
print W "$ipA\n";
print W "$osA\n";
print W "$timeA\n";
print W "$delA\n";
print W "$cgA\n";
#------
for($i = 0 ; $i < $bangou ; $i++){

  if($logbg2[$i] == 0){
    $maxVALUEw++;
    #sjis("$maxVALUEw  $logbg[$i] $logbg2[$i]<br>");
  }
  if($maxVALUEw == $maxwrite + 1 ){
	#sjis("<BR><font color=$haikeifc>システムメッセージ：古い記事を自動削除しました。</font><Br>");
	close(W);
	unlock();
	rewrite();
	tempFooter();
	exit();
  }
  
print W "$logbg[$i]\n";
print W "$logbg2[$i]\n";
print W "$logti[$i]\n";
print W "$logna[$i]\{\}$lognakai[$i]\n";
print W "$logem[$i]\n";
print W "$loghp[$i]\n";
print W "$logtxt[$i]\n";
print W "$logiro1[$i]\n";
print W "$logiro2[$i]\n";
print W "$logip[$i]\n";
print W "$logos[$i]\n";
print W "$logtime[$i]\n";
print W "$logdel[$i]\n";
print W "$logcg[$i]\{\}$logfileup[$i]\{\}$logfileupMode[$i]\n";

}

close(W);

unlock();
}
#--------------------------------------------------------------------#
# ファイル操作＝返信用                                               #
#--------------------------------------------------------------------#
sub fileWriterR{
  if($printmode == 0 ){
    if($stdmodeY==1){
      $visitsR_plus_print = $visitsR + $visits;
      sjis("<font color=$haikeifc>返信書き込みによって書き込みポイント$visits上昇しました。<br><font color=$haikeifcd>現在　$visitsR_plus_printポイント</font></font>");
    }
  }
chomp($bangou);
$bangous = $bangou +1 ;
$bangou2 = 0;
chomp($bangous);

lock();



open(W,">$logfile") || die cannot();
	print W "$bangous\n";
if($agesage == 1){
	#上げの設定
	for($i = 0 ; $i <= $bangous ; $i++){
	#print($logbg[$i]);
	#print("<br>");
	if($logbg[$i] == $oya){

	print W "$logbg[$i]\n";
	print W "$logbg2[$i]\n";
	print W "$logti[$i]\n";
	print W "$logna[$i]\{\}$lognakai[$i]\n";
	print W "$logem[$i]\n";
	print W "$loghp[$i]\n";
	print W "$logtxt[$i]\n";
	print W "$logiro1[$i]\n";
	print W "$logiro2[$i]\n";
	print W "$logip[$i]\n";
	print W "$logos[$i]\n";
	print W "$logtime[$i]\n";
	print W "$logdel[$i]\n";
	print W "$logcg[$i]\{\}$logfileup[$i]\{\}$logfileupMode[$i]\n";

	$bangou2 =$bangou2+1;
	}
	}
	#-----------
	$bangou1 = $oya;

	print W "$bangou1\n";
	print W "$bangou2\n";
	print W "$tiA\n";
	print W "$naA\n";
	print W "$emA\n";
	print W "$hpA\n";
	print W "$txtA\n";
	print W "$iro1A\n";
	print W "$iro2A\n";
	print W "$ipA\n";
	print W "$osA\n";
	print W "$timeA\n";
	print W "$delA\n";
	print W "$cgA\n";
	#------


	for($i = 0 ; $i < $bangous ; $i++){
		if($logbg[$i] != $oya){
		print W "$logbg[$i]\n";
		print W "$logbg2[$i]\n";
		print W "$logti[$i]\n";
		print W "$logna[$i]\{\}$lognakai[$i]\n";
		print W "$logem[$i]\n";
		print W "$loghp[$i]\n";
		print W "$logtxt[$i]\n";
		print W "$logiro1[$i]\n";
		print W "$logiro2[$i]\n";
		print W "$logip[$i]\n";
		print W "$logos[$i]\n";
		print W "$logtime[$i]\n";
		print W "$logdel[$i]\n";
		print W "$logcg[$i]\{\}$logfileup[$i]\{\}$logfileupMode[$i]\n";
		}
	}
	sjis("<br><br>お知らせ→　書き込みモード：”age”<br>");
}else{
#下げの設定
	for($i = 0 ; $i < $bangous ; $i++){
		if($logbg[$i] == $oya){
			last;
		}
		print W "$logbg[$i]\n";
		print W "$logbg2[$i]\n";
		print W "$logti[$i]\n";
		print W "$logna[$i]\{\}$lognakai[$i]\n";
		print W "$logem[$i]\n";
		print W "$loghp[$i]\n";
		print W "$logtxt[$i]\n";
		print W "$logiro1[$i]\n";
		print W "$logiro2[$i]\n";
		print W "$logip[$i]\n";
		print W "$logos[$i]\n";
		print W "$logtime[$i]\n";
		print W "$logdel[$i]\n";
		print W "$logcg[$i]\{\}$logfileup[$i]\{\}$logfileupMode[$i]\n";
		
	}
#	sjis("$i-1番目まで書き込み完了 目標　$bangousまで<br>");
	for($j = 0 ; $j <= $bangous ; $j++){
		#print($logbg[$j]);
		#print("<br>");
		if($logbg[$j] == $oya){

		print W "$logbg[$j]\n";
		print W "$logbg2[$j]\n";
		print W "$logti[$j]\n";
		print W "$logna[$j]\{\}$lognakai[$i]\n";
		print W "$logem[$j]\n";
		print W "$loghp[$j]\n";
		print W "$logtxt[$j]\n";
		print W "$logiro1[$j]\n";
		print W "$logiro2[$j]\n";
		print W "$logip[$j]\n";
		print W "$logos[$j]\n";
		print W "$logtime[$j]\n";
		print W "$logdel[$j]\n";
		print W "$logcg[$j]\{\}$logfileup[$j]\{\}$logfileupMode[$j]\n";

		$bangou2 =$bangou2+1;
		}
	}
#	sjis("$i-1のうち子$bangou2番目まで書き込み完了 目標　$bangousまで<br>");
	#自分
	$bangou1 = $oya;
	
	print W "$bangou1\n";
	print W "$bangou2\n";
	print W "$tiA\n";
	print W "$naA\n";
	print W "$emA\n";
	print W "$hpA\n";
	print W "$txtA\n";
	print W "$iro1A\n";
	print W "$iro2A\n";
	print W "$ipA\n";
	print W "$osA\n";
	print W "$timeA\n";
	print W "$delA\n";
	print W "$cgA\n";
	#------
	for($i = $i + $bangou2 ; $i <= $bangous ; $i++){
		print W "$logbg[$i]\n";
		print W "$logbg2[$i]\n";
		print W "$logti[$i]\n";
		print W "$logna[$i]\{\}$lognakai[$i]\n";
		print W "$logem[$i]\n";
		print W "$loghp[$i]\n";
		print W "$logtxt[$i]\n";
		print W "$logiro1[$i]\n";
		print W "$logiro2[$i]\n";
		print W "$logip[$i]\n";
		print W "$logos[$i]\n";
		print W "$logtime[$i]\n";
		print W "$logdel[$i]\n";
		print W "$logcg[$i]\{\}$logfileup[$i]\{\}$logfileupMode[$i]\n";
		
	}
#	sjis("$i-1番目まで書き込み完了 目標　$bangousまで<br>");
	sjis("<br><br>お知らせ→　書き込みモード：”sage”<br>");
}

	close(W);

unlock();
}
#-------------------------------------------------------#
# 編集用ファイル保存                                    #
#-------------------------------------------------------#
sub fileSaveHensyu{
	lock();

	open(W,">$logfile") || die cannot();
	print W "$bangou\n";
	
	for($i = 0 ; $i <= $bangou ; $i++){

	print W "$logbg[$i]\n";
	print W "$logbg2[$i]\n";
	print W "$logti[$i]\n";
	print W "$logna[$i]\{\}$lognakai[$i]\n";
	print W "$logem[$i]\n";
	print W "$loghp[$i]\n";
	print W "$logtxt[$i]\n";
	print W "$logiro1[$i]\n";
	print W "$logiro2[$i]\n";
	print W "$logip[$i]\n";
	print W "$logos[$i]\n";
	print W "$logtime[$i]\n";
	print W "$logdel[$i]\n";
	print W "$logcg[$i]\{\}$logfileup[$i]\{\}$logfileupMode[$i]\n";
	}

close(W);

unlock();
}
#---------------------------------------------------#
# 削除＆ファイル保存                                #
#---------------------------------------------------#
sub fileSaveSakujyo{
	
  for($j=0;$j<$bangou;$j++){
    if($logbg[$j] eq""){
      #ループだけ抜ける命令ないんかな
    }else{
      if($no1 == $logbg[$j] && $no2 == $logbg2[$j]){
        if($no1 == $logbg[$j] && $no2 == $logbg2[$j]){
          if($mypass ne $pass){
            if($pass ne $logdel[$j]){
              sjis("<font color=$haikeifc >パスワードが一致しませんでした。<br>ブラウザの戻るを利用し、入力し直してください。</font>");
              tempFooter();
              exit();
            }
          }
        }
      }
    }
  }
  
  
  lock();
  
  debug($bangou);
  debug($no1);
  debug($no2);
  open(W,">$logfile") || die cannot();
  print W "$bangou\n";
  for($j=0;$j<$bangou;$j++){
    if($logbg[$j] eq""){
      #ループだけ抜ける命令ないんかな
    }else{
      if($no2 == 0){
        #親の場合は子もすべて削除
        if($no1 == $logbg[$j]){
          
          #削除なので一致する部分はスルーパス。
          $sakujyoAdminTxt = $logtxt[$j];

          if($logfileup[$j] ne ""){
            if((unlink "\.\/$UpDir\/$logfileup[$j]") != 1){
              sjis("UPファイルの削除に失敗しました。<br>$!<BR>$UpDir\/$logfileup[$j]<BR>");
            }
            
            sjis("アップロードされていたファイル $logfileup[$j]の削除を行いました。<BR><BR>");
            $logfileup[$j]="";
            $logfileupMode[$j]="";
          }
          
          sjis("<font color=$haikeifc >No.$no1の記事を削除しました。<br></font>");
          
        }else{
          
          print W "$logbg[$j]\n";
          print W "$logbg2[$j]\n";
          print W "$logti[$j]\n";
          print W "$logna[$j]\{\}$lognakai[$i]\n";
          print W "$logem[$j]\n";
          print W "$loghp[$j]\n";
          print W "$logtxt[$j]\n";
          print W "$logiro1[$j]\n";
          print W "$logiro2[$j]\n";
          print W "$logip[$j]\n";
          print W "$logos[$j]\n";
          print W "$logtime[$j]\n";
          print W "$logdel[$j]\n";
          print W "$logcg[$j]\{\}$logfileup[$j]\{\}$logfileupMode[$j]\n";
        }
      }else{
        if($no1 == $logbg[$j] && $no2 == $logbg2[$j]){
          
          #削除なので一致する部分はスルーパス。
          $sakujyoAdminTxt = $logtxt[$j];
          
          if($logfileup[$j] ne ""){
            if((unlink "\.\/$UpDir\/$logfileup[$j]") != 1){
              sjis("UPファイルの削除に失敗しました。<br>$!<BR>$UpDir\/$logfileup[$j]<BR>");
            }
            
            sjis("アップロードされていたファイル $logfileup[$j]の削除を行いました。<BR><BR>");
            $logfileup[$j]="";
            $logfileupMode[$j]="";
          }
          
          sjis("<font color=$haikeifc >No.$no1-$no2の記事を削除しました。<br></font>");
          
        }else{
          
          print W "$logbg[$j]\n";
          print W "$logbg2[$j]\n";
          print W "$logti[$j]\n";
          print W "$logna[$j]\{\}$lognakai[$i]\n";
          print W "$logem[$j]\n";
          print W "$loghp[$j]\n";
          print W "$logtxt[$j]\n";
          print W "$logiro1[$j]\n";
          print W "$logiro2[$j]\n";
          print W "$logip[$j]\n";
          print W "$logos[$j]\n";
          print W "$logtime[$j]\n";
          print W "$logdel[$j]\n";
          print W "$logcg[$j]\{\}$logfileup[$j]\{\}$logfileupMode[$j]\n";
        }
      }
    }
  }
  close(W);
  
  unlock();
  
  #↓管理人宛メッセ機能
  if($useAdminMes == 1){
    fileWriterSysAdmin("　▼　<FONT size=+1 COLOR=$haikeifcc><b>$name_cさん</b></font><FONT COLOR=$haikeifcd>が<font size=6>削除</font>しました。</font>　＜　$timeA　▼　<br><br><FONT COLOR=$haikeifca>■　内容　■</FONT><br><br>$sakujyoAdminTxt<br><Br><FONT COLOR=$haikeifca>■　追記情報　■</font><br><br>$hostaddr　$ipA<br>$osA<hr>");
    sjis("<br>メッセ機能、正常動作しました。<br>");
  }
  
  
}
#------------------------------------------------------------------#
#アクセス解析  ファイル処理＝＝＝読み込み                          #
#------------------------------------------------------------------#
sub fileReadSysAnaco{

	open(F,"$todayfile") || die cannot();


	for($i=0 ; $i < $AcMax-1 ; $i++ ){

		$Anaco[$i]=<F>;
		chomp($Anaco[$i]);
		if($Anaco[$i] eq ""){
#			sjis("$i個目の処理で空白発見<br>");
			last;
		}
          ($AnacoTIME[$i],$AnacoNAME[$i],$AnacoHOST[$i],$AnacoACCS[$i],$AnacoIP[$i],$AnacoOS[$i],$AnacoMODE[$i],$AnacoCO_ALL[$i],$AnacoCO_WR[$i]) = split( /{}/ , $Anaco[$i], 9);
          
	}
	$AcMaxSe = $i;
#	sjis("$AcMaxSe個のログが在ります。<br>");
	close(F);
}
#------------------------------------------------------------------#
#アクセス解析  PC表示                                              #
#------------------------------------------------------------------#
sub fileReadSysAnacoPrintPC{
	
	sjis("<BR><a href='stdbbs3_1.cgi?SUBMIT=A戻る'>戻る</a><br>");
	sjis("<TABLE><TBODY><TR><TD bgcolor=$haikeiCeH>アクセス日時</TD><TD bgcolor=$haikeiCeH>名前</TD><TD bgcolor=$haikeiCeH>ホスト名／アクセス元</TD><TD bgcolor=$haikeiCeH>ＩＰアドレス</TD><td bgcolor=$haikeiCeH>閲覧環境</td><TD bgcolor=$haikeiCeH>モード</TD><td bgcolor=$haikeiCeH>総/書</td></TR>");

	for($i=0 ; $i < $AcMax-1 ; $i++ ){

          if($AnacoTIME[$i] eq ""){
#			sjis("$i個目の処理で空白発見<br>");
			last;
		}
          
	sjis("<TR><TD><b>$AnacoTIME[$i]</b></TD> <TD><font color=$haikeifcb>$AnacoNAME[$i]</font></TD> <TD><font color=$haikeifca>$AnacoHOST[$i]</font><br>$AnacoACCS[$i]</TD><TD><i>$AnacoIP[$i]</i></TD><td>$AnacoOS[$i]</td><td><font color=$haikeifcc>$AnacoMODE[$i]</font></td><td>$AnacoCO_ALL[$i]<BR>$AnacoCO_WR[$i]</td></TR>");

	}
	$AcMaxSe = $i;

	
	sjis("</TBODY></TABLE>");
	sjis("<br>$AcMaxSe個のログがあります。<br>");
}
#------------------------------------------------------------------#
#アクセス解析  携帯表示                                            #
#------------------------------------------------------------------#
sub fileReadSysAnacoPrinti{
	
	sjis("<BR><a href='stdbbs3_1.cgi?SUBMIT=A_k戻る'>戻る</a><hr>");
#	sjis("<TABLE><TBODY><TR><TD bgcolor=$haikeiCeH>アクセス日時</TD><TD bgcolor=$haikeiCeH>名前</TD><TD bgcolor=$haikeiCeH>ホスト名／アクセス元</TD><TD bgcolor=$haikeiCeH>ＩＰアドレス</TD><td bgcolor=$haikeiCeH>閲覧環境</td><TD bgcolor=$haikeiCeH>モード</TD><td bgcolor=$haikeiCeH>総/書</td></TR>");

	for($i=0 ; $i < $max_accs_kaiseki_i ; $i++ ){

          if($AnacoTIME[$i] eq ""){
#			sjis("$i個目の処理で空白発見<br>");
			last;
		}
          
	sjis("$AnacoTIME[$i]<br><font color=$haikeifcd>$AnacoNAME[$i]</FONT><br><font color=$haikeifca>$AnacoHOST[$i]<br>$AnacoIP[$i]<br>$AnacoOS[$i]</FONT><br><font color=$haikeifcc>$AnacoMODE[$i]</font><br>$AnacoCO_ALL[$i]/$AnacoCO_WR[$i]<HR>");

	}
	$AcMaxSe = $i;

	
	#sjis("</TBODY></TABLE>");
	sjis("<br>携帯モードなので最新$max_accs_kaiseki_i個のみ表示しました。<br>");
}
#------------------------------------------#
#アクセス解析　ファイル操作＝＝書き込み#
#------------------------------------------#
sub fileWriterSysAnaco{
  if($use_accs_kaiseki != 2){
	lock();

	open(W,">$todayfile") || die tempCannot();
	@_ = jcode::sjis(@_);
	print W "@_\n";	
	
	for( $i = 0 ; $i < $AcMaxSe ; $i++ ){
		if($Anaco[$i] ne ""){
			print W "$Anaco[$i]\n";
		}
	}


	close(W);

	unlock();
  }
}

#------------------------------------------#
#管理人宛　ファイル操作＝＝追記書き込み    #
#------------------------------------------#
sub fileWriterSysAdmin{

	if($useAdminMes != 1){
		sjis("管理人宛メッセ機能は使用されていません。");
		exit;
	}

	lock();

	open(W,">>$adminfile") || die tempCannot();
	@_ = jcode::sjis(@_);
	print W "@_\n";	

	close(W);

	unlock();

}
#------------------------------------------#
#管理人宛　ファイル操作＝＝中身削除        #
#------------------------------------------#
sub fileWriterSysAdminDEL{

	lock();

	open(W,">$adminfile") || die tempCannot();

	close(W);

	unlock();

}
#------------------------------------------#
#管理人宛　ファイル操作＝＝読み込み表示    #
#------------------------------------------#
sub fileReaderSysAdmin{

	open(F,"$adminfile") || die tempCannot();

	for($i=0;;$i++){
		$SysAdmin=<F>;
		chomp($SysAdmin);
		
		sjis("$SysAdmin");

		if($SysAdmin eq ""){
			if($i == 0){ sjis("新着メッセージは有りません。<br>");}
			sjis("<Br><CENTER><FONT COLOR=$haikeifcb>$i件表示しました。</FONT></CENTER><br>");
			last;
		}

	}
	close(W);

}
#------------------------------------------#
#管理人宛　ファイル操作＝＝読み込み表示    #
#------------------------------------------#
sub fileChkSysAdmin{

	my($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, $atime,$mtime,$ctime,$blksize,$blocks)	= stat($adminfile);

	if($size > 0){
		sjis("＜<font color=$haikeifcc>メッセージ<b>有</b>($sizeバイト)</font>＞");
	}else{
		sjis("＜<font color=$haikeifcd>メッセージ無し</font>＞");
	}

}
#------------------------------------------#
#カウンター　ファイル操作＝＝　上書き      #
#------------------------------------------#
sub fileWriterSysLogco{

lock();

open(W,">$cofile") || die tempCannot();

print W "$coall\n";
print W "$cotod\n";
print W "$coyes\n";
print W "$day\n";
print W "$ipA\n";
print W "$osA\n";

close(W);

unlock();
}
#------------------------------------------#
#カウンター　ファイル処理＝＝＝　読み込み  #
#------------------------------------------#
sub fileReadSysLogco{


open(F,"$cofile") || die tempCannot();

$coall =<F>;
chomp($coall);
$cotod =<F>;
chomp($cotod);
$coyes =<F>;
chomp($coyes);
$day =<F>;
chomp($day);
$ipA_co = <F>;
chomp($ipA_co);
$osA_co = <F>;
chomp($osA_co);
close(F);
}
#-----------------#
#できないとき     #
#-----------------#
sub cannot{
	unlock();
    out(<<END);
    <img src="cpu.gif">
<h1><font color=red>隊長！！　作戦失敗です！</font></h1><br>
理由は$!<br>
END
}
#----------------------------------------#
#  sjis形式でプリント表示する            #
#----------------------------------------#
sub sjis{
    @_ = jcode::sjis(@_);
    print(@_);

}
#---------------------------------------#
# 書き込み完了時の表示                  #
#    デザイン変更可                     #
#---------------------------------------#
sub rewrite{
    out(<<END);
<br>
<form action="stdbbs3_1.cgi"method="post">
<input type="submit"name="SUBMIT"value="戻る">
</form>

END

}
#----------------------------#
# 次のページを表示           #
#----------------------------#
sub nextpage{
#PC表示用
if($printmode == 0){
    out(<<END);
    <center>
	<form action="stdbbs3_1.cgi"method="post">
END
  if($modo eq "続き"){
          out(<<END);
        <input type="submit"name="SUBMIT"value="前へ">
        <input type=text name="START_BACK" value="$istart_back">/
        <input type=hidden name=START_NOW value=$istart_now>
END
  }elsif($istart_back eq ""){
    #sjis("<input type=submit name=SUBMIT value=前へ>/");
    sjis("<input type=submit name=SUBMIT value=最新より表示>/");
  }else{
    sjis("<input type=hidden name=START_BACK value=$istart_back>");
  }
  out(<<END);
  <input type=text name="START" value="$j">
    <input type=hidden name="START_NO" value="$istart_no">
    <input type=hidden name="START_NO_START" value="$istart_no_start">
    <input type="submit"name="SUBMIT"value="続き">
    </form>
    </center>
END
}elsif($printmode == 1){
#携帯表示用

    out(<<END);
    <center>
	<form action="stdbbs3_1.cgi"method="post">
END
  if($modo eq "続き"){
          out(<<END);
        <input type="submit"name="SUBMIT"value="前へ">
		<input type=hidden name="START_BACK" value="$istart_back">
        <input type=hidden name=START_NOW value=$istart_now>
END
  }elsif($istart_back eq ""){
    #sjis("<input type=submit name=SUBMIT value=前へ>/");
    sjis("<input type=submit name=SUBMIT value=最新より表示>/");
  }else{
    sjis("<input type=hidden name=START_BACK value=$istart_back>");
  }
  out(<<END);
	<input type=hidden name="START" value="$j">
    <input type=hidden name="START_NO" value="$istart_no">
    <input type=hidden name="START_NO_START" value="$istart_no_start">
    <input type="submit"name="SUBMIT"value="続き">
    </form>
    </center>
END

}else{
	sjis("次ページ表示エラー<br>");
}
}
#-----------------------------#
# 入力された値の検査          #
#-----------------------------#
sub checkIn{
  
	FUSEItagu($tiA);
	FUSEIkaigyou($tiA);	#改行 
	FUSEItagu($naA);
	FUSEItxt($naA);
	FUSEIkaigyou($naA);	#改行 
        $moji = $naA;
        FUSEIkakko($naA_sub);
#       sjis("<hr>$naA_sub<br>");
#       sjis("$naA<hr>");
        FUSEItxt($naA_sub);
        FUSEIkaigyou($naA_sub);	#改行
        $moji = $naA_sub;

  #名前の処理（自動ネームは禁止）
  if($useCookieAutoName == 1){
    if($naA_sub =~ /^名無し\(NO\.\d.*\d\)$/){
      sjis("<br><font color=$haikeifca>ERROR ：名無し(NO.〜)を名前に使用することは禁止されています。<br>※これは自動名前登録機能による制限です。どうしてもこの名前を使いたい場合は掲示板の管理人にご相談ください。<br>");
      exit;
    }
  }
	FUSEItagu($emA);
	FUSEIkaigyou($emA);	#改行
	FUSEItagu($hpA);
	FUSEIkaigyou($hpA);	#改行
    FUSEItagu($osA);
    FUSEIkaigyou($osA);	#改行
  
	if($USE_TAGU == 0){
		FUSEItagu($txtA);
	}
  	FUSEItxt($txtA);
	$txtA = $moji;
        unAUTOlink($txtA);
        $txtA = $moji;
        AUTOlink($txtA);
        $txtA = $moji;
  
        FUSEIall($delA);
        FUSEIkaigyou($delA);	#改行
        #DEL-KEYの暗号化
        $delAc = $delA;
        $delA = crypt($delA, $salt);
  
        FUSEIkakko($upfile);
        FUSEIkaigyou($upfile);	#改行

}
#-----------------------------#
#  投稿番号が最新かどうか     #
#-----------------------------#
sub bangouchk{
	if($bangou != $rebangou){
	sjis("<font color=$haikeifc ><br>誰かが先に投稿してしまったようです。<br><hr>内容の変化を防ぐため、この状態での投稿は禁止されています。<br>投稿しなおしてください。<br><br>!注意！<br><br>ブラウザの戻るを使用は無意味です。</font>");
	rewrite();
	tempFooter();
	exit();
}
}
#------------------#
#  クッキーの発行  #
#------------------#
sub set_cookie {
	
	$naAB=url_enc($naA);
	$emAB=url_enc($emA);
	$hpAB=url_enc($hpA);
	$delAB=url_enc($delAc);
	$cgAB=url_enc($cgA);
	$iro1AB=url_enc($iro1A);
	$iro2AB=url_enc($iro2A);
	$kaisuu1AB =url_enc($kaisuu1A);
	$kaisuu2AB =url_enc($kaisuu2A);
	$accstimeAB = url_enc($accstimeA);
	
	# クッキーは120日間有効
	local($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime(time+120*24*60*60);
	@month=('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
	@week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
	$gmt = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT",$week[$wday],$mday,$month[$mon],$year+1900,$hour,$min,$sec);
	$std_cookie="$naAB<>$emAB<>$hpAB<>$delAB<>$cgAB<>$iro1AB<>$iro2AB<>$kaisuu1AB<>$kaisuu2AB<>$accstimeAB";

	if($path eq ""){
		print"Set-Cookie: STD_BBS=$std_cookie; expires=$gmt \n";
	}else{
		print"Set-Cookie: STD_BBS=$std_cookie; expires=$gmt; path=$path \n";
	}


  if($modo ne '編集確定'){
	#ゲームモード
	if($stdmodeY==1){		                
		
		$visitsR=$visits+$visitsR;

                classBBS() ;
          
                $class_sub = "{}$class";
                if($naA ne ""){
                	$naA=$naA.$class_sub;
          		}
		set_cookieG();
	}
  }

}

#------------------#
#  クッキーの削除  #
#------------------#
sub del_cookie {
	
	if($path eq ""){
		print"Set-Cookie: STD_BBS=del; expires=Fri, 31-Dec-1999 23:59:59 GMT \n";
	}else{
		print"Set-Cookie: STD_BBS=del; expires=Fri, 31-Dec-1999 23:59:59 GMT ; path=$path \n";
	}
	if($path eq ""){
		print"Set-Cookie: STDCLASS=del; expires=Fri, 31-Dec-1999 23:59:59 GMT \n";
	}else{
		print"Set-Cookie: STDCLASS=del; expires=Fri, 31-Dec-1999 23:59:59 GMT ; path=$path \n";
	}
  
}

#------------------#
#  クッキーを取得  #
#------------------#
sub get_cookie {

	local($key, $val, *ck);

	$ck = $ENV{'HTTP_COOKIE'};
	
	foreach (split(/;/, $ck)) {
		($key, $val) = split(/=/);
		$key =~ s/\s//g;
		$ck{$key} = $val;
	}
	@ck = split(/<>/, $ck{'STD_BBS'});

#	foreach(@ck){
#		printf"$_<br>";
#	}

	($name_c,$mail_c,$hp_c,$del_c,$cg_c,$iro1_c,$iro2_c,$kaisuu1_c,$kaisuu2_c,$accstime_c)= @ck;

	$name_c=url_dc($name_c);
	$mail_c=url_dc($mail_c);
	$hp_c=url_dc($hp_c);
	$del_c=url_dc($del_c);
	$cg_c=url_dc($cg_c);
	$iro1_c=url_dc($iro1_c);
	$iro2_c=url_dc($iro2_c);
	$kaisuu1_c=url_dc($kaisuu1_c);
	$kaisuu2_c=url_dc($kaisuu2_c);
	$accstime_c=url_dc($accstime_c);

    if($stdmodeY==1){
       get_cookieG();
    }
#	print "Content-type: text/html\n\n";


}
#------------------------------#
#  ゲームモードクッキーの発行  #
#------------------------------#
sub set_cookieG{
	
	$visitsR = url_enc($visitsR);
	$class = url_enc($class);
	
	# クッキーは120日間有効
	local($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime(time+120*24*60*60);
	@month=('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
	@week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
	$gmt = sprintf("%s, %02d-%s-%04d %02d:%02d:%02d GMT",$week[$wday],$mday,$month[$mon],$year+1900,$hour,$min,$sec);
	$std_cookie="name<>$naAB,exp<>$visitsR,class<>$class";

	if($path eq ""){
		print"Set-Cookie: STDCLASS=$std_cookie ; expires=$gmt \n";
	}else{
		print"Set-Cookie: STDCLASS=$std_cookie ; expires=$gmt ; path=$path  \n";
	}
}

#------------------------------#
#  ゲームモードクッキーを取得  #
#------------------------------#
sub get_cookieG{
	local($key, $no_a, @cookie);
	@cookie = split(/;/, $ENV{'HTTP_COOKIE'});
	foreach (@cookie) {
		($key,$no_a) = split(/=/);
		$key =~ s/\s//g;
		$GET{$key} = $no_a;
	}
	@cookie = split(/,/, $GET{'STDCLASS'});
	foreach (@cookie) {
		($key,$no_a) = split(/<>/);
		$std_cookie{$key} = $no_a;
		
	}
	$name_class  = $std_cookie{'name'};
	$visitsR  = $std_cookie{'exp'};
	$class = $std_cookie{'class'};
	
	$name_class = url_dc($name_class);
	$visitsR = url_dc($visitsR);
	$class = url_dc($class);
}

#-----------------#
#  URLエンコード  #
#-----------------#
sub url_enc {
	local($_) = @_;

	s/(\W)/'%' . unpack('H2', $1)/eg;
	s/\s/+/g;
	$_;
}

#-----------------#
#  URLデコード  #
#-----------------#
sub url_dc {
	local($_) = @_;

$_ =~ s/\+/ /g;
$_ =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;
return($_);

}
#--------------#
#  時間を取得  #
#--------------#
sub get_time {
  $ENV{'TZ'} = "JST-9";
  $times = time;
  ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime($times);
  @week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
  
  # 日時のフォーマット
  $timeA =sprintf("%04d/%02d/%02d(%s) %02d:%02d.%02d",$year+1900,$mon+1,$mday,$week[$wday],$hour,$min,$sec);
  $timeNo =sprintf("%04d-%02d-%02d-%s-%02d-%02d-%02d",$year+1900,$mon+1,$mday,$week[$wday],$hour,$min,$sec);
}


#----------------------------------------------#
# システムの近況処理                           #
#----------------------------------------------#
sub syslog{
 fileReadSysLog();

 $syslogkazu = @syslog;
 $syslogkazu = $syslogkazu -1;

 for($i = $syslogkazu ; $i >= 0; $i--){
   $syslog[$i]=$syslog[$i-1];
 }
 $MeseageLog ="@_";

 $syslog[0]=$MeseageLog;


 fileWriterSysLog();
}

#----------------------------------------------#
# ファイル操作＝＝sys-log　上書き
#----------------------------------------------#

sub fileWriterSysLog{

lock();

open(W,">$sysfile") || die tempCannot2();

for($i = 0 ; $i < @syslog; $i++){
print W "$syslog[$i]\n";
}
close(W);

unlock();
}

#----------------------------------------------#
#ファイル処理＝＝＝sys-log　読み込み
#----------------------------------------------#
sub fileReadSysLog{

@syslog=(" "," "," "," ");

open(F,"$sysfile") || die tempCannot();
for($i = 0 ; $i < @syslog; $i++){
$syslog[$i] =<F>;
chomp($syslog[$i]);
}

close(F);
}
#----------------------------------------------#
#ファイル処理＝＝＝sys-log　読み込み表示
#----------------------------------------------#
sub fileReadSysLogRGB{

@syslog=(" "," "," "," ");

open(F,"$sysfile") || die tempCannot();
for($i = 0 ; $i < @syslog; $i++){
$syslog[$i] =<F>;
chomp($syslog[$i]);
sjis($syslog[$i] );
}

close(F);
}

#----------------------------------------------#
#	スレッドタイトルの表示
#
#----------------------------------------------#
sub sureTitlePrint{

	for(my($it)=0 ; $it < $itmax ;$it++){
		if($logbg2[$it] == 0){
			if($logti[$it] ne ""){
				sjis("<font color=$haikeifca >▽</font>　<a href='stdbbs3_1.cgi?SUBMIT=続き&&START=$it'>$logti[$it]</a> by <font color=$haikeifcb >$logna[$it]</font><br>");
			}
		}else{
			$itmax++;
		}
	}
}

#---------------------------------------------------------------------#
# 不正な入力の検出                                                    #
#---------------------------------------------------------------------#
#数値及び半角英数字にしたい場合(パスワード）
sub FUSEIall{
  my($moji)="@_";	
	
  if($moji =~ /\W/){
    sjis("<font color=red>エラー</font><br><font color=$haikeifc >不正な値が入力されました。<hr>");
    sjis("原因：$moji<br>パスワードは半角英数字のみ有効です。<hr>");
    sjis("<hr>ブラウザの「戻る」を利用して入力しなおしてください。</font>");	
    exit();
  }
}

#タグの使用を不許可
sub FUSEItagu{
	my($moji)="@_";	
	
	if($moji =~ /[<>]/){
sjis("<font color=red>エラー</font><br><font color=$haikeifc >不正な値が入力されました。<hr>");
sjis("原因：$moji<br>");
sjis("<hr>ブラウザの「戻る」を利用して入力しなおしてください。<br>ヒント：タグの使用は認められていません。<br>!注意!<br>半角の<>はタグとみなされます。</font>");	
exit();
	}
}

#{}の使用を不許可
sub FUSEIkakko{
	my($moji)="@_";	
	
  if($moji =~ /{}/){
sjis("<font color=red>エラー</font><br><font color=$haikeifc >不正な値が入力されました。<hr>");
sjis("原因：$moji<br>");
sjis("<hr>ブラウザの「戻る」を利用して入力しなおしてください。<br>ヒント：{}の使用は認められていません。<br></font>");	
exit();
	}
}

#改行の使用を許可しない
sub FUSEIkaigyou{
	my($moji)="@_";	
	if($moji =~ /\r\n/ || $moji =~ /\r|\n/ || $moji =~ /<br>/){
	sjis("<font color=red>エラー</font><br><font color=$haikeifc >不正な値が入力されました。<hr>");
	sjis("原因：$moji<br>");
	sjis("<hr>ブラウザの「戻る」を利用して入力しなおしてください。<br>ヒント：コメント以外で改行の使用は認められていません。<br></font>");	
	exit();
	}
}

#数値以外を不許可
sub FUSEIkazu{
	my($moji)="@_";	
	
	if($moji =~ /\D/){
sjis("<font color=red>エラー</font><br><font color=$haikeifc >不正な値が入力されました。<hr>");
sjis("原因：$moji<br>");
sjis("<hr>ブラウザの「戻る」を利用して入力しなおしてください。<br>ヒント：削除時のナンバー入力は半角数値で入力してください。</font>");	
exit();
	}
}
#コメント欄での不正処理+改行処理
sub FUSEItxt{
	$moji="@_";
	if($moji eq ""){
          if($modo eq '送信'||$modo eq '編集確定'){
		sjis("<font color=red>エラー</font><br><font color=$haikeifc >名前または本文が空白です。<hr>");
		exit();
          }
	}
	if(length($moji) > $lengthtxt){
		sjis("<font color=red>エラー</font><br><font color=$haikeifc >不正な値が入力されました。<hr>");
		sjis("原因：$moji<br>");
		sjis("<hr>ブラウザの「戻る」を利用して入力しなおしてください。<br>ヒント：投稿された文字列が長すぎます！$lengthtxt以下になるようにしてください。</font>");	
		exit();
	}
	if($kaigyou == 0){
	$moji =~ s/\r\n/<br>/g;
	$moji =~ s/\r|\n/<br>/g;
	}else{
	$moji =~ s/\r\n//g;
	$moji =~ s/\r|\n//g;
	}
}
#URLがあれば自動でリンクする
sub AUTOlink{
  $moji="@_";
  if($useAUTOlink == 1){
     if (($moji =~ /<img/i)||($moji =~ /< img/i) ){
       sjis("<br>報告→imgタグが存在するので自動リンク機能は使用しませんでした。<br>");
     }else{
        $moji =~ s/(http:\/\/[a-zA-Z0-9\.\/\-+#_?~&%=^\@:;]+)/<A HREF="$1"target="_blank">$1<\/A>/ig;
     }
  }
}

#URLのリンクを解除する。
sub unAUTOlink{
  $moji="@_";
  $moji =~ s/(<A HREF=")(http:\/\/[a-zA-Z0-9\.\/\-+#_?~&%=^\@:;]+)("target="_blank">)(http:\/\/[a-zA-Z0-9\.\/\-+#_?~&%=^\@:;]+)(<\/A>)/$2/ig;
}

#コメント欄での不正処理+改行処理の反対処理
sub FUSEItxtA{
	$moji="@_";	
	if(length($moji) > $lengthtxt){
		sjis("<font color=red>エラー</font><br><font color=$haikeifc >不正な値が入力されました。<hr>");
		sjis("原因：$moji<br>");
		sjis("<hr>ブラウザの「戻る」を利用して入力しなおしてください。<br>ヒント：投稿された文字列が長すぎます！$lengthtxt以下になるようにしてください。</font>");	
		exit();
	}
	$moji =~ s/<br>/\n/g;
#	sjis("改行コードの変換終了 $moji");
}

sub contpc{
    out(<<END);
<CENTER><TABLE border='0' width='95%' bgcolor='$Color_Waku_ctrl'><TBODY><TR><TD bgcolor='$Color_Waku_Naka_ctrl'>

 <br><center>
<font color="$haikeifc">
<form action="stdbbs3_1.cgi"method="post">
<input type="text"name="KENSAKU"value="$kensakucode">
<input type="submit"name="SUBMIT"value="検索">　｜　
No.<input type="text"name="NO1"value=""size="3">
-<input type="text"name="NO2"value=""size="3">　
DEL-KEY：<input type="password"name="PASS"value="$del_c" size="4"><BR>
<input type="submit"name="SUBMIT"value="編集">
<input type="submit"name="SUBMIT"value="削除">
　　
<input type="submit"name="SUBMIT"value="全表示">
END
  
  if($use_accs_kaiseki == 0){
    sjis("<input type='submit'name='SUBMIT'value='アクセス解析'>");
  }
  
  out(<<END);
 <input type="submit"name="SUBMIT"value="使い方">
<input type="submit"name="SUBMIT"value="更新">
</form>
</font>
<br></center>
</td></tr><tbody></table></center>
END
}
#デバッグモード
sub debug{
if($debug == 1){
sjis("<br><font color=$haikeifc >デバッグモード→@_</font><br>");
}	
}

#-----------------------------------------------------------------------#
#メーリングリスト関係                                                   #
#-----------------------------------------------------------------------#
#-----------------------------------#
#ファイル処理＝＝＝アドレス一覧
#-----------------------------------#
sub fileReadSysLogIchiranmail{

open(F,"$logfilemail") || die sjis("読み込みエラー");
$adressK = 0;
#sjis("読み込み中");
for(;;){
$templog =<F>;
sjis("$templog <br>");
if($templog !~ /\@/ ){
	sjis("<hr><font color=$haikeifcb><b>▼　お知らせメール機能 ▼</b><br>　$adressK 個のアドレスがあります。<br><br></font>");
	return();
}
$adressK = $adressK +1;
#sjis(".");
}

close(F);
}
#-----------------------------------#
#ファイル処理＝＝＝アドレスの数
#-----------------------------------#
sub fileReadSysLogKAZUmail{

open(F,"$logfilemail") || die sjis("読み込みエラー");
$adressK = 0;
#sjis("読み込み中");
for(;;){
$templog =<F>;
chomp($templog);
	if($modo ne '解除'){
	if($templog ne ''){
	#sjis("登録済データ：$templog<br>");
	if($templog eq $new_adress){sjis("$new_adressはすでに登録されています。<br><br>発見された登録済データ：$templog<br>");exit();}
	} }


if($templog !~ /\@/ ){
	sjis("<br><font color=$haikeifcb><b>▼　お知らせメール機能 ▼</b><br>　現在、 $adressK アドレスに配信されています。<br><br></font><Hr>");
	return();
}
$adressK = $adressK +1;
#sjis(".");
}

close(F);
}

#------------------------------------#
#ファイル操作＝＝sys-log　上書き
#------------------------------------#
sub fileWriterSysLogmail{

lock();

open(W,">$logfilemail") || die sjis("書き込みエラー");

for(my($it)=0 ; $it < $adressK ;$it++){
	chomp($syslogMail[$it]);
print W "$syslogMail[$it]";
if($syslogMail[$it] =~ /\@/){
	print W "\n";
}

}

print W "$new_adress\n";
sjis("貴方のアドレス「$new_adress」は正しく登録されました。<br>");

close(W);

unlock();
}

#------------------------------------#
#ファイル操作＝＝sys-log　上書き(削除)
#------------------------------------#
sub fileWriterSysLogdelmail{

lock();

open(W,">$logfilemail") || die sjis("書き込みエラー");

for(my($it)=0 ; $it < $adressK ;$it++){
	chomp($syslogMail[$it]);
print W "$syslogMail[$it]";
if($syslogMail[$it] =~ /\@/){
	print W "\n";
}
}


close(W);

unlock();
}

#-----------------------------------#
#ファイル処理＝＝＝sys-log　読み込み
#-----------------------------------#
sub fileReadSysLogmail{

open(F,"$logfilemail") || die sjis("読み込みエラー");
for(my($it)=0 ; $it < $adressK ;$it++){
$syslogMail[$it] =<F>;
chomp($syslogMail[$it]);
}
close(F);
#sjis("ファイルの読み込み完了<br>");
}
#-----------------------------------#
# 指定したアドレスを削除する
#-----------------------------------#
sub delete_admail{
for(my($it)=0 ; $it < $adressK ;$it++){
	if($syslogMail[$it] eq $new_adress){
		sjis("<br>$new_adressは削除されました。<br>");
			$syslogMail[$it] = '';

	}

}

}




#-----------------------------------------------------------------------#
#モードにより変更                                                       #
#-----------------------------------------------------------------------#

#記事の表示
sub read10{
if ($printmode == 0){
	read10pc();
}elsif($printmode == 1){
	read10i();
}
}

#記事の表示
sub read10t{
if ($printmode == 0){
	sjis("作成中。ツリー表示はまだ実装されていません。");
	read10tpc();
}elsif($printmode == 1){
	sjis("作成中。ツリー表示はまだ実装されていません。");
	read10ti();
}
}

#返信元記事の表示
sub readoya{
if ($printmode == 0){
readoyapc();
}
  #携帯電話では表示しない。
}

#送信フォーム
sub sendF{
if ($printmode == 0){
sendFpc();
}elsif($printmode == 1){
sendFi();
}
}
#コントロール
sub cont{
if ($printmode == 0){
contpc();
}elsif($printmode == 1){
conti();
}	
}
#検索実行表示
sub kensaku{
	if ($printmode == 0){
		kensakupc();
	}elsif($printmode == 1){
		kensakui();
	}
}
#編集実行表示
sub hensyu{
if ($printmode == 0){
hensyupc();
}	
  #携帯電話では表示しない。
}

#アクセス解析表示
sub fileReadSysAnacoPrint{
  if ($printmode == 0){
    fileReadSysAnacoPrintPC();
  }elsif($printmode == 1){
    fileReadSysAnacoPrinti();
  }
}

#ヘッダー表示
sub tempHeader{
  if ($printmode == 0){
    tempHeaderpc();
  }elsif($printmode == 1){
    tempHeaderi();
  }
}

#タイトルの表示
sub title{
if ($printmode == 0){	
sjis("<span><font color = '$HtitleCoPc' size = 5 >$Htitle</font><font size=1>　Powered by $ver</font></span><hr>");

if($modo eq ''||$modo eq '更新'){
	#管理人宛メッセ機能を使う場合
	if($useAdminMes == 1){
		sjis("<div align=right><a href=stdbbs3_1.cgi?SUBMIT=管理人宛>■　$AdminName宛にメッセージを送信</a>");
		sjis("　　<a href=stdbbs3_1.cgi?SUBMIT=管理人室>□　郵便箱</a>");
		fileChkSysAdmin();
		sjis("　</div>");
		#↓日記モードじゃなかったら
		if($MODE_RUN != 1){
			sjis("<hr>");
		}
	}
}
}elsif($printmode == 1){
sjis("<font color = '$HtitleCoi'>$Htitle</font><hr>");
}elsif($printmode == 3){
sjis("<font color = '$HtitleCoi'>$Htitle</font><hr>");
	
}
}

sub kisyusentaku{
	
#回覧している機種の判別---------------------------
@user_agent = split(/\//,$ENV{'HTTP_USER_AGENT'});
  $printmode_sub =0;
if ($user_agent[0] =~ /DoCoMo/) {
  #i-mode系
  $printmode= 1;
  $maxread = $maxreadi;
} elsif ($user_agent[0] =~ /J-PHONE/) {
  #J-SKY系
  $printmode= 1;
  $maxread = $maxreadi;
} elsif ($user_agent[0] =~ /L-mode/) {
  #L-mode系
  $printmode= 1;
  $maxread = $maxreadi;
} elsif ($user_agent[0] =~ /UP.Browser/) {
  #EZweb系
  $printmode= 1;
  $maxread = $maxreadi;
} elsif ($user_agent[0] =~ /ASTEL/) {
  #アステル系
  $printmode= 1;
  $maxread = $maxreadi;
} elsif ($user_agent[1] =~ /DDIPOCKET/) {
  #H"系
  $printmode= 1;
  $maxread = $maxreadi;
} elsif ($user_agent[0] =~ /sharp pda browser/i) {
  #H"系
  $printmode= 1;
  $printmode_sub= 1;
  $maxread = $maxreadi;
} elsif ($user_agent[0] =~ /DDIPOCKET/i) {
  #H"系
  $printmode= 1;
  $printmode_sub= 1;
  $maxread = $maxreadi;  
} else {
  #PC系ブラウザ
  $printmode= 0;
}


}
#-----------------------------------------------------


#----------------------------------------------------------------------------------------#
#		i-mode 用 / J-Phone用の表示                                                      #
#----------------------------------------------------------------------------------------#
# ヘッダ
sub tempHeaderi {
    out(<<END);

<HTML lang="ja-JP">
<HEAD>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<TITLE>
$Htitle
</TITLE>
</HEAD>
<BODY $htmlBodyi>


END
}

#----------------------------------------#
#内容を表示する
#----------------------------------------#
sub read10i{
	if($MODE_RUN != 1){
		sjis("<form action='stdbbs3_1.cgi'method='post'><input type='submit'name='SUBMIT'value='新規投稿'></form>");
	}else{
		#日記用動作
	}
	sjis("<a href=stdbbs3_1.cgi?SUBMIT=近況>近況のみ表示する。</a>");	
	if($usemailA == 1){
		sjis("<hr>");
		sjis("<a href=stdbbs3_1.cgi?SUBMIT=メール>お知らせメール機能</a>");	
	}
	$js = 0;
	if($istart != 0){
	sjis("$istart個目の書き込みから表示します");
	}
  for($j=$istart ; $js < $maxread ;$j++){

    if($logbg[$j] eq""){
		cont();
		tempFooter();
		exit();
		}else{
		
if($logbg2[$j] == 0){

if($j != $istart){
}
	print("<hr>");
	sjis("<b><font color='#$logiro1[$j]'>$logti[$j]</font></b>　No.$logbg[$j]-$logbg2[$j]<br>");

	if($MODE_RUN != 1){	
		sjis("<font color=$Color_Toukou_Name_Keitai >投稿者　$logna[$j]</font><br><font color=$Color_Toukou_Time>$logtime[$j]</font><br><br>");
	}else{
		sjis("<font color=$Color_Toukou_Time>$logtime[$j]</font><br><br>");
	}
	
	sjis("<font color=#$logiro2[$j]>$logtxt[$j]</font>");
	print("<br>");
        if($logfileup[$j] ne ""){
              sjis("<br>DL→<a href=\"$UpDir\/$logfileup[$j]\">添付ファイル有り</a><br>");
        }

	sjis("<div align ='right'><form action='stdbbs3_1.cgi'method='post'>
	<input type='hidden'name='OYA'value='$logbg[$j]'>
	<input type='submit'name='SUBMIT'value='返信'>
	</form></div><hr>");


}else{
sjis("No.$logbg[$j]に対する返信<br>");

  sjis("<b><font color='#$logiro1[$j]'>$logti[$j]</font></b>　No.$logbg[$j]-$logbg2[$j]<br>");
  sjis("<font color=$Color_Toukou_Name_Keitai >投稿者　$logna[$j]</font><br><font color=$Color_Toukou_Time>$logtime[$j]</font><br><br>");
  sjis("<font color=#$logiro2[$j]>$logtxt[$j]</font><br>");
  if($logfileup[$j] ne ""){
    sjis("<br>DL→<a href=\"$UpDir\/$logfileup[$j]\">添付ファイル有り</a><br>");
  }
  
  sjis("<hr>");
}
if($logbg[$j] != $logbg[$j+1]){
	$js=$js+1;
}

}


  }
sjis ("<font color=$haikeifc >　$j個の書き込みを表示しましたが、まだ続きがあります。</font>");
#cont();
}

#-------------------------------------------------------------------# 
# 送信フォーム(携帯用）                                             #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
#   out(<<END);　〜　ENDの間のみ通常のHTML表記ができます。          #
#   それ以外の部分ではsjis("ＨＴＭＬ文章");とすることでデザインの   #
#   　変更が容易にできますよ（＾＾）                                #
#-------------------------------------------------------------------#
sub sendFi{
	print("<form method='post' action='./stdbbs3_1.cgi'>");
	if($type == 1){
		print("<input type='hidden'name='OYA'value='$oya'>");
		print("<input type='hidden'name='TYPE'value='$type'>");
	}
	
    out(<<END);
[NAME]<br>
<input type=text name=NAME value="" ><br>
<input type=hidden name=MAIL value="" ><br>
[SUBJECT]<br>
<input type=text name=SUBJECT value="$restitle2"><br>
<input type=hidden name=BANGOU value="$bangou"><br>
[COMMENT]<br>
<textarea rows=2 name=TEXT ></textarea>
<input type=hidden size="50" name=URL value="http://" ><br>
END

if($printmode_sub == 0 ){
  sjis("<input type=hidden name=CG value=keitai.png><br>");
}elsif($printmode_sub == 1 ){
  sjis("<input type=hidden name=CG value=mobile.png><br>");
}

    out(<<END);
[DEL-KEY]<br>
<input type=password name=DEL maxlength=8 value="" >
<br>

END
#メール機能ON-OFFによる表示
if($type == 1){
	
	if($usemailA == 1){
		sjis("<br>[OPTION]<br><select name=MAILA_ON_OFF><option value='1' >メール配信ＯＮ<option value='0' SELECTED>メール配信ＯＦＦ</select><br>");
		
		if($MODE_RUN != 1){
			sjis("<select name=AGESAGE><option value='1' SELECTED >スレを上げる<option value='0'>スレを上げない</select><br>");
		}else{
			sjis("<select name=AGESAGE1><option value='0' SELECTED >スレを上げない</select><br>");
		}
	}else{
		if($MODE_RUN != 1){
			sjis("<select name=AGESAGE><option value='1' SELECTED >スレを上げる<option value='0'>スレを上げない</select><br>");
		}else{
			sjis("<select name=AGESAGE><option value='0' SELECTED >スレを上げない</select><br>");
		}
	}
	
}else{
	
	if($usemailA == 1){
		sjis("[OPTION]<br><select name=MAILA_ON_OFF ID=INPUT01><option value='1'>メール送信ＯＮ<option value='0' SELECTED >メール送信ＯＦＦ</select><br>");
	}
	
}

#追加
sjis("<br>[TITLE-COLOR]<br>");
for($i=0 ; $i < @iro_s ; $i++){
  if($iro_s[$i] eq $iro1_c){
    sjis("<input type=radio name=IRO1 value=$iro_s[$i] checked><font color=#$iro_s[$i]>■</font>");
  }else{
    sjis("<input type=radio name=IRO1 value=$iro_s[$i]><font color=#$iro_s[$i]>■</font>");
  }
}
sjis("<br>[FONT-COLOR]<br>");
for($i=0 ; $i < @iro_s ; $i++){
  if($iro_s[$i] eq $iro2_c){
    sjis("<input type=radio name=IRO2 value=$iro_s[$i] checked><font color=#$iro_s[$i]>■</font>");
  }else{
    sjis("<input type=radio name=IRO2 value=$iro_s[$i]><font color=#$iro_s[$i]>■</font>");
  }
}

sjis("<br>色設定はPCでの表示時に有効です。<br><br>");

out(<<END);

<input type=submit name=SUBMIT value="送信"><br>
<!--<input type=reset value="リセット"><br>-->
<hr><a href = "$homepageStd">掲示板に戻る</a>
</form>
END

}

#----------------------------#
# 検索、削除、更新表示       #
#----------------------------#
sub conti{
    out(<<END);
<form action="stdbbs3_1.cgi"method="post">
<input type="text"name="KENSAKU"value="$kensakucode">
<input type="submit"name="SUBMIT"value="検索"><hr>
No.<input type="text"name="NO1"value=""size="3">
-<input type="text"name="NO2"value=""size="3"><br>
DEL-KEY：<input type="password"name="PASS"value=""size="4"><br>
<input type="submit"name="SUBMIT"value="削除">
<input type="submit"name="SUBMIT"value="更新"><br>
END
  if($use_accs_kaiseki == 0){
    sjis("<input type='submit'name='SUBMIT'value='アクセス解析'>");
  }

  sjis("</form></font>");

}

#----------------------------#
# 管理モード　動作チェック   #
#----------------------------#
sub CHECK_KANRI{

  sjis("<hr>");
	sjis("動作モード：");
	if($MODE_RUN == 0){sjis("ノーマル<br>");
	}elsif($MODE_RUN == 1){sjis("日記<br>");}
	
	sjis("表示モード：");
	if($MODE_PRINT == 0){sjis("ノーマル<br>");
	}elsif($MODE_PRINT == 1){sjis("ツリー<br>");}

	sjis("改行：");
	if($kaigyou == 0){sjis("そのまま");
	}else{sjis("削除");}
	
	sjis("<br>IPの表示：");
	if($printip == 0){sjis("しない");
	}else{sjis("する");}
	
	sjis("<br>タグの使用：");
	if($USE_TAGU == 1){sjis("許可する");
	}else{sjis("許可しない");}
	
	sjis("<br>投稿ログ：");
	if($printlog == 1){sjis("表示する");
	}else{sjis("表示しない");}
	
	sjis("<br>スレッド一覧：");
	if($sureTitlePrint == 1){sjis("表示する");
	}else{sjis("表示しない");}

	sjis("<br>アイコン画像：");
	if($use_iconCG == 1){sjis("表示する");
	}else{sjis("表示しない");}

	sjis("<br>遊びモード：");
	if($stdmodeY == 1){sjis("ON");
	}else{sjis("OFF");}

	sjis("<br>メーリングリスト機能：");
	if($usemailA == 1){sjis("ON");
	}else{sjis("OFF");}

	sjis("<br>状況表示の管理：");
	if($USE_JYOUKYOU == 1){sjis("する");
	}else{sjis("しない");}

	sjis("<br>管理人宛メッセージ機能：");
	if($useAdminMes == 1){sjis("使う");
	}else{sjis("無効");}

	sjis("<br>返信時のRe:がつく対象：");
	if($restitleRe == 1){sjis("親");
	}else{sjis("直前");}
  
  sjis("<br>ファイルアップロードの許可：");
  if($useFileUp == 1){sjis("許可（$upfilesize バイト）");
  }else{sjis("不許可");}

}
#----------------------------#
# 使い方説明書               #
#----------------------------#
sub how_to_use{
	out(<<END);
	
	<P><I>STD-BBS3について</I><BR>
<BR>
<BR>
　<FONT size="+1"><B><FONT size="+2">特徴</FONT></B></FONT></P>
<HR>
<P>・<B>複数の返信ができる掲示板です。（動作選択可能）</B><BR>
<BR>
　　記事に対する返信可能数はあらかじめ決められていますので携帯端末からも安心です。<BR>
　　記事の上げ下げも自分の思うままです。<BR>
　　また、ゲーム機能による付加的な楽しみも備えています<br>
<BR>
<B>・画像等のファイルのアップロードに対応</B><BR>
<BR>
　設定されたサイズまでのファイルのアップロードに対応しています。<BR>
  画像であればそのまま表示させることも可能です。<BR>
<BR>
<B>・携帯電話等に対応</B><BR>
<BR>
　携帯電話（i-mode 1.0以降　J-sky 3.0以降　EZ-WEB html対応機以降）に対応しています。<BR>
<BR>
・<B>動作モードにより日記としての利用が可能です。（動作選択可能）</B><BR>
<BR>
　　日記として使用することが簡単です。掲示板・日記と同デザインで統一できます。<BR>
<BR>
・<B>メールでお知らせ機能（動作選択可能）</B><BR>
<BR>
　　あらかじめメールアドレスを登録している人にメールで書き込みをお知らせします。<BR>
　　書き込み時に”メール配信OFF”を選択すればメールの配信はされないので気軽に書き込むこともできます。<BR>
　　小規模なサークル・団体であればメーリングリスト兼WEBログとしても利用できます。<BR>
<BR>
・<B>スレッド一覧、書き込み順ログ（近況）表示機能（動作選択可能）</B><BR>
<BR>
　　スレッド名の一覧、書き込み順にログが作成される２つの機能により新しい書き込みが簡単に見つかります。<BR>
　　表示させる/させないは設置者の自由です。<BR>
</P>
<B>・アクセス解析</B><BR>
<BR>
　掲示板へのアクセスを記録します。一度書き込んだことのある人であれば名前も記録することができます。<br>
  またクッキー制限が有効であれば名前を登録しないと掲示板を読むことはできません。</P>
<br>
<B>・管理人宛メッセージ機能</B><BR>
<BR>
　管理人にのみメッセージを送ることができる機能です。みんなに見られるのは嫌だけど、メールするほどでは無いとか、メールはアドレスがばれるから嫌・・なんていう時に便利です。また、オマケとして削除・編集前を記録して報告してくれます。</P>

<P><BR>
</P>
<P>　<FONT size="+2"><B>説明</B></FONT></P>
<HR>
<P><B>・新規投稿</B><BR>
<BR>
　名前、コメント、DEL-KEYの記入は必項です。後は好きなように入力してください。<BR>
　タグが許可されている場合はタグも利用可能です。<BR>
  ファイルのアップロードが許可されていればアップロードも可能です。<BR>
<BR>
<B>・返信</B><BR>
<BR>
　そのボタンのある親記事に対して返信することができます。<BR>
　返信数は最大値制限があります。（設置者の設定数値）<BR>
<BR>
<B>・メール配信のＯＮ／ＯＦＦ</B><BR>
<BR>
　メールでお知らせ機能が有効になっている時に表示されます。<BR>
　自分の投稿がメールで配信されても良いのかまずいのか、自分で判断して選択してください。<BR>
<BR>
<B>・スレを上げる／上げない</B><BR>
<BR>
　続に言う「age」と「sage」です。<BR>
　自分の返信でその親記事が上に上がった方が良いのか、そのままで良いのか選択してください。<BR>
<BR>
<B>・全表示</B><BR>
<BR>
　保存されている記事をすべて表示します。<BR>
　日記等で過去ログを作成したい時等にご利用ください。<BR>
<BR>
<B>・編集・削除</B><BR>
<BR>
　自分で設定した記事のパスワード又は管理パスワードを入力することで、対象の番号の記事を編集又は削除できます。<BR>
<BR>

END
}

#----------------------------#
# ホストアドレス取得         #
#----------------------------#
sub host_name {
local($addr) = $ENV{'REMOTE_ADDR'};
local($_) = gethostbyaddr(pack("C4",split(/\./,$addr)),2);
if ($_ eq '') { $_ = $addr; }
$_;
} 

#----------------------------#
# エラー表示                 #
#----------------------------#
sub tempCannot{

	sjis("<br>エラー<br><br>ファイルの読み込みに失敗しました。");
	unlock();
}

#----------------------------#
# クッキー制限機能           #
#----------------------------#
sub CookieAcc{
out(<<END);
<br>
<CENTER><TABLE border='0'width='97%'bgcolor=$Color_SureWaku><TBODY><TR><TD><TABLE border='0'width='100%'bgcolor=$Color_Waku_Naka><TBODY><TR><TD>
<br>
＞＞　あなたの名前（ハンドルネーム）を入力し、「<b>クッキー書き込み</b>」を押してください。<br>
<br>
<form action="stdbbs3_1.cgi"method="POST">
　名前：<input type="text"name="NAME"value=""size="10">
　　<input type="submit"name="SUBMIT"value="クッキー書き込み">
  </form>
<font color=$haikeifcd size=-1>※エンターキーを押すだけでは<b>動作</b>しません。ボタンを押してください。<br>※クッキーは有効にしてください。</font><br>
<br>
・<b><font color=$haikeifcc>名前を入れたのに何度もこのページが表示されてしまう場合</font></b>は、一度、<b>お使いのブラウザのクッキーを削除</b>してください。<br>
　ＩＥの場合はツールの中のインターネットオプションから削除可能です。<br>
END
if($useAdminMes == 1){
	sjis("・<B><font color=$haikeifca>使い方がわからない、中に入れない等の場合は右上の「$AdminName宛にメッセージを送信」でお知らせください。</FONT><BR>");
}
out(<<END);
<br>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER>
<br>
<br>
<CENTER><TABLE border='0'width='97%'bgcolor=$haikeiCeH><TBODY><TR><TD><TABLE border='0'width='100%'bgcolor=$Color_Waku_Naka><TBODY><TR><TD>
<br>
<font color=$haikeifcb ><b><i>■　これって何？　■</i></b></font><br>
<br>
・本機能は、名前等の入力項目を保存し、<b>書き込み時の手間を省くための機能</b>です。<br>
・初回訪問時に、貴方の名前をクッキーに保存します。<br><br>
<font color=$haikeifcd>※クッキーはパソコン内に保存されるため、異なるパソコンでは新しく保存する必要があります。</font><br>
・クッキーはこのパソコン自身に保存されますので簡単に削除することができます。<br>
<br>
<br>
<font color=$haikeifca ><b><i>▼　注意事項　▼</i></b></font><br>
<br>
・この機能は設定ファイルによりＯＦＦにすることができます。<br>
・<b>クッキーを有効にできない設置状況ではこの機能は使わないでください。</b>
<br><br>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER>
<br>
END
}

#----------------------------#
# ステータスバーに表示       #
#----------------------------#
sub StatusBarCookie{

if($printmode == 0 ){
if($useJavaStatusBar ==1){
out(<<END);


<SCRIPT LANGUAGE="JAVASCRIPT">
<!--

END


if($useCookieAcc == 1){
	sjis("MES1='$name_cさんのこのパソコンでの訪問は$kaisuu1_c回で、書き込みは$kaisuu2_c回です。前回のアクセスは$accstime_cです。';");
}else{
	sjis("MES1='$useJavaStatusBarTXT';");
}

out(<<END);
MES2="$useJavaStatusBarTXT";

M=MES1;
cnt=0;
TID=0;
function TYPE(){
status=M.substring(0,cnt++)

if(cnt-120==M.length && M==MES1){cnt=0;M=MES2;}

clearTimeout(TID);
TID=setTimeout("TYPE()",200);
}
TYPE();
// -->
</SCRIPT>



END
}
}
}

#-----------------------------#
#  階級を決定                 #
#-----------------------------#
sub classBBS(){

  if($visitsR < 100){
		$class='雑用'
	}elsif($visitsR < 200){
		$class='皿洗い'
	}elsif($visitsR < 500){
		$class='2等兵'
	}elsif($visitsR < 700){
		$class='1等兵'
	}elsif($visitsR < 1000){
		$class='兵長'
	}elsif($visitsR < 1800){
		$class='伍長'
	}elsif($visitsR < 2000){
		$class='軍曹'
	}elsif($visitsR < 2500){
		$class='少尉'
	}elsif($visitsR < 3100){
		$class='中尉'
	}elsif($visitsR < 3800){
		$class='大尉'
	}elsif($visitsR < 4600){
		$class='少佐'
	}elsif($visitsR < 5500){
		$class='中佐'
	}elsif($visitsR < 6700){
		$class='大佐'
	}elsif($visitsR < 7800){
		$class='准将'
	}elsif($visitsR < 9000){
		$class='少将'
	}elsif($visitsR < 10000){
		$class='中将'
	}elsif($visitsR < 12000){
		$class='大将'
	}elsif($visitsR < 15000){
		$class='将軍'
	}elsif($visitsR < 18000){
		$class='元帥'
	}elsif($visitsR < 22000){
		$class='長官'
	}elsif($visitsR < 26000){
		$class='帝王'
		
	}else{
		$class='大王様'
	}
  
}

#--------------------#
#  画像アップロード  #
#--------------------#
sub FileUp {
  local($upfile);
  
  # ファイル形式を見る
  $flag=0;
  if ($upfiles =~ /\.gif$/i && $gif) { $tail=".gif"; $flag=2; }
  if ($upfiles =~ /\.jpe?g$/i && $jpeg) { $tail=".jpg"; $flag=2; }
  if ($upfiles =~ /\.png$/i && $png) { $tail=".png"; $flag=2; }
  if ($upfiles =~ /\.lzh$/i && $lha) { $tail=".lzh"; $flag=1; }
  if ($upfiles =~ /\.zip$/i && $zip) { $tail=".zip"; $flag=1; }
  if ($upfiles =~ /\.pdf$/i && $pdf) { $tail=".pdf"; $flag=1; }
  if ($upfiles =~ /\.mid$/i && $midi) { $tail=".mid"; $flag=1; }
  if ($upfiles =~ /\.doc$/i && $word) { $tail=".doc"; $flag=1; }
  if ($upfiles =~ /\.xls$/i && $excel) { $tail=".xls"; $flag=1; }
  if ($upfiles =~ /\.ppt$/i && $ppt) { $tail=".ppt"; $flag=1; }
  if ($upfiles =~ /\.ram$/i && $ram) { $tail=".ram"; $flag=1; }
  if ($upfiles =~ /\.rm$/i && $rm) { $tail=".rm"; $flag=1; }
  if ($upfiles =~ /\.mpe?g$/i && $mpeg) { $tail=".mpg"; $flag=1; }
  if ($upfiles =~ /\.mp3$/i && $mp3) { $tail=".mp3"; $flag=1; }
  if ($upfiles =~ /\.swf$/i && $swf) { $tail=".swf"; $flag=1; }
  if ($upfiles =~ /\.txt$/i && $txt) { $tail=".txt"; $flag=1; }
  
  # アップロード失敗処理
  if (!$flag ) { 
    sjis("<hr>警告：アップロード許可されていないファイル形式です。<Hr>");
    #ここにストップ処理
    tempFooter();
    exit();
  }
  
  
  $upfile = $query ->param('FILENAME') ;
  
  #sjis("<hr>ファイル内容<hr>");
  #  while(<$upfile>){
  #    print;
  #  }
  #sjis("<hr>");
  
  # 添付データを書き込み
  # $no1z = $bangou+1;
  
  $ImgFile = "$UpDir\/$timeNo$tail";
  
  sjis("拡張子　$tail<br>");
  sjis("書き込むファイル名は$ImgFileです<br>");
  
  my($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, $atime,$mtime,$ctime,$blksize,$blocks) = stat($upfile);
  sjis("ファイルサイズ：$sizeバイト<br>");
  if($size > $upfilesize){
    sjis("サイズが大きいのでUPできません。<br>許可された容量は$upfilesizeバイトです。<br>");
    tempFooter();
    exit();
  }
  
  open(OUT,">$ImgFile") ||sjis("<hr>アップロード中・・・書き込みに失敗しました<hr>");
  
  #バイナリモード
  binmode OUT;

  while(<$upfile>){
    print OUT;
  }
  
  close(OUT);
  
  #  chmod (0666,$ImgFile);
  
  
  sjis("<br>アップロード完了<br>");
}

#--------------------------------
#
# ファイルの種類を決定
#
#--------------------------------
sub FileUpFlag{
  
  $moji = "@_";
  
  # ファイル形式を見る
  $flag=0;
  if ( $moji =~ /\.gif$/i) { $flag=2; }
  if ( $moji =~ /\.jpg$/i) { $flag=2; }
  if ( $moji =~ /\.png$/i) { $flag=2; }
  if ( $moji =~ /\.lzh$/i) { $flag=1; }
  if ( $moji =~ /\.zip$/i) {  $flag=1; }
  if ( $moji =~ /\.pdf$/i) {  $flag=1; }
  if ( $moji =~ /\.mid$/i) {  $flag=1; }
  if ( $moji =~ /\.doc$/i) { $flag=1; }
  if ( $moji =~ /\.xls$/i) {  $flag=1; }
  if ( $moji =~ /\.ppt$/i) {  $flag=1; }
  if ( $moji =~ /\.ram$/i) {  $flag=1; }
  if ( $moji =~ /\.rm$/i ) {  $flag=1; }
  if ( $moji =~ /\.mpe?g$/i) {  $flag=1; }
  if ( $moji =~ /\.mp3$/i ) { $flag=1; }
  if ( $moji =~ /\.swf$/i ) { $flag=1; }
  if ( $moji =~ /\.txt$/i ) { $flag=1; }
  
  #  sjis("旗の値：$flag<br>$moji<br>@_<br>");
  
}

#--------------------------------
#
# 個人情報を表示
#
#--------------------------------
sub PrintYourD_acc{
	sjis("<br><br>取得ホスト名　：$hostaddr<br>");
	sjis("取得IPアドレス：$ipA<br>");
	sjis("取得OS情報　：$osA<br>");
	sjis("登録名　　　　：$name_c<br><br>");
}

#----------------------------------------#
#  BASE６４変換                          #
#----------------------------------------#
sub base64{
	local($base_txt) = @_;
	&jcode'convert(*base_txt, 'jis');

	$base_txt =~ s/\x1b\x28\x42/\x1b\x28\x4a/g;
	$base_txt = "=?iso-2022-jp?B?" . &base64coa($base_txt) . "?=";
	$base_txt;
}
#----------------------------------------#
#  BASE６４変換ルーチン                  #
#----------------------------------------#
sub base64coa{
	local($ch)="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
	local($x, $y, $z, $i);
	$x = unpack("B*", $_[0]);
	for ($i=0; $y=substr($x,$i,6); $i+=6) {
		$z .= substr($ch, ord(pack("B*", "00" . $y)), 1);
		if (length($y) == 2) {
			$z .= "==";
		} elsif (length($y) == 4) {
			$z .= "=";
		}
	}
	$z;
}