#! /usr/local/bin/perl
#
# formzc mail-form
# Copyright (c) 2000-2001 ZERONET<info@zeronet.ne.jp>
# Japan Mie Matsusaka 
# http://www.zeronet.ne.jp/
#
# 2001/04/25　1.0初版
#
#
#
require './jcode.pl';
#===========================================================
#　main
#===========================================================
# フォーム内容を取得
if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }

&decode;

if ($id eq "") { $id = form;}					
$userdir = "./$id";

&get_time;								
($nen100,$gatu100,$niti100) = split(/-/,$todaydate);

	$logfile = "$userdir\/$id\.log"; 
	$filename = $logfile;&fcheck;

	if ($showgatu> 100 ) {$datfile = "$userdir\/$showgatu\.dat";}
	else {$datfile = "$userdir\/$nen100$gatu100\.dat";}		
	$filename = $datfile;&fcheck;


	if ($showgatu> 100 ) {$backfile = "$userdir\/$showgatu\.bakdat";}
	else {$backfile = "$userdir\/$nen100$gatu100\.bakdat";}		
	$filename = $backfile;&fcheck;

	if ($showgatu> 100 ) {$csvfile = "$userdir\/$showgatu\.csv";}
	else {$csvfile = "$userdir\/$nen100$gatu100\.csv";}		
	$filename = $csvfile;&fcheck;

	$lockfile = "$userdir\/$id\.lock";
	if ($showgatu<100) {$showgatu="$nen100$gatu100";}

&logread;

# 環境設定ログファイルを分解
($idx,$entryno,$newpass,$home,$datmax,$mailto,$location,$title,$sendmail,$tb1_backcolor,$tb2_backcolor,$text1_color,$text2_color,$back_color,$back_img,$id_check,$backmax,$border,$send_check,$remsg,$yobi15) = split(/<>/, $data);
$subject=$title;

$errno =0;#エラー処理時に表示するエラーメッセージのフラグ

if ($kanri eq "") { $kanri = 40;}

if ($kanri != 6) { if ($newpass eq "") { $kanri=2;} }
	if ($kanri==0){&newform;}	#削除
	if ($kanri==2){&newpassin;}	#新しいパスワードの入力
	if ($kanri==3){&newlogin;}	#新しい環境設定の入力
	if ($kanri==4){&passcheck;}	#設定変更のための入力パスワード管理メニュー
	if ($kanri==5){&newlog;}	#環境設定ファイル変更
	if ($kanri==6){&newpass;}	#パスワード変更
	if ($kanri==7){&delask;}	#データ管理メニュー
	if ($kanri==9){&gohome;}	#ホームへ
	if ($kanri==20){&select;}	#設定変更選択
	if ($kanri==30){&goform;}	#登録データ一覧
	if ($kanri==31){&formshow;}	#データ内容表\示
	if ($kanri==40){&passin;}	#設定変更のための入力パスワード管理メニュー
exit;
#=====================================================================
#  システムパスワード
#=====================================================================
sub passin{

&header;
print <<"EOM";

システムパスワード入力</b></font></td>
</tr></table>
<form method='post' action='kanri.cgi'>
<center>
<input type=hidden name='id' value='$id'>
<br>
<center><table border=1 cellpadding=1 cellspacing=0 bgcolor=#FFFFFF width=60%>
<tr><td>
<b>パスワードの入力</b></font></td>
<td><INPUT SIZE='10' maxlength='10' TYPE='password' NAME='pass' ></td></tr>
</table>
<br>
<hr>
<input type=submit name='flag1' value='実　行'>
<input type=reset value='リセット'>
</center>
</form>
<br>
</body></html>

EOM
}
#=====================================================================
# パスワードCHECK
#=====================================================================
sub passcheck{
	if($newpass eq crypt($pass,$newpass)){&select;}
	else{
		$msgno="31";
		&error;
	}
}
#=====================================================================
# パスワードCHECK
#=====================================================================
sub passcheck2{
	if($newpass eq crypt($pass,$newpass)){}
	else{
		$msgno="31";
		&error;
	}
}

#=====================================================================
#  設定変更選択
#=====================================================================
sub select{

&header;
print <<"EOM";

メニューの選択</b></font></td>
</tr></table>
<form method="post" action="kanri.cgi">
<center>
<input type=hidden name='id' value='$id'>
<input type=hidden name='pass' value='$pass'>
<table>
<tr><td>
<input type=submit name="flag1" value="HOMEへ戻る">
</td></tr>
<tr><td>
<input type=submit name="flag1" value="パスワード変更">
</td></tr>
<tr><td>
<input type=submit name="flag1" value="登録データ一覧">
</td></tr>
<tr><td>
<input type=submit name="flag1" value="環境設定変更">
</td></tr>
</table>
</form>
<hr>
<br>
<p></body></html>
EOM
}

#=====================================================================
#  パスワード変更
#=====================================================================

sub newpassin{

&passcheck2;
&header;
print <<"EOM";

パスワード設定変更</b></font></td>
</tr></table>
<center>
<form method='post' action='kanri.cgi'>
<input type=hidden name='id' value='$id'>
<input type=hidden name='pass' value='$pass'>
</center>
<br>
<center><table border=1 width=90%>
<tr><td width=130>
新パスワード入力</td>
<td><INPUT SIZE='10' maxlength='10' TYPE='password' NAME='newpass1' >*新パスワードを英数字4字以上8字以内で入力して下さい。</td></tr>
<tr><td width=130>
新パスワード再入力</td>
<td><INPUT SIZE='10' maxlength='10' TYPE='password' NAME='newpass2'>*管理メニューのため新パスワードを再入力して下さい。</td></tr>
</table>
<br>
<hr>
<input type=submit name='flag1' value='パスワードを変更する'>
<input type=reset value='リセット'>
</center>
</form>
</body></html>
EOM
}

#=====================================================================
# パスワード変更
#=====================================================================
sub newpass{
&passcheck2;
	foreach (0..$count-1) {
		if ($DATA_NS[($_)] eq "newpass1") {$newpass1= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "newpass2") {$newpass2= $DATA_VS[($_)] }
	}
	$length = length($newpass1);
	if ($length<4){$msgno="1";}
	elsif ($length>8){$msgno="2";}
	elsif ($newpass1 ne $newpass2){$msgno="3";}
	else{
		$word=$newpass1;

		srand;
		@key= ('0'..'9','a'..'z','A'..'Z','.','/');
		$newpass1=crypt($word,"$key[rand(63)]$key[rand(63)]");
		# ロック開始
		if ($lock_check == 1) { &file_lock; }
		# 記録ファイルから読み込み
		$msgno=92;
		open(IN,"$logfile") || &error;
		$data = <IN>;
		close(IN);
		# 記録ファイルを分解
($idx,$entryno,$newpass,$home,$datmax,$mailto,$location,$title,$sendmail,$tb1_backcolor,$tb2_backcolor,$text1_color,$text2_color,$back_color,$back_img,$id_check,$backmax,$border,$send_check,$remsg,$yobi15) = split(/<>/, $data);
		# 記録ログの配列を整える
$line="$idx<>$entryno<>$newpass1<>$home<>$datmax<>$mailto<>$location<>$title<>$sendmail<>$tb1_backcolor<>$tb2_backcolor<>$text1_color<>$text2_color<>$back_color<>$back_img<>$id_check<>$backmax<>$border<>$send_check<>$remsg<>$yobi15<>\n";
		$msgno=93;
		open(DAT,">$logfile") || &error;
		print DAT $line;
		close(DAT);
		# ロック解除
		if (-e $lockfile) { unlink($lockfile); }
		$msgno="0";
	}

$pass=$newpass2;

&kakunin;
}

#=====================================================================
#  レイアウト設定変更
#=====================================================================
sub newlogin{

if ($lock_check == 1) { &file_lock; }

$msgno=94;
open(IN,"$logfile") || &error;
$data = <IN>;
close(IN);

if (-e $lockfile) { unlink($lockfile); }

($idx,$entryno,$newpass,$home,$datmax,$mailto,$location,$title,$sendmail,$tb1_backcolor,$tb2_backcolor,$text1_color,$text2_color,$back_color,$back_img,$id_check,$backmax,$border,$send_check,$remsg,$yobi15) = split(/<>/, $data);
			$remsg =~ s/<br>/\n/g;
			$yobi15 =~ s/<br>/\n/g;
# HTMLを表\示
&header;
print <<"EOM";

環境設定変更</b></font></td>
</tr></table>
<center>
<form method='post' action='kanri.cgi'>
<input type=hidden name='id' value='$id'>
<input type=hidden name='pass' value='$pass'>
<input type=submit name='flag1' value='HOMEへ戻る'>
<input type=submit name='flag1' value='管理メニュー'>
<input type=submit name='flag1' value='変更する'>
<input type=reset value='リセット'>
<hr>
</center>
<font color='#F9B606'>■</font>
<b>環境の設定</b></font>
<center>
<table border=1 width=90%>

<tr><td>
ホームページのパス</td>
<td><INPUT SIZE='60' TYPE='text' NAME='home' value='$home'><br>
*ホームページの相対パス又はURLを指定して下さい。</td></tr>

<tr><td>
送信完了後に表\示するページのパス</td>
<td><INPUT SIZE='60' TYPE='text' NAME='location' value='$location'><br>
*送信完了後に表\示するページの相対パス又はURLを指定して下さい。</td></tr>

<tr><td>
sendmailのパス</td>
<td><INPUT SIZE='60' TYPE='text' NAME='sendmail' value='$sendmail'><br>
*sendmailのパスを指定して下さい（通常はこのまま）</td></tr>

<tr><td width=100>
メールの送信先</td>
<td><INPUT SIZE='60' TYPE='text' NAME='mailto' value='$mailto'><br>
*登録フォームの送信先となる店舗様のメールアドレスを指定して下さい。</td></tr>

<INPUT TYPE='hidden' NAME='send_check' value='1'>
<INPUT TYPE='hidden' NAME='id_check' value='1'>
<INPUT TYPE='hidden' NAME='datmax' value='999999'>
<INPUT TYPE='hidden' NAME='backmax' value='999999'>

<tr><td width=100>
メールの件名</td>
<td><INPUT SIZE='40' maxlength='40' TYPE='text' NAME='title'value='$title'>*メールの件名（20字以内）</td></tr>

</table></center><br>

<br>
<font color='#F9B606'>■</font>
<b>登録フォーム最終確認画面の案内文</b></font><br>
<center>
<table border=1 width=90%>


<tr>
<td>
<TEXTAREA NAME='yobi15' ROWS='7' COLS='70'>$yobi15</TEXTAREA></td></tr>

</table></center><br>

<br>
<font color='#F9B606'>■</font>
<b>登録受付完了メール返信文</b></font><br>
<center>
<table border=1 width=90%>


<tr>
<td>
<TEXTAREA NAME='remsg' ROWS='7' COLS='70'>$remsg</TEXTAREA></td></tr>

</table></center><br>

<font color='#F9B606'>■</font>
<b>送信内容確認ページのカラー設定</b></font>
<center>
<table border=1 width=90%>


<tr><td width=100>
背景色</td>
<td><INPUT SIZE='10' maxlength='7' TYPE='text' NAME='back_color' value='$back_color'>*背景のカラーを指定して下さい（16進カラーコード）</td></tr>

<tr><td width=100>
背景画像</td>
<td><INPUT SIZE='60' TYPE='text' NAME='back_img' value='$back_img'>*画像のパスを記述</td></tr>

<tr><td width=100>
項目名背景色</td>
<td><INPUT SIZE='10' maxlength='7' TYPE='text' NAME='tb1_backcolor' value='$tb1_backcolor'>*項目欄の背景色（16進カラーコード）</td>

<tr><td width=100>
内容背景色</td>
<td><INPUT SIZE='10' maxlength='7' TYPE='text' NAME='tb2_backcolor' value='$tb2_backcolor'>*内容欄の背景色（16進カラーコード）</td>



<tr><td width=100>
項目名文字色</td>
<td><INPUT SIZE='10' maxlength='7' TYPE='text' NAME='text1_color' value='$text1_color' >*項目欄の文字色（16進カラーコード）</td>

<tr><td width=100>
内容文字色</td>
<td><INPUT SIZE='10' maxlength='7' TYPE='text' NAME='text2_color' value='$text2_color' >*内容欄の文字色（16進カラーコード）</td>

<tr><td width=100>
枠の有無</td>
<td><INPUT SIZE='3' maxlength='3' TYPE='text' NAME='border' value='$border'>無(0)　有(1)</td></tr>

</table></center><br>


<br>
<hr>
<center>
<br>
<br>
</center>
</form>
</body></html>
EOM

}
#=====================================================================
# 変更する（環境設定ログファイル）
#=====================================================================
sub newlog{
	# ロック開始
	if ($lock_check == 1) { &file_lock; }
	# 記録ファイルから読み込み
	$msgno=95;
	open(IN,"$logfile") || &error;
	$data = <IN>;
	close(IN);
	# 記録ファイルを分解
($idx,$entryno,$newpass,$home,$datmax,$mailto,$location,$title,$sendmail,$tb1_backcolor,$tb2_backcolor,$text1_color,$text2_color,$back_color,$back_img,$id_check,$backmax,$border,$send_check,$remsg,$yobi15) = split(/<>/, $data);
	foreach (0..$count-1) {
		if ($DATA_NS[($_)] eq "home") {$home= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "location") {$location= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "mailto") {$mailto= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "sendmail") {$sendmail= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "title") {$title= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "datmax") {$datmax= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "backmax") {$backmax= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "back_img") {$back_img = $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "back_color") {$back_color = $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "tb1_backcolor") {$tb1_backcolor = $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "tb2_backcolor") {$tb2_backcolor = $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "text1_color") {$text1_color = $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "text2_color") {$text2_color = $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "id_check") {$id_check= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "send_check") {$send_check= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "border") {$border= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "remsg") {$remsg= $DATA_VS[($_)] }
		if ($DATA_NS[($_)] eq "yobi15") {$yobi15= $DATA_VS[($_)] }
	}
	if ($datmax<1) {$msgno="12";}
	elsif ($datmax<1) {$msgno="12";}
	else {
		# 記録ログの配列を整える
$line="$idx<>$entryno<>$newpass<>$home<>$datmax<>$mailto<>$location<>$title<>$sendmail<>$tb1_backcolor<>$tb2_backcolor<>$text1_color<>$text2_color<>$back_color<>$back_img<>$id_check<>$backmax<>$border<>$send_check<>$remsg<>$yobi15<>\n";
		$msgno=96;
		open(DAT,">$logfile") || &error;
		print DAT $line;
		close(DAT);
		$msgno="10";
	}
# ロック解除
if (-e $lockfile) { unlink($lockfile); }
&kakunin;
}
#=====================================================================
#  登録データ一覧
#=====================================================================
sub goform{
&passcheck2;
# 集計ファイルの存在をチェック
unless(-e $datfile) { &error(7); }

# ロック開始
if ($lock_check == 1) { &file_lock; }

# 登録フォームファイルを読み込み
open(IN,"$datfile") || &error("Open Error : $datfile");
@formdat = <IN>;
close(IN);
@formdat= reverse(@formdat);

# ロック解除
if (-e $lockfile) { unlink($lockfile); }

# HTMLを表\示
print "Content-type: text/html\n\n";
print <<"EOM";

<html>
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<title>登録データ一覧表\示</title>
<STYLE type="text/css">
<!--
body{background-color:#F5F5F5;}
body{margin:0px 30px 0px 40px}
-->
</STYLE>
</head>
<body>
<table border="1" width=100%><tr>
<td bgcolor="#6D6D6D" align="center">
<font color="#F9B606">■</font>
<font color="#FFFFFF"><b>登録データ一覧表\示
</TD></TR>
</TABLE>

<center>
<br>
<form method='post' action='kanri.cgi'>
<input type=hidden name='id' value='$id'>
<input type=hidden name='pass' value='$pass'>
<input type=submit name='flag1' value='管理メニュー'>
<input type=submit name='flag1' value='HOMEへ戻る'>
</form>
<hr>
EOM

print "<br>表\示年月を入力して下さい。2001年1月の場合→0101<br>\n";

print "<form method='post' action='kanri.cgi'>\n";
		print "<input size='8' type=text name='showgatu' value=$showgatu>\n";
		print "<input type=hidden name='id' value='$id'>\n";
		print "<input type=hidden name='pass' value='$pass'>\n";
		print "<input type=submit name='flag1' value='登録データ一覧'> \n";
		print " <A href=$csvfile>CSVデータダウンロード</A>\n";
print "</form>\n";

$formdat=$formdat[0];
($entryno,$date,$addr,$host,$agent,$onamae,$email,$itemname1,$itemname2,$item1,$item2,$datname[1],$datname[2],$datname[3],$datname[4],$datname[5],$datname[6],$datname[7],$datname[8],$datname[9],$datname[10],$datname[11],$datname[12],$datname[13],$datname[14],$datname[15],$datname[16],$datname[17],$datname[18],$datname[19],$datname[20],$datname[21],$datname[22],$datname[23],$datname[24],$datname[25],$datname[26],$datname[27],$datname[28],$datname[29],$datname[30],$datname[31],$datname[32],$datname[33],$datname[34],$datname[35],$datname[36],$datname[37],$datname[38],$datname[39],$datname[40],$dat[1],$dat[2],$dat[3],$dat[4],$dat[5],$dat[6],$dat[7],$dat[8],$dat[9],$dat[10],$dat[11],$dat[12],$dat[13],$dat[14],$dat[15],$dat[16],$dat[17],$dat[18],$dat[19],$dat[20],$dat[21],$dat[22],$dat[23],$dat[24],$dat[25],$dat[26],$dat[27],$dat[28],$dat[29],$dat[30],$dat[31],$dat[32],$dat[33],$dat[34],$dat[35],$dat[36],$dat[37],$dat[38],$dat[39],$dat[40]) = split(/<>/,$formdat);
print "<table bgcolor=#696969 border=0 cellpadding=1 cellspacing=1 width=100%><tr bgcolor=#DCDCDC>\n";
print "<th height=20>登録NO</th><th>送信日時</th><th>お名前</th><th>Email</th><th>$itemname1</th><th>$itemname2</th><th>削除</th></tr>\n";
$gtotal=0;
foreach (@formdat ) {
	($entryno,$date,$addr,$host,$agent,$onamae,$email,$itemname1,$itemname2,$item1,$item2,$datname[1],$datname[2],$datname[3],$datname[4],$datname[5],$datname[6],$datname[7],$datname[8],$datname[9],$datname[10],$datname[11],$datname[12],$datname[13],$datname[14],$datname[15],$datname[16],$datname[17],$datname[18],$datname[19],$datname[20],$datname[21],$datname[22],$datname[23],$datname[24],$datname[25],$datname[26],$datname[27],$datname[28],$datname[29],$datname[30],$datname[31],$datname[32],$datname[33],$datname[34],$datname[35],$datname[36],$datname[37],$datname[38],$datname[39],$datname[40],$dat[1],$dat[2],$dat[3],$dat[4],$dat[5],$dat[6],$dat[7],$dat[8],$dat[9],$dat[10],$dat[11],$dat[12],$dat[13],$dat[14],$dat[15],$dat[16],$dat[17],$dat[18],$dat[19],$dat[20],$dat[21],$dat[22],$dat[23],$dat[24],$dat[25],$dat[26],$dat[27],$dat[28],$dat[29],$dat[30],$dat[31],$dat[32],$dat[33],$dat[34],$dat[35],$dat[36],$dat[37],$dat[38],$dat[39],$dat[40]) = split(/<>/);
	if($host eq "") {$host = "-";}
	if($entryno ne "") {
		print "<form method='post' action='kanri.cgi'>\n";
		print "<tr bgcolor=#FFFFFF>\n";
		print "<td>$entryno</a></td>\n";
		print "<td>$date</td>\n";
		print "<td><a href=\"kanri.cgi?id=$id&showno=$entryno&flag1=formshow&showgatu=$showgatu\" target=new10>$onamae</a></td>\n";
		print "<td><a href=mailto:$email>$email</a></td>\n";
		print "<td>$item1</td><td>$item2</td>\n";
		print "<td><input type=hidden name='delno' value='$entryno'>\n";
		print "<input type=hidden name='showgatu' value='$showgatu'>\n";
		print "<input type=hidden name='id' value='$id'>\n";
		print "<input type=hidden name='pass' value='$pass'>\n";
		print "<input type=submit name='flag1' value='削除'></td>\n";
		print "</tr></form>\n";
	}
}

print <<"EOM";
</table>
<br><br>
</center><p>
■削除ボタンをクリックすると該当データが削除されます。<br>
■お名前をクリックすると該当データ全内容が表\示されます。<br>
■メールアドレスをクリックするとメール送信ウィンドウが開きます。<br>
<br><br><br>
</body></html>
EOM
exit;
}
#=====================================================================
#  データ更新
#=====================================================================
sub newform{

&passcheck2;

if ($lock_check == 1) { &file_lock; }# ロック開始
if (!open(DB,"$datfile")) { &error('Read Error',''); }
@undo = <DB>;
close(DB);
if (-e $lockfile) { unlink($lockfile); }# ロック解除

foreach $userline(@undo ) {
	($entryno,$date,$addr,$host,$agent,$onamae,$email,$itemname1,$itemname2,$item1,$item2,$datname[1],$datname[2],$datname[3],$datname[4],$datname[5],$datname[6],$datname[7],$datname[8],$datname[9],$datname[10],$datname[11],$datname[12],$datname[13],$datname[14],$datname[15],$datname[16],$datname[17],$datname[18],$datname[19],$datname[20],$datname[21],$datname[22],$datname[23],$datname[24],$datname[25],$datname[26],$datname[27],$datname[28],$datname[29],$datname[30],$datname[31],$datname[32],$datname[33],$datname[34],$datname[35],$datname[36],$datname[37],$datname[38],$datname[39],$datname[40],$dat[1],$dat[2],$dat[3],$dat[4],$dat[5],$dat[6],$dat[7],$dat[8],$dat[9],$dat[10],$dat[11],$dat[12],$dat[13],$dat[14],$dat[15],$dat[16],$dat[17],$dat[18],$dat[19],$dat[20],$dat[21],$dat[22],$dat[23],$dat[24],$dat[25],$dat[26],$dat[27],$dat[28],$dat[29],$dat[30],$dat[31],$dat[32],$dat[33],$dat[34],$dat[35],$dat[36],$dat[37],$dat[38],$dat[39],$dat[40]) = split(/<>/,$userline);
	if($delno eq $entryno) { }
	else {push (@new1,"$userline");}
}

if ($lock_check == 1) { &file_lock; }# ロック開始

if (!open(DB,"> $datfile")) { &error('Forbidden',''); }
print DB @new1;
close(DB);

if (-e $lockfile) { unlink($lockfile); }# ロック解除


&goform;
}
#=====================================================================
#  データ内容表\示
#=====================================================================
sub formshow{
# 集計ファイルの存在をチェック
unless(-e $datfile) { &error(7); }

# ロック開始
if ($lock_check == 1) { &file_lock; }

# アクセス情報ファイルを読み込み
open(IN,"$datfile") || &error("Open Error : $datfile");
@formdat = <IN>;
close(IN);

# ロック解除
if (-e $lockfile) { unlink($lockfile); }

# HTMLを表\示
print "Content-type: text/html\n\n";
print <<"EOM";

<html>
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<title>登録データ内容表\示</title>
<STYLE type="text/css">
<!--
body{background-color:#F5F5F5;}
body{margin:0px 30px 0px 40px}
-->
</STYLE>
</head>
<body>
<table border="1" width=100%><tr>
<td bgcolor="#6D6D6D" align="center">
<font color="#F9B606">■</font>
<font color="#FFFFFF"><b>登録データ内容表\示
</TD></TR>
</TABLE>

<br>
<center>
EOM

foreach (@formdat ) {
	($entryno,$date,$addr,$host,$agent,$onamae,$email,$itemname1,$itemname2,$item1,$item2,$datname[1],$datname[2],$datname[3],$datname[4],$datname[5],$datname[6],$datname[7],$datname[8],$datname[9],$datname[10],$datname[11],$datname[12],$datname[13],$datname[14],$datname[15],$datname[16],$datname[17],$datname[18],$datname[19],$datname[20],$datname[21],$datname[22],$datname[23],$datname[24],$datname[25],$datname[26],$datname[27],$datname[28],$datname[29],$datname[30],$datname[31],$datname[32],$datname[33],$datname[34],$datname[35],$datname[36],$datname[37],$datname[38],$datname[39],$datname[40],$dat[1],$dat[2],$dat[3],$dat[4],$dat[5],$dat[6],$dat[7],$dat[8],$dat[9],$dat[10],$dat[11],$dat[12],$dat[13],$dat[14],$dat[15],$dat[16],$dat[17],$dat[18],$dat[19],$dat[20],$dat[21],$dat[22],$dat[23],$dat[24],$dat[25],$dat[26],$dat[27],$dat[28],$dat[29],$dat[30],$dat[31],$dat[32],$dat[33],$dat[34],$dat[35],$dat[36],$dat[37],$dat[38],$dat[39],$dat[40],$stotal,$souryo,$taxtotal,$total,$shop1,$shop2,$shop3,$shop4,$shop5,$shop6,$shop7,$shop8,$shop9,$shop10,$shop11,$shop12,$shop13,$shop14,$shop15,$shop16,$shop17,$shop18,$shop19,$shop20) = split(/<>/);
	if($host eq "") {$host = "-";}
	if($entryno eq $showno) {
		print "<table bgcolor=#FFFFFF border=1 cellpadding=2 cellspacing=1 width=90%>\n";
		print "<tr><td width=30%>登録NO<td width=70%>$entryno</td></tr>\n";
		print "<tr><td>送信日時<td>$date</td></tr>\n";
		print "<tr><td>ホスト名<td>$host</td></tr>\n";
		print "<tr><td>IPアドレス<td>$addr</td></tr>\n";
		print "<tr><td>ブラウザ情報<td>$agent</td></tr>\n";
		print "</table><br>\n";
		print "<table bgcolor=#FFFFFF border=1 cellpadding=2 cellspacing=1 width=90%>\n";
		$datno=1;
		while ($datno<40) {
			if ($datname[$datno] eq "comment")  { 
				$dat[$datno] =~ s/&lt;br&gt;/<br>/g;
			}
			if($dat[$datno] ne "") {print "<tr><td width=30%>$datname[$datno]<td width=70%>$dat[$datno]</td></tr>\n";}
			$datno=$datno+1;
		}
		print "</table><br>\n";
		print "<br>\n";
	last;
	}
}

print <<"EOM";

<br><br>
</body></html>
EOM
exit;
}
#=====================================================================
#  HOMOへ
#=====================================================================
sub gohome{
print "Location: $home\n\n";
exit;
}
#=====================================================================
#  設定変更の管理メニュー
#=====================================================================
sub kakunin{
&header;
	print '登録フォーム管理</b></font></td>' ."\n";
	print '</tr></table>' ."\n";
	print '<center>' ."\n";
	print "<form method='post' action='kanri.cgi'>\n";
	print '<font size="5"><b>'."\n";
	print '<br>' ."\n";
	print '<br>' ."\n";
	print '<table border="1" bgcolor="#E0FFFF" cellpadding=2 cellspacing=0 width=60%><tr>' ."\n";
	if ($msgno==0) {print '<td>新しいパスワードに変更しました。</td></tr>' ."\n";}
	elsif ($msgno==1) {print '<td>新しいパスワードは4字以上で入力して下さい！！</td></tr>' ."\n";}
	elsif ($msgno==2) {print '<td>新しいパスワードは8字以下で入力して下さい！！</td></tr>' ."\n";}
	elsif ($msgno==3) {print '<td>新しいパスワードと新しいパスワードの再入力が違います！！</td></tr>' ."\n";}
	elsif ($msgno==10) {print '<td>環境設定を変更しました。画像の指定を変更した場合はブラウザを再起動して下さい。</td></tr>' ."\n";}
	elsif ($msgno==12) {print '<td>データファイルの最大数が不正です。</td></tr>' ."\n";}
	elsif ($msgno==23) {print '<td>記録データを削除しました。</td></tr>' ."\n";}
	elsif ($msgno==100) {print '<td>設定変更はおこなわれませんでした。</td></tr>' ."\n";}
	print '</table><p>' ."\n";
	print '<br>' ."\n";
	print "<input type=hidden name='id' value='$id'>\n";
	print "<input type=hidden name='pass' value='$pass'>\n";
	print "<input type=submit name='flag1' value='管理メニュー'>\n";
	print "</form>\n";
	print '<p></body></html>' ."\n";
	exit;
}
#=====================================================================
#  エラー処理
#=====================================================================
sub error{
if (-e $lockfile) { unlink($lockfile); }
&header;

	print 'フォームエラー</b></font></td>' ."\n";
	print '</tr></table>' ."\n";
	print '<center>' ."\n";
	print "<form method='post' action='kanri.cgi'>\n";
	print '<font size="5"><b>'."\n";
	print '<br>' ."\n";
	print '<br>' ."\n";
	print '<table border="1" bgcolor="#E0FFFF" cellpadding=2 cellspacing=0 width=60%><tr>' ."\n";
	if ($msgno==91) {print '<td>ログファイルがオープンできません(91)！！</td></tr>' ."\n";}
	elsif ($msgno==31) {print '<td>パスワードが不正です！！</td></tr>' ."\n";}
	elsif ($msgno==92) {print '<td>ログファイルがオープンできません(92)！！</td></tr>' ."\n";}
	elsif ($msgno==93) {print '<td>ログファイルがオープンできません(93)！！</td></tr>' ."\n";}
	elsif ($msgno==94) {print '<td>ログファイルがオープンできません(94)！！</td></tr>' ."\n";}
	elsif ($msgno==95) {print '<td>ログファイルがオープンできません(95)！！</td></tr>' ."\n";}
	elsif ($msgno==96) {print '<td>ログファイルがオープンできません(96)！！</td></tr>' ."\n";}
	elsif ($msgno==97) {print '<td>ファイルロック時にエラー発生(97)！！</td></tr>' ."\n";}
	elsif ($msgno==98) {print '<td>データ記録ファイルがオープンできません！！(98)！！</td></tr>' ."\n";}
	elsif ($msgno==99) {print '<td>データ記録ファイル削除時にエラー発生！！(99)！！</td></tr>' ."\n";}
	print '</table><p>' ."\n";
	print '<br>' ."\n";
	print "<input type=hidden name='id' value='$id'>\n";
	print "<input type=submit name='flag1' value='HOMEへ戻る'>\n";
	print "</form>$msgno\n";
	print '<p></body></html>' ."\n";
	exit;
}
#=====================================================================
#  ロックファイル : symlink関数 
#=====================================================================
sub file_lock {

	local($retry) = 3;
	$msgno=97;
	while (!symlink(".", $lockfile)) {
		if (--$retry <= 0)  { &error; }
		sleep(1);
	}
}
#=====================================================================
#  HTML表\示ヘッダ部分(通常）
#=====================================================================
sub header {
print "Content-type: text/html\n\n";
print <<"EOM";

<html>
<head>
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">
<title>登録フォーム設定変更</title>
<STYLE type="text/css">
<!--
body{background-color:#F5F5F5;}
body{margin:0px 30px 0px 40px}
td{font-size:10pt;}
-->
</STYLE>
</head>
<body>
<table border="1" width=100%><tr>
<td bgcolor="#6D6D6D" align="center">
<font color="#F9B606">■</font>
<font color="#FFFFFF"><b>

EOM
}
#=====================================================================
#  環境設定ログ読込
#=====================================================================
sub logread{
	if ($lock_check == 1) { &file_lock; }# ロック開始
	$errno=1;
	open(IN,"$logfile") ||  &error(1);
	$data = <IN>;
	close(IN);
	if (-e $lockfile) { unlink($lockfile); }# ロック解除

}
#=====================================================================
# 記録ファイルの存在をチェック
#=====================================================================
sub fcheck{
	unless(-e $filename) {
			$errno=2;
			open(OUT,">$filename") ||  &error(2);
			print OUT "";
			close(OUT);
			chmod (0666,"$filename");# パーミッションを 666 へ
			$errno=3;
	}
}
#====================================================================
# 3桁ごとにカンマをつける
#====================================================================
sub filler {
	local($_) = $_[0];
	1 while s/(.*\d)(\d\d\d)/$1,$2/;
	return $_;
}

#=====================================================================
#  日時の取得
#=====================================================================
sub get_time {
	$ENV{'TZ'} = "JST-9";
	($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time);
	@week = ('日','月','火','水','木','金','土');
	# 日時のフォーマット
	$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d",
		$year+1900,$mon+1,$mday,$week[$wday],$hour,$min,$sec);
	$todaydate = sprintf("%02d-%02d-%02d",
		$year-100,$mon+1,$mday);
}
#=====================================================================
#  decode
#=====================================================================

sub decode{
	@pairs = split(/&/, $buffer);
	foreach $pair (@pairs) {
		($name, $value) = split(/=/, $pair);
		$name =~ tr/+/ /;
		$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
		$value =~ tr/+/ /;
		$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
		&jcode'convert(*name,'sjis');   &jcode'convert(*value,'sjis');
		$value =~ s/<!--(.|\n)*-->//g;
		$value =~ s/<>/&lt;&gt;/g;

		# 改行等処理
		if ($name eq "remsg" )  { 
			$value =~ s/\r\n/<br>/g;
			$value =~ s/\r/<br>/g;
			$value =~ s/\n/<br>/g;
		} 
		elsif ($name eq "yobi15" )  { 
			$value =~ s/\r\n/<br>/g;
			$value =~ s/\r/<br>/g;
			$value =~ s/\n/<br>/g;
		} 
		else {
			$value =~ s/\r//g;
			$value =~ s/\n//g;
		}
		push(@DATA_NS,$name);           push(@DATA_VS,$value);

		if ($name eq "id" )  { $id=$value;}
		elsif ($name eq "pass" )  { $pass=$value;}
		elsif ($name eq "showno" )  { $showno=$value;}
		elsif ($name eq "delno" )  { $delno=$value;}
		elsif ($name eq "showgatu" )  { $showgatu=$value;}
		elsif ($name eq "flag1" && $value eq "削除")  { $kanri=0;}
		elsif ($name eq "flag1" && $value eq "パスワード変更")  { $kanri=2;}
		elsif ($name eq "flag1" && $value eq "環境設定変更")  { $kanri=3;}
		elsif ($name eq "flag1" && $value eq "実　行")  { $kanri=4;}
		elsif ($name eq "flag1" && $value eq "変更する")  { $kanri=5;}
		elsif ($name eq "flag1" && $value eq "パスワードを変更する")  { $kanri=6;}
		elsif ($name eq "flag1" && $value eq "HOMEへ戻る")  { $kanri=9;}
		elsif ($name eq "flag1" && $value eq "管理メニュー")  { $kanri=20;}
		elsif ($name eq "flag1" && $value eq "登録データ一覧")  { $kanri=30;}
		elsif ($name eq "flag1" && $value eq "formshow")  { $kanri=31;}
	}
$count = @DATA_NS;
}

