#!/usr/bin/perl

##************************************************************************ Fn
#  //////////// フォームメールシステムPro   XHTML          V3.6 ///////////
#                          著作権表示
#  ・このプログラムの著作権は AOZORA<aozora@azr.ne.jp>にあります。
#  ・このプログラムの再配布・転載を禁じます。
#  ・このプログラムの改造は一切禁じます。保証・サポート対象外となります。
#  ・改造の有無にかかわらず、このスクリプトの再配布や転載はできません。
#
# --- あおぞらクリエイト (AOZORA) ---
# aozora@azr.ne.jp
# http://www.azr.ne.jp/
##************************************************************************

################# main_conf.cgi
# $FORM{'Ftitle'}
# $INmail[0]<>$INmail[1]<>$INmail[2]
# $FORM{'kakuninMSG'}
# $FORM{'errorMSG'}
# $FORM{'endingMSG'}
# 空
# $FORM{'logMAX'}
# $FORM{'tempMAX'}
# $FORM{'upFiles'}
# $FORM{'Noacc'}

################ form_data.cgi
# $Item<>$FORM{'ftype'}<>$FORM{'Itemname'}<>$FORM{'esse'}<>$FORM{'srchPost'}<>$FORM{'Checking'}<>$FORM{'HU'}<>空き<>$FORM{'def_serect'}<>$FORM{'Soption'}<>$FORM{'print_line'}<>$FORM{'sizeW'}<>$FORM{'sizeH'}<>$FORM{'minilength'}<>$FORM{'maxlength'}<>$FORM{'front_txt'}<>$FORM{'back_txt'}<>$FORM{'undr_txt'}<>$FORM{'groupNo'}<>$FORM{'kakuninmail'}<>$FORM{'Topsel_space'}<>
#   0            1               2                3               4                   5                6        7             8                   9                 10                 11             12                 13                14                   15                  16                 17               18                 19                  20                 21

################ group.cgi
# No<>Group Name<>グルプ内全必須<>Menber	Menber	Menber ...

## 改行は \_\:RtrnTagm\:\_

require "./jcode.pl";
require './mimew.pl';
require './cgi-lib.pl';
require './conf.pl';

$cgi="form.cgi";
$PScgi='ps.cgi'; # 〒

## 〒検索ページ
$PostSRHPage="　<a href=\"http://search.post.japanpost.jp/zipcode/index.html\" target=\"_blank\">郵便番号を調べる</a>";

$pictMAX=1024000000;   # UP画像許容size 1024000000  1000M   2048000000 2000M
$upmxs=int($pictMAX/1024);
$cgi_lib'maxdata = '2048000000';
$HMk=$Hitu; ## 必須アイコン
$Wid=120;  $Hig=120;

%NGID=();## 入力NG項目のID連配

&ReadParse(*FORM);
	while (($key,$val) = each %FORM) {
		if (!($key =~ /upfile/ )) {
		$val =~ s/\0/\t/g;
		#&jcode::h2z_sjis(\$val);
		#&jcode::convert(\$val, "euc");
		&jcode::convert(\$val, "euc","sjis","z");
		#&jcode::tr(\$val, '０-９Ａ-Ｚａ-ｚ', '0-9A-Za-z');
		$val =~ s/\r//g;
		$val =~ s/<>/\&lt\;\&gt\;/g;
		#$val =~ s/\,/\&\#44\;/g;
		$val =~ s/\"/&quot;/g;
		$FORM{$key} = $val;              # $TEST .= "[$key\]<br>$val<hr>\n";##################
	}  
}

$do = $FORM{'do'}; 
$F = $FORM{'F'}; 

&jcode::JIS_EUC_CHK("","$cgi"); 
&FormDatOpen;

&get_host;
$pflag=0;
	foreach (@Pdeny) {
		if (!$_) { next; }
		$_ =~ s/\*/\.\*/g;
		if ($host =~ /$_/i || $addr =~ /$_/i) { $pflag=1; last; }
	}
if ($pflag) { &er("<b>アクセスを許可されていません</b>","1"); }
#############&er("$TEST");
if($do eq "chk"){ &CHK; }
if($do eq "sender"){ &SENDER; } 


&OPEN;


#### Form設定ファイル郡OPEN            &FormDatOpen("1");
sub FormDatOpen{
$Fconf=$FormBaseDir.'form'.$F .'/main_conf.cgi';
$Ffdata=$FormBaseDir.'form'.$F .'/form_data.cgi';
$Fmail_txt=$FormBaseDir.'form'.$F .'/1.cgi';
$Fgroup=$FormBaseDir.'form'.$F .'/group.cgi';
$ScriptF=$FormBaseDir.'form'.$F .'/sndscript.cgi';
$kiyaku_F=$FormBaseDir.'form'.$F .'/kiyaku.cgi';# 規約

@FconfLine=@FdataLine=@FgroupLine=@FmailLine=(); 
%GroupName=(); %GroupEsse=(); %GroupMenber=();
$sendingMAIL=$sendingNAME=''; # 確認メール掲載用

open(LOG, "$Fconf"); 
@FconfLine = <LOG>; # Conf 設定
close (LOG);
chomp(@FconfLine);
$ThisFormTitle=$FconfLine[0];
@MAILS= split(/<>/, $FconfLine[1]);
$KakuninMSG=$FconfLine[2]; $KakuninMSG=~ s/&quot;/\"/g; $KakuninMSG=~ s/\_\:RtrnTagm\:\_/\n/g; $KakuninMSG=~ s/<br>/<br \/>/ig;
$ErrorMSG=$FconfLine[3];  $ErrorMSG=~ s/&quot;/\"/g; $ErrorMSG=~ s/\_\:RtrnTagm\:\_/\n/g; $ErrorMSG=~ s/<br>/<br \/>/ig;
$EndingMSG=$FconfLine[4]; $EndingMSG=~ s/&quot;/\"/g; $EndingMSG=~ s/\_\:RtrnTagm\:\_/\n/g; $EndingMSG=~ s/<br>/<br \/>/ig;
$Maxlog=$FconfLine[6];
$MaxUPsizeP=$FconfLine[7];
$MaxUPsize=$FconfLine[7] * 1000;
@OKtail= split(/<>/, $FconfLine[8]); $okfmny=@OKtail;
@Pdeny= split(/<>/, $FconfLine[9]);
($Ftd1,$Ftd2,$Fchkbg,$Ftd3,$Ftd4)= split(/<>/, $FconfLine[10]);# 項目名背景,入力部背景,必須背景,未記入背景,通常背景
# 項目/Data 背景CSS
#$FormTDcss=<<JHASGF;
#<style type="text/css">
#<!--
#.formTD1{ background-color:#${Ftd1};}
#.formTD2{ background-color:#${Ftd2};}
#-->
#</style>
#JHASGF

$topHeadON=0;
open(LOG, "$Ffdata"); # Form 項目 Data
@FdataLine = <LOG>;
close (LOG);
chomp(@FdataLine);
$Jh=0;
foreach $nm(@FdataLine)
	{
	@teds= split(/<>/, $nm);
	if($teds[19]){ if($teds[19] eq "mail"){$sendingMAIL=$FORM{"Email$Jh"};}elsif($teds[19] eq "name"){$sendingNAME=$FORM{"name$Jh"};}  }
	if($Jh==0 && $teds[1] eq 'BlockHead'){$topHeadON=1; }# 最初の項目はヘッダーか
$Jh++;
	}

open(LOG, "$Fmail_txt"); # 返信メール
@FmailLine = <LOG>;
close (LOG);
chomp(@FmailLine);

open(LOG, "$Fgroup"); # Group NO - [連配]  名前参照  全必須参照  メンバー参照
@FgroupLine = <LOG>;
close (LOG);
chomp(@FgroupLine);
foreach $Yb (@FgroupLine)
	{
	@G_S= split(/<>/, $Yb);
	$GroupName{"$G_S[0]"}=$G_S[1]; $GroupEsse{"$G_S[0]"}=$G_S[2];  $GroupMenber{"$G_S[0]"}=$G_S[3];
	}

## End Page Script
open(LOG, "$ScriptF");
@ScriptLine = <LOG>;
close (LOG);
$endingScript = join( "" , @ScriptLine);

}


################## フォーム表示
sub OPEN{
srand;
if(!$FORM{'serial'}){
$dnd=int(rand(99)+1);
$Rdat = sprintf ("%02d", "$dnd"); 
$FORM{'serial'}=time().$Rdat;
}

$ERMessage=$PrintData=$ScriptTag=$Addscript=$SeqFormTag1=$SeqFormTag2='';
$Group_OKF="\t";  ## グループ化済みのグループNo

if($EMG){ $ERMessage="<div class=\"errorMSG\">$ErrorMSG<br />$EMG</div>";  }

$ContentData = <<BHJ1;
<form action="$cgi" method="post" name="FM" id="FM" enctype="multipart/form-data" style="margin:0px;">
<input type="hidden" name="do" value="chk" />
<input type="hidden" name="F" id="F" value="$F" />
<input type="hidden" name="serial" value="$FORM{'serial'}" />
$SeqFormTag1
BHJ1
# 最初がヘッダーの時、tableタグはセットしない
if(!$topHeadON){ $ContentData .="<table cellspacing=\"1\" cellpadding=\"5\" class=\"formTable\" summary=\"form\">"; }

$B=0; @FupF=(); #--**
foreach $nm(@FdataLine)
	{
$GroupMode=0;
$nm =~ s/\_\:RtrnTagm\:\_/\n/g; $nm=~ s/&quot;/\"/g;  $nm=~ s/<br>/<br \/>/ig;
@sapadata= split(/<>/, $nm);
&GsepaD;
# グループ化
if($groupNo){ if($Group_OKF !~ /$groupNo/){$GM=$groupNo; &Make_a_Group;} }
else{ &Make_a_Form; $B++; }
	}


## ★ 〒Script 付加
if($ADDSC_ON){
$Addscript .=<<LLLKMJNH;
<script src="img/prototype.js" type="text/javascript"></script>
<script src="img/mkpost2.js" type="text/javascript"></script>
LLLKMJNH
}



$ContentData .= <<BHJ1;
$PrintData
$SeqFormTag2
</table>
BHJ1



## フォームデータあるときのみボタン表示
if($PrintData eq ""){&Muji;}

## ファイルアップ時メッセージ&Script  #--**
$fupf=@FupF;
if($fupf){ 
$UTIN=" onclick=\"javascript:upmsg();\"";
$ScriptTag .=<<HSFGDJJ;
function upmsg(){ 
var atfil=0;
HSFGDJJ
foreach $fm(@FupF){ $ScriptTag .="if(document.FM.$fm\.value){atfil++;}\n";  }
$ScriptTag .=<<HSFGDJJ;
if(atfil){ 
	document.getElementById('fileupmsg').innerHTML = '※ファイルアップロード中です。少々お待ち下さい。'; 
	}
}
HSFGDJJ
# var mitid=document.getElementById('submitarea'); mitid.style.display='none'; // ボタン非表示
}else{$UTIN="";}

$ContentData .= <<BHJ1;
<div id="fileupmsg"></div>
<div id="submitarea" class="submitset"><input type="submit" id="send" value="確認" style="width:100px;"$UTIN /> <input type="reset" id="rset" value="リセット" style="width:100px;" /></div>
</form>
BHJ1

## 必須背景  
$Ftd2=$Ftd4;#$Ftd1,$Ftd2 は未使
if($Fchkbg){
$ScriptTag .=<<KASHSF;
bg1='#$Ftd4'; bg2='#$Ftd3'; bg3='#$Ftd2';
KASHSF
}

## スクリプト
if($ScriptTag){
$ScriptTag =<<LLLOKIJUH;
<script type="text/javascript">
<!--
$ScriptTag
//-->
</script>
LLLOKIJUH
}

## 〒 検索用
if($Addscript){
$ScriptTag .=<<LLLOKIJUH;
$Addscript
LLLOKIJUH
}

## 必須背景
if($Fchkbg){
$ScriptTag .=<<LLLOKIJUH;
<script src="img/colord.js" type="text/javascript"></script>
LLLOKIJUH
}
## フォーム背景
$ScriptTag .=$FormTDcss;



$TempFile='pc_1.html';
&PrintOUT;
exit;
}




### 入力チェック
sub CHK{
$EMG='';  $FormCHmode=1; # チェックモード
$Group_CHD="\t";  ## グループ内項目でNGがあったグループNo
$Group_OKF="\t";  ## グループ化済みのグループNo
$KAKUNINtable=''; # 確認用Table
$HiddenTags=''; # フォーム内容hidden
# UP File用 No
srand;
$pid=int(rand(500)+1);
$RdatP = sprintf ("%03d", "$pid"); 
$no=time().$RdatP;


$B=0;
foreach $nm(@FdataLine)
	{
$GroupMode=0;  $MakedFOrmer_CH='';
$nm =~ s/\_\:RtrnTagm\:\_/\n/g; $nm=~ s/&quot;/\"/g; $nm=~ s/<br>/<br \/>/ig;
@sapadata= split(/<>/, $nm); &GsepaD;
if($groupNo){ if($Group_OKF !~ /$groupNo/){$GM=$groupNo; &Chek_a_Group;} }
else{ &Chek_a_Form; $B++; }
	}


if($EMG){ $FORM{'RTN'}=1;$FormCHmode=0; &OPEN;}

# 確認メッセージ
$ERMessage=$KakuninMSG;
## フォーム背景
$ScriptTag .=$FormTDcss;


$ContentData = <<BHJ1;
<form action="$cgi" method="post" name="FM" id="FM" enctype="multipart/form-data" style="margin:0px;">
<input type="hidden" name="do" value="sender" />
<input type="hidden" name="F" id="F" value="$F" />
<input type="hidden" name="serial" value="$FORM{'serial'}" />
$HiddenTags
BHJ1
# 最初がヘッダーの時、tableタグはセットしない
if(!$topHeadON){ $ContentData .="<table cellspacing=1 cellpadding=5 class=\"formTable\" summary=\"form\">"; }

$ContentData .= <<BHJ1;
$KAKUNINtable
</table>
<div class="submitset"><input type="submit" value="送信" style="width:100px;" /> <input type="submit" name="RTN" id="RTN" value="戻る" style="width:100px;" /></div>
</form>
BHJ1


#hr>
#<pre>
#$MailData
#</pre>

$TempFile='pc_2.html';
&PrintOUT;
exit;



}








######################## 送信
sub SENDER{
if($FORM{'RTN'}){&OPEN;}
if(!$FORM{'serial'}){&er();}
$DAYF=$FormBaseDir.'form'.$F . '/dayform.dat'; ## ログNo.記録DAT
$Logs=$FormBaseDir.'form'.$F . '/maillog/'; ## ログ保管Dir

$EMG='';  $FormCHmode=1; # チェックモード
$Sendmode=1;# *-*

####### DATA 集め
$Group_CHD="\t";  ## グループ内項目でNGがあったグループNo
$Group_OKF="\t";  ## グループ化済みのグループNo
$MailData='';  ## メール用DATA
@MoFiles=(); ## 本Dirに移動するFile
&date;
$LogData=$FORM{'serial'}."<>$DAYTIME"; # LOG用DATA
$CSVhead="シリアルNo.<>受信日時";  ## CSVヘッダ????????????/

$B=0;
foreach $nm(@FdataLine)
	{
$GroupMode=0;
$nm =~ s/\_\:RtrnTagm\:\_/\n/g; $nm=~ s/&quot;/\"/g; $nm=~ s/<br>/<br \/>/ig;
@sapadata= split(/<>/, $nm); &GsepaD;
if($groupNo){ if($Group_OKF !~ /$groupNo/){$GM=$groupNo; &Chek_a_Group;} }
else{ &Chek_a_Form; $B++; }
	}

if($EMG){ $FORM{'RTN'}=1;$FormCHmode=0; &OPEN;}
$CSVhead .= "<>ホスト、ブラウザ";


#####
#$CSVhead =~ s/<>/<br>/g;
#&er("$CSVhead");
#######



#ダブリ送信チェック
open(LOG, "$DAYF");
@NUMB = <LOG>;
close (LOG);
chomp(@NUMB);
$NoeNum = shift(@NUMB);
$Wlog=$Logs . $NoeNum; # 最新LOG


if(-f $Wlog){
open(WLOG, "$Wlog");
@WDAT = <WLOG>;
close (WLOG);
chomp(@WDAT);
	foreach $Wb (@WDAT)
	{
	@d_S= split(/<>/, $Wb);
	if($d_S[0] eq $FORM{'serial'}){ &er("すでに送信済みです。"); }
	}
}else{
if(!$NoeNum){
$Newlog=(time) .'.cgi';
open(OUT, "+< $DAYF");
flock(OUT, 2);
@lines = <OUT>;
chomp(@lines);
seek(OUT, 0, 0);
	print OUT "$Newlog\n";
truncate(OUT, tell(OUT));
close(OUT);
$Wlog=$Logs . $Newlog;
	}else{$Wlog=$Logs . $NoeNum;}
open(LOG, ">$Wlog"); print LOG "$CSVhead\n"; close (LOG); chmod(0766,$Wlog); 
}


## ファイルsubから移動
foreach $mf(@MoFiles)
	{
	$Mmoto=$SubpictDir.$mf; $Msaki=$PictDir.$mf;
	if(-f $Mmoto){ &FCOPY("$Mmoto","$Msaki"); unlink($Mmoto); }
	}

$MailData .="[送信日時]\n$DAYTIME";
$MailData =~ s/\&lt\;/</g; $MailData =~ s/\&gt\;/>/g;  $MailData=~ s/&quot;/\"/g; 
$MailData=~ s/<br>\n|<br \/>\n/\n/ig;## 2重改行防止
$MailData=~ s/<br>|<br \/>/\n/ig;

$RMSG =<<KKKIJUHG;
$ThisFormTitleより、フォームの送信がありました。

$MailData
[ホスト]
$ENV{'REMOTE_HOST'} ($ENV{'REMOTE_ADDR'})
[ブラウザ]
$ENV{'HTTP_USER_AGENT'}
KKKIJUHG



##### ログMAX Orverの時、新規ログ作る  $Maxlog があるときのみ
if($Maxlog){#++++++++
$Wsize = -s $Wlog;
if($Wsize >= ($Maxlog*1000)){
$Newlog=(time) .'.cgi';
$Wlog=$Logs . $Newlog;
open(LOG, ">$Wlog"); print LOG "$CSVhead\n"; close (LOG); chmod(0766,$Wlog); 

open(OUT, "+< $DAYF");
flock(OUT, 2);
@lines = <OUT>;
chomp(@lines);
seek(OUT, 0, 0);
	print OUT "$Newlog\n";
	foreach $Yb (@lines) { print OUT "$Yb\n"; }
truncate(OUT, tell(OUT));
close(OUT);
}

$NTe=time();
$NEWDATA="$LogData<>$ENV{'REMOTE_HOST'}\($ENV{'REMOTE_ADDR'}\)、$ENV{'HTTP_USER_AGENT'}";
$NEWDATA=~ s/\n/<br \/>/g;

### ログ書込み
open(OUT, "+< $Wlog");
flock(OUT, 2);
@log_lines = <OUT>;
chomp(@log_lines);
seek(OUT, 0, 0);
$Lch=@log_lines; 
if(!$Lch){ print OUT "$CSVhead\n"; } ## 白紙の時はCSVヘッドを入れる
else{ $varHead = shift(@log_lines); print OUT "$varHead\n"; }
print OUT "$NEWDATA\n";
foreach $Yb (@log_lines){ print OUT "$Yb\n"; }
truncate(OUT, tell(OUT));
close(OUT);
}#++++++++


#### 送信者へ送信
&SendingUSR;

#### 管理者へ送信
$subject="$ThisFormTitle−" ."$sendingNAME様"; 
$MSG=$RMSG;
&SendingAdmini;

## フォーム背景
$ScriptTag .=$FormTDcss;

$ContentData=<<KKKIJHGH;
<div class="center">
$EndingMSG
</div>
KKKIJHGH

## 戻るボタン
$BackBTN="<form><input type=\"button\" value=\"戻る\" onClick=\"location.href = '$cgi?F=$F'\" style=\"width:100px;\" /></form>";


# 解析コード
$ENDscript=$endingScript;

$TempFile='pc_2.html';
&PrintOUT;
exit;


}





## ファイルコピー &FCOPY("コピー元","コピー先");
sub FCOPY{
$Buf='';
if(open(MOTO, "$_[0]")){
binmode(MOTO);
binmode(STDOUT);
while(<MOTO>){$Buf .= $_;}
close (MOTO);

open(OUT,"> $_[1]");
flock(OUT,2);
binmode(OUT);
binmode(STDOUT);
print OUT "$Buf";
close(OUT);
chmod (0666,$_[1]);
}
}






#### $ckh= Hsujichk("$tel");   半角数字以外含む $suji_ckk=1  OK $suji_ckk=0 
sub Hsujichk{
$suji_ckk=0; $testck=$_[0];
$testck=~ s/\-//g; $testck=~ s/\−//g;  $testck=~ s/\ー//g;
if($testck){
if($testck =~ /[^0-9]/ ){$suji_ckk=1;} 
}
return $suji_ckk;
}

#### $ckh= Heisujichk("$tel");   半角英数字以外含む $eisuji_ckk=1  OK $eisuji_ckk=0 
sub Heisujichk{
$eisuji_ckk=0; $testcke=$_[0];
if($testcke){
$testcke=~ s/\＠/\@/g; $testcke=~ s/\．/\./g; $testcke =~ s/\ //g; $testcke =~ s/\　//g;
 if($testcke =~ /[^a-zA-Z0-9]/ ){$eisuji_ckk=1;} 
}
return $testcke;
}





##### Temp読み込みページ表示
sub PrintOUT{
$OpenTMP=$TempDirBase.'form'.$F.'/'.$TempFile;
open(JLOG, "$OpenTMP");
@TMPdataLine = <JLOG>;
close (JLOG);
#chomp(@TMPdataLine);
&jcode::convert(\$ThisFormTitle, 'sjis');
&jcode::convert(\$ERMessage, 'sjis');
&jcode::convert(\$ContentData, 'sjis');
&jcode::convert(\$ScriptTag, 'sjis'); #--**
&jcode::convert(\$ENDscript, 'sjis');
&jcode::convert(\$Hitu, 'sjis');
&jcode::convert(\$BackBTN, 'sjis');

print "Content-type: text/html; charset=Shift_JIS\n\n";
foreach $data (@TMPdataLine)
{
$data=~ s/<\!--Temp_FormTitle\-->/$ThisFormTitle/g;
$data=~ s/<\!--Temp_HissuIcon\-->/$Hitu/g;
$data=~ s/<\!--Temp_Script\-->/$ScriptTag/g;
$data=~ s/<\!--Temp_Message\-->/$ERMessage/g;
$data=~ s/<\!--Temp_FormTable\-->/$ContentData/g;
$data=~ s/<\!--Temp_AnalysisCode\-->/$ENDscript/g;
$data=~ s/<\!--Temp_BackBouton\-->/$BackBTN/g;
print "$data";
}
exit;
}


### 無地
sub Muji{
print "Content-type: text/html; charset=Shift_JIS\n\n";
print <<JSKHGFD;
<html>
<body bgcolor="#ffffff">
</body>
</html>
JSKHGFD
exit;
}


sub er{
if($_[0]){$eerm=$_[0];}else{$eerm="エラーが発生しました。お手数ですが、最初からやり直して下さい。"; }
## フォーム背景
$ScriptTag .=$FormTDcss;

$ContentData=<<KKKIJHGH;
<br />
<div class="center">
<p>
<big>$eerm</big>
</p>
KKKIJHGH

if(!$_[1]){
$ContentData .=<<KKKIJHGH;
<form><input type="button" value="戻る" onClick="location.href = '$cgi?F=$F'" style="width:100px;" /></form>
KKKIJHGH
}

$ContentData .=<<KKKIJHGH;
</div>
KKKIJHGH
$TempFile='pc_2.html';
&PrintOUT;
exit;
}



sub date{
if(!$_[0]){$TT=(time);}else{$TT=$_[0];}
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($TT);
	if ($year < 10)  { $year = "0$year";  }
	if ($sec < 10)  { $sec = "0$sec";   }
	if ($min < 10)  { $min = "0$min";   }
	if ($hour < 10) { $hour = "0$hour"; }
	$month = ($mon + 1);  $Nmonth=$month;
	if ($month < 10)  { $month = "0$month";   }
	if ($mday < 10)  { $mday = "0$mday";   }
$wday = ('日','月','火','水','木','金','土')[$wday];
$year = $year+1900;
$DateForm="$year$month$mday";
$date_now="$year$month";
$DAYTIME="$year\/$month\/$mday\/$hour\:$min";
}




### 管理者へ送信Base   $subject  $MSG
sub SendingAdmini{
$MSG =~ s/\&lt\;\&gt\;/<>/g;
$MSG =~ s/\&quot\;/\"/g;
$subject =~ s/\r|\n//g;
$from=$MAILS[0];
foreach $Toadd(@MAILS)
	{
	if($Toadd){ $to=$Toadd; &SendMail; }
	}
}

### ユーザへ送信
sub SendingUSR{
$from = shift(@FmailLine);
$subject = shift(@FmailLine);
$OUTSEND = join( "\n" , @FmailLine);
$sendingMAIL=~ s/\r|\n//g;
$MSG='';
$OUTSEND =~ s/\-Customer\_Name\-/$sendingNAME/g;
$OUTSEND =~ s/\-Customer\_Email\-/$sendingMAIL/g;
$OUTSEND =~ s/\-Customer\_DATA\-/$MailData/g;

$to=$sendingMAIL; 
$MSG=$OUTSEND; 

&SendMail;
}




sub SendMailDmy{
$ensub=$subject; $ensub=~ s/\n//g;
$MSG=~ s/<br>|<br \/>/\n/ig;
&date;
open(LOG, "test.txt");
@logDATA = <LOG>;
close (LOG);

open(LOG, ">test.txt");
flock(LOG,2);
print LOG <<LOGING;
$DAYTIME
Sub: $subject
To: $to
From: $from
MSG: 
$MSG
*************************************************************************************

LOGING
foreach (@logDATA){print LOG ;}
close (LOG);
}



sub SendMail{                             if($Nosend){ &SendMailDmy; return; }
$ensub=$subject; $ensub=~ s/\n//g;
&jcode::convert(\$ensub, "jis");
$ensub = &mimeencode($ensub);
$MSG=~ s/<br>|<br \/>/\n/ig;
&jcode::convert(\$MSG, "jis");
if($to && $from){
open(MAIL,"| $sendmailpass -t -i -f $from");
    print MAIL "From: $from\n";
    print MAIL "To: $to\n";
    print MAIL "Subject: $ensub\n";
    print MAIL "Content-Transfer-Encoding: 7bit\n";
    print MAIL "Content-Type: text/plain; charset=iso-2022-jp\n\n";
    print MAIL "$MSG";
close(MAIL);
}

}



#  ファイルアップロード  # $UPdir=UPぢれくとり  $UPform=フォームname;  $no=ファイル名;
sub UpFile{   
	# 画像処理
	$macbin=0; $NewImg="";  $ImgFile = "";
	foreach (@FORM) {  $Form_name='';
		if ($_ =~ /(.*) name=\"(.*)\"\; /i) { $Form_name=$2;}
		if ($_ =~ /(.*)Content-type:(.*)/i) { $tail=$2;}
		if ($_ =~ /(.*)filename=\"(.*)\"/i) { $fname=$2;}
		if ($_ =~ /application\/x-macbinary/i) { $macbin=1; }


if($Form_name eq $UPform){
$Fsize = length $FORM{"$Form_name"}; $fsi=$Fsize/1000; $Pfsi = sprintf ("%3.2f", $fsi);
if($Fsize > $MaxUPsize && $Form_name =~ /upfile/){
$EMG .="・アップロード可能なファイルサイズは、$MaxUPsizeP kbys までです。<br />　 現在 <span style=\"color:#ff0000\">$Pfsi</span> kbys です。<br />"; $NGID{"$upB"}=1; return;
}elsif($Fsize < 0.001 && $Form_name =~ /upfile/){
$EMG .="・ファイルの中身が無い可能性があります。ご確認後、再度ファイル指定して下さい。<br />"; $nofil=1;$NGID{"$upB"}=1;   return;
}

	$tail =~ s/\r//g;
	$tail =~ s/\n//g;
#	$fname =~ s/\"//g;
	$fname =~ tr/\"\x0D\x0A//d;
$flag='';
if($okfmny){## 許可ファイルチェック
	foreach $TL(@OKtail)
	{
	if($fname =~ /$TL/i) { $tail=$TL; $flag=1;}
	}
}else{## ALL OK
	@tailset= split(/\./, $fname);
	if($tailset[1]){$tail='.'.$tailset[1]; $flag=1;}
}

	# アップロード失敗処理
	if(!$flag){$EMG .="・$Itemnameにご指定のファイルは、アップロードできないファイル形式です。<br />"; $NGID{"$upB"}=1; return;}

	$upfile = $FORM{"$UPform"};

	# マックバイナリ対策
	if ($macbin) {
		$length = substr($upfile,83,4);
		$length = unpack("%N",$length);
		$upfile = substr($upfile,128,$length);
	}

	# 添付データを書き込み
	$no++;
	$NewImg='upfile'.$F.'_'."$no$tail";
	$ImgFile = "$UPdir$NewImg"; 

if( !open(OUT,"> $ImgFile") ){ $EMG .="画像のアップロードに失敗しました。"; $NGID{"$upB"}=1; return; }
	binmode(OUT);
	binmode(STDOUT);
	print OUT "$upfile";
	close(OUT);
	chmod (0666,$ImgFile);

			}	}
}



sub SIZE_BS{
$TRtail = substr($ImgFile,-4,); ($DMY,$TTL) = split(/\./, $TRtail); $TRtail="\.$TTL";  $pictjdat='';
	if ($TRtail eq ".jpg") { ($W, $H) = &JpegSize($ImgFile); }
	elsif ($TRtail eq ".gif") { ($W, $H) = &GifSize($ImgFile); }
	elsif ($TRtail eq ".png") { ($W, $H) = &PngSize($ImgFile); }
	else{$W=""; $H="";}  $psize = (-s $ImgFile)/1000; $psize = round($psize, 1);
	$pictjdat="$W×$H \/ ${psize}k";
}


sub SIZE_DWN{
$DWNflug=0;
if($W && $H){
if ($W > $Wid || $H > $Hig) 
	{
		$DWNflug=1;
		$W2 = $Wid / $W;
		$H2 = $Hig / $H;
		if ($W2 < $H2) { $key = $W2; }else{ $key = $H2; }
		$W = int ($W * $key) || 1;
		$H = int ($H * $key) || 1;
	}
}
}

sub JpegSize {
	local($jpeg) = @_;
	local($t, $m, $c, $l, $W, $H);

	open(JPEG, "$jpeg") || return (0,0);
	binmode JPEG;
	read(JPEG, $t, 2);
	while (1) {
		read(JPEG, $t, 4);
		($m, $c, $l) = unpack("a a n", $t);

		if ($m ne "\xFF") { $W = $H = 0; last; }
		elsif ((ord($c) >= 0xC0) && (ord($c) <= 0xC3)) {
			read(JPEG, $t, 5);
			($H, $W) = unpack("xnn", $t);
			last;
		}
		else {
			read(JPEG, $t, ($l - 2));
		}
	}
	close(JPEG);
	return ($W, $H);
}



sub GifSize {
	local($gif) = @_;
	local($data);

	open(GIF,"$gif") || return (0,0);
	binmode(GIF);
	sysread(GIF,$data,10);
	close(GIF);

	if ($data =~ /^GIF/) { $data = substr($data,-4); }

	$W = unpack("v",substr($data,0,2));
	$H = unpack("v",substr($data,2,2));
	return ($W, $H);
}


sub PngSize {
	local($png) = @_;
	local($data);

	open(PNG, "$png") || return (0,0);
	binmode(PNG);
	read(PNG, $data, 24);
	close(PNG);

	$W = unpack("N", substr($data, 16, 20));
	$H = unpack("N", substr($data, 20, 24));
	return ($W, $H);
}

# 四捨五入 
sub round {
  my ($num, $decimals) = @_;
  my ($format, $magic);
  $format = '%.' . $decimals . 'f';
  $magic = ($num > 0) ? 0.5 : -0.5;
  sprintf($format, int(($num * (10 ** $decimals)) + $magic) /
                   (10 ** $decimals));
}



########################## グループ化フォーム生成
sub Make_a_Group{
$GRformLine=''; $GroupMode=1; $GPS=$GroupEsse{"$GM"}; ##
foreach $GNA(@FdataLine)
	{###
	$GNA =~ s/\_\:RtrnTagm\:\_/\n/g; $GNA =~ s/&quot;/\"/g; $GNA=~ s/<br>/<br \/>/ig;
	@sapadata= split(/<>/, $GNA);
	if($GroupMenber{"$GM"} =~ /$sapadata[0]/ )# グループリストにはいってたら表示ブロックへ
		{
&GsepaD;
if(!$GroupEsse{"$GM"} && $esse){$HisuMark=$HMk;}else{$HisuMark='';}
if($ftype eq "text"){ &MakeForm_txt;}
elsif($ftype eq "textarea"){ &MakeForm_textarea;}
elsif($ftype eq "radio" || $ftype eq "checkbox"){ &MakeForm_radio;}
elsif($ftype eq "select" || $ftype eq "select_multi"){ &MakeForm_select;}
elsif($ftype eq "fileup"){ &MakeForm_fileup;}

$GRformLine .= $MakedFOrmer;
$B++;
		}
	}###

$GPS="";#リセット

if($GroupEsse{"$GM"}){$GroupeHisuMark=$HMk;}else{$GroupeHisuMark='';}
$PrintData .= <<FRMw1;
<tr valign="top">
<td class="formTD1">$GroupeHisuMark$GroupName{"$GM"}</td>
<td class="formTD2">$GRformLine</td>
</tr>

FRMw1

# 処理済みFlugに追加
$Group_OKF .= "$GM\t";
}


###########################  フォーム生成       $front_txt $selectTAG $back_txt
sub Make_a_Form{
$StyleLine=$ime_mode='';
### 設定の表示
if($esse){$HisuMark=$HMk;}else{$HisuMark='';}
# 半角英/数字のみ
if($Checking){ $ime_mode="ime-mode:disabled;"; }
if($maxlength){ $MaxLen="maxlength=\"$maxlength\"";}else{$MaxLen=""; } # 最大文字数
$KakuMSG='';


## 1行テキスト
if($ftype eq "text"){
&MakeForm_txt;
$PrintData .= <<FRMw1;
<tr valign="top">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2">$MakedFOrmer</td>
</tr>

FRMw1
}

## 複数行テキスト
if($ftype eq "textarea"){
&MakeForm_textarea;
$PrintData .= <<FRMw1;
<tr valign="top">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2">
$MakedFOrmer
</td>
</tr>

FRMw1
}


## ラジオ / チェック
if($ftype eq "radio" || $ftype eq "checkbox"){  
&MakeForm_radio;

$PrintData .= <<FRMw1;
<tr valign="top">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2">$MakedFOrmer</td>
</tr>

FRMw1
}

## セレクト  	if($sizeH eq ""){$sizeH=3;}
if($ftype eq "select" || $ftype eq "select_multi"){
&MakeForm_select;

$PrintData .= <<FRMw1;
<tr valign="top">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2">$MakedFOrmer</td>
</tr>

FRMw1
}


## ファイルアップ
if($ftype eq "fileup"){
&MakeForm_fileup;
$PrintData .= <<FRMw1;
<tr valign="top">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2">$MakedFOrmer</td>
</tr>

FRMw1
}

#########------------------------ ↓ 定型
## 名前
if($ftype eq "namein"){
	if($undr_txt){$undr_txt='<br />'.$undr_txt;}
	$nameB='name'.$B;
#必須背景
	my $Hstyle=""; my $Hscript="";
	if($Fchkbg && $Ftd4){ $Hstyle="background-color:#${Ftd4};"; }#記入済
	if($Fchkbg && ($esse || $NGID{"$nameB"})){
		if($FORM{$nameB} eq "" || $NGID{"$nameB"}){$Hstyle="background-color:#${Ftd3};";}#未記入
		$Hscript=" onfocus=\"tin(this);\" onblur=\"tout(this);\"";
	}

	if($sizeW){$StyleLine="style=\"width:${sizeW}px\;$Hstyle\"";}else{ if($Hstyle){ $StyleLine="style=\"$Hstyle\""; } }

$PrintData .= <<FRMw1;
<tr valign="top">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2">$front_txt <input type="text" name="name$B" id="name$B" value="$FORM{$nameB}" size="40" $MaxLen $StyleLine$Hscript /> $back_txt $undr_txt</td>
</tr>
FRMw1
}


## メールフォーム
if($ftype =~ /mailform/){
	$undr_txt0=''; if($undr_txt){$undr_txt0='<br />'.$undr_txt;}
	$EmailB='Email'.$B;  
	$EmailCHKB='EmailCHKB'.$B; # 確認 @前
	$EmailCHKC='EmailCHKC'.$B; # 確認 @後
#必須背景
	my $Hstyle1=""; my $Hstyle2=""; my $Hstyle3=""; my $Hscript=""; my $StyleLine1=""; my $StyleLine2=""; my $StyleLine3="";
	if($Fchkbg && $Ftd4){ $Hstyle1=$Hstyle2=$StyleLine3="background-color:#${Ftd4};"; }#1.2.3記入済

	if($Fchkbg &&( $esse || $NGID{"$EmailB"} || $NGID{"$EmailCHKB"} || $NGID{"$EmailCHKC"})){
		if($FORM{$EmailB} eq "" || $NGID{"$EmailB"}){$Hstyle1="background-color:#${Ftd3};";}#1未記入
		if($FORM{$EmailCHKB} eq "" || $NGID{"$EmailCHKB"}){$Hstyle2="background-color:#${Ftd3};";}#2未記入
		if($FORM{$EmailCHKC} eq "" || $NGID{"$EmailCHKC"}){$Hstyle3="background-color:#${Ftd3};";}#3未記入
		$Hscript=" onfocus=\"tin(this);\" onblur=\"tout(this);\"";
	}
#サイズ
	if($sizeW eq ""){$sizeW=240;} ## デフォは240px
	$StyleLine1="style=\"width:${sizeW}px\;ime-mode:disabled;$Hstyle1\"";
	$StyleLine2="style=\"width:100%;ime-mode:disabled;$Hstyle2\"";
	$StyleLine3="style=\"width:100%;ime-mode:disabled;$Hstyle3\"";

if($ftype eq 'mailform'){
$PrintData .= <<FRMw1;
<tr valign="top">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2"><input type="text" name="Email$B" id="Email$B" value="$FORM{$EmailB}" size="40" $MaxLen $StyleLine1$Hscript /> $back_txt $undr_txt0</td>
</tr>

FRMw1

}else{
$PrintData .= <<FRMw1;
<tr>
<td class="formTD1" valign="top">$HisuMark$Itemname</td>
<td class="formTD2"><input type="text" name="Email$B" id="Email$B" value="$FORM{$EmailB}" size="40" $MaxLen $StyleLine1$Hscript autocomplete="off" oncopy="return false" onselectstart="return false" onselect="blur()" /> $back_txt</td>
</tr>
<tr>
<td class="formTD1" valign="top">$HisuMark$Itemname(確認用)</td>
<td class="formTD2">
	<table cellspacing="0" cellpadding="0" style="width:${sizeW}px">
	<tr>
	<td style="width:40%"><input type="text" name="$EmailCHKB" id="$EmailCHKB" value="$FORM{$EmailCHKB}" size="18" $MaxLen $StyleLine2$Hscript oncopy="return false" onpaste="return false" oncontextmenu="return false" /></td>
	<td style="padding-left:5px;"> ＠ </td>
	<td style="width:60%"><input type="text" name="$EmailCHKC" id="$EmailCHKC" value="$FORM{$EmailCHKC}" size="18" $MaxLen $StyleLine3$Hscript oncopy="return false" onpaste="return false" oncontextmenu="return false" /></td>
	</tr>
	</table>
$undr_txt
</td>
</tr>

FRMw1
}
}



########### 住所
if($ftype =~ /ADD/){
	$postB='post'.$B; $addB='add'.$B; $townB='town'.$B; $oficeB='ofice'.$B;
##必須背景
	my $Hstyle1=""; my $Hstyle2="";  my $Hstyle3=""; my $PostStyle="";
	my $Hscript1=""; my $Hscript2="";  my $Hscript3=""; 
	my $StyleLine1=""; my $StyleLine2=""; my $StyleLine3="";
	if($Fchkbg && $Ftd4){ $Hstyle1=$Hstyle2=$Hstyle3=" background-color:#${Ftd4};"; }#1.2.3記入済
# 〒
if($Fchkbg && $Ftd4){ $PostStyle="background-color:#${Ftd4};"; }# 〒記入済
# 〒必須
if($Fchkbg && $esse == 2){ 
	if($FORM{$postB} eq "" || $NGID{"$postB"}){ $PostStyle="background-color:#${Ftd3};";} 
	$Hscript1=" onfocus=\"tin(this);\" onblur=\"tout(this);\"";
}
$PostSrchBtn=$PosMSG=$ONSCKEY="";
if($srchPost){ 
	$PostSrchBtn=" <span style=\"color:#ff0000\"><small>←郵便番号入力住所表示</small></span>"; $PosMSG=$PostSRHPage;
}else{ $PostSrchBtn=$PostSRHPage;}

# 都道府県
	$ChkUpref=$FORM{"pref$B"};
	$PrefLine=&PREF("pref$B","$ChkUpref");  



##### 住所Type1
if($ftype eq 'ADD1'){
if($srchPost){$ONSCKEY=" onkeyup=\"postsrch01('$B');\" onchange=\"postsrch01('$B');\"";}
	if($Fchkbg && $esse){#必須背景
		if($FORM{"add$B"} eq "" || $NGID{"add$B"}){$Hstyle1="background-color:#${Ftd3};";}#1未記入
		$Hscript2=" onfocus=\"twnin(this);\" onblur=\"twnout(this);\"";
		if($srchPost){$ONSCKEY=" onkeyup=\"postsrch11('$B');\" onchange=\"postsrch11('$B');\"";}
	}

if($sizeW){$StyleLine1=" style=\"width:${sizeW}px\;font-size:13px;$Hstyle1\"";}else{$StyleLine1=" style=\"font-size:13px;$Hstyle1\"";}

$PrintData .= <<FRMw1;
<tr class="vtop">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2">
<table cellspacing="1" cellpadding="1" summary="address">
<tr class="vtop">
<td class="nobr">郵便番号</td><td style="width:10px">：</td>
<td><input type="text" size="12" name="post$B" id="post$B" value="$FORM{$postB}" maxlength="8" style="ime-mode:disabled;width:120px;$PostStyle" $ONSCKEY$Hscript1 />$PostSrchBtn
<br />例) 123-4567又は1234567 $PosMSG
</td>
</tr>
<tr class="vtop">
<td class="nobr">都道府県</td><td style="width:10px">：</td>
<td>$PrefLine</td>
</tr>
<tr class="vtop">
<td class="nobr">市町村番地</td><td style="width:10px">：</td>
<td><textarea name="add$B" id="add$B" rows="$sizeH" cols="40"$Hscript2$StyleLine1>$FORM{$addB}</textarea>
<div id="selsdd$B" class="addframe"></div>
</td>
</tr>
</table>
$undr_txt
</td>
</tr>

FRMw1


### 住所 Type2
}elsif($ftype eq 'ADD2'){
if($srchPost){$ONSCKEY="onkeyup=\"postsrch02('$B');\" onchange=\"postsrch02('$B');\"";}
	if($Fchkbg && $esse){#必須背景
		if($FORM{"add$B"} eq "" || $NGID{"add$B"}){$Hstyle1="background-color:#${Ftd3};";}#1未記入
		if($FORM{"town$B"} eq "" || $NGID{"town$B"}){$Hstyle2="background-color:#${Ftd3};";}#2未記入
		$Hscript2=" onfocus=\"tin(this);\" onblur=\"tout(this);\"";# 市区郡
		$Hscript3=" onfocus=\"twnin(this);\" onblur=\"twnout(this);\"";# 町村字番地
		if($srchPost){$ONSCKEY=" onkeyup=\"postsrch22('$B');\" onchange=\"postsrch22('$B');\"";}
	}

if($sizeW){
	$StyleLine1=" style=\"width:${sizeW}px\;font-size:13px;$Hstyle1\"";
	$StyleLine2=" style=\"width:${sizeW}px\;font-size:13px;$Hstyle2\"";
	$StyleLine3=" style=\"width:${sizeW}px\;font-size:13px;$Hstyle3\"";
}else{
	$StyleLine1=" style=\"font-size:13px;$Hstyle1\"";
	$StyleLine2=" style=\"font-size:13px;$Hstyle2\"";
	$StyleLine3=" style=\"font-size:13px;$Hstyle3\"";
}


$PrintData .= <<FRMw1;
<tr class="vtop">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2">
<table cellspacing="1" cellpadding="1" summary="address">
<tr class="vtop">
<td class="nobr">郵便番号</td><td style="width:10px">：</td>
<td><input type="text" size="12" name="post$B" id="post$B" maxlength="8" value="$FORM{$postB}" style="ime-mode:disabled;width:120px;$PostStyle" $ONSCKEY$Hscript1 />$PostSrchBtn </td>
</tr>
<tr class="vtop">
<td></td><td></td>
<td>例) 123-4567又は1234567 $PosMSG</td>
</tr>
<tr class="vtop">
<td class="nobr">都道府県</td><td style="width:10px">：</td>
<td>$PrefLine</td>
</tr>
<tr class="vtop">
<td class="nobr">市区郡</td><td style="width:10px">：</td>
<td><input type="text" size="40" name="add$B" id="add$B" value="$FORM{$addB}"$Hscript2$StyleLine1 /> $front_txt</td>
</tr>
<tr class="vtop">
<td class="nobr">町村字番地</td><td style="width:10px">：</td>
<td><input type="text" size="40" name="town$B" id="town$B" value="$FORM{$townB}"$Hscript3$StyleLine2 /> $back_txt</td>
</tr>
<tr class="vtop">
<td class="nobr">建物名</td><td style="width:10px">：</td>
<td><input type="text" size="40" name="ofice$B" id="ofice$B" value="$FORM{$oficeB}" $StyleLine3 /> $undr_txt
<div id="selsdd$B" class="addframe"></div>
</td>
</tr>
</table>
</td>
</tr>

FRMw1



}

$ADDSC_ON=1; ### 〒検索Flug

}





## パスワード
if($ftype =~ /password/){
#必須背景
	my $Hstyle1=""; my $Hstyle2=""; my $Hscript=""; my $StyleLine1=""; my $StyleLine2="";
	if($Fchkbg && $Ftd4){ $Hstyle1=$Hstyle2=" background-color:#${Ftd4};"; }#1.2記入済
	if($undr_txt){$undr_txt='<br />'.$undr_txt;}
	$SSWAB='SSWA'.$B; $SSWBB='SSWB'.$B;

	if($Fchkbg && ($esse || $NGID{"$SSWAB"} || $NGID{"$SSWBB"})){
		if($FORM{$SSWAB} eq "" || $NGID{"$SSWAB"}){ $Hstyle1=" background-color:#${Ftd3};";}#1未記入
		if($FORM{$SSWBB} eq "" || $NGID{"$SSWBB"}){ $Hstyle2=" background-color:#${Ftd3};";}#2未記入
		$Hscript=" onfocus=\"tin(this);\" onblur=\"tout(this);\"";
	}

	if($sizeW || $Checking){
		$Sizing=$Disaing='';
		if($sizeW){ $Sizing="width:${sizeW}px\;"; }
		if($Checking){ $Disaing="ime-mode:disabled;"; }
		$StyleLine1=" style=\"$Sizing $Disaing$Hstyle1\"";  $StyleLine2=" style=\"$Sizing $Disaing$Hstyle2\"";
	}



if($ftype eq 'password'){
$PrintData .= <<FRMw1;
<tr class="vtop">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2"><input type="password" name="SSWA$B" id="SSWA$B" value="$FORM{$SSWAB}" size="20" $MaxLen$StyleLine1$Hscript autocomplete="off" /> $back_txt $undr_txt</td>
</tr>

FRMw1

}else{
$PrintData .= <<FRMw1;
<tr class="vtop">
<td class="formTD1">$HisuMark$Itemname</td>
<td class="formTD2"><input type="password" name="SSWA$B" id="SSWA$B" value="$FORM{$SSWAB}" size="20" $MaxLen $StyleLine1$Hscript autocomplete="off" /> $back_txt</td>
</tr>
<tr>
<td class="formTD1">$HisuMark$Itemname\(確認用)</td>
<td class="formTD2"><input type="password" name="SSWB$B" id="SSWB$B" value="$FORM{$SSWBB}" size="40" $MaxLen $StyleLine2$Hscript autocomplete="off" /> $back_txt $undr_txt</td>
</tr>

FRMw1
}
}


## 画像認証
if($ftype eq 'seqpict'){
$SEQB='SEQ'.$B;
$Sizing=''; my $Hstyle="";  my $Hscript="";
#必須背景
if($Fchkbg){
	if($Ftd4){ $Hstyle=" background-color:#${Ftd4};"; }#記入済
	if($FORM{$SEQB} eq "" || $NGID{"$SEQB"}){ $Hstyle=" background-color:#${Ftd3};";}#1未記入
	$Hscript=" onfocus=\"tin(this);\" onblur=\"tout(this);\"";
}

if($sizeW){ $Sizing="width:${sizeW}px\;$Hstyle"; }
&MakeSeqIMG;

$PrintData .= <<FRMw1;
<tr class="vtop">
<td class="formTD1">$HMk$Itemname</td>
<td class="formTD2">
<table cellspacing="0" cellpadding="0" summary="authentication">
<tr>
	<td>$ImgLinkTAG</td>
	<td style="width:5px"></td>
	<td><input type="text" size="10" name="binpass" id="binpass" class="seq_form" style="ime-mode:disabled;$Sizing" value=""$Hscript autocomplete="off"  /></td>
</tr>
</table>
$undr_txt
<input type="hidden" name="bn" value="$BimgNo" />
<input type="hidden" name="stm" value="$Stime" />
</td>
</tr>

FRMw1
}



## 規約
if($ftype eq 'kiyaku'){
open(LOG, "$kiyaku_F"); $kiyaku_txt = <LOG>;close (LOG);
if($FORM{'kiyaku_chk'}){ $kiyakuCH=" checked=\"checked\""; }else{ $kiyakuCH=""; }
my $Hstyle="";  my $Hscript="";
#必須背景
if($Fchkbg){
	if($Ftd4){ $Hstyle=" style=\"background-color:#${Ftd4};padding:1px\""; }#記入済
	if(!$FORM{'kiyaku_chk'}){ $Hstyle=" style=\"background-color:#${Ftd3};padding:1px\"";}#1未記入
	$Hscript=" onclick=\"cbxin('kiyaku_chk')\"";
}

$PrintData .= <<FRMw1;
<tr class="vtop">
<td class="formTD1">$Hitu$Itemname</td>
<td class="formTD2">
<div style="width:${sizeW}px;height:${sizeH}px;overflow:auto;" class="kiyaku_frame">$kiyaku_txt</div>
<div id="kiyaku_chktable"$Hstyle>
<div class="kiyaku_chek"><input type="checkbox" name="kiyaku_chk" id="kiyaku_chk" value="1"$kiyakuCH$Hscript />$back_txt</div>
<div class="kiyaku_Inst">$front_txt</div>
</div>
</td>
</tr>
FRMw1
}


## Hidden
if($ftype =~ /hidden/){
$PrintData .= <<FRMw1;
$HisuMark$Itemname
FRMw1
}


## ブロックヘッダ
if($ftype eq "BlockHead"){
if($B){$PrintData .="</table>\n"; }
$Item=$Utxt="";
if($Itemname){
	$Item="<div class=\"BlockTitle\">$Itemname</div>\n";
}
if($undr_txt){
	 $Bundr_txt=&MetaEnc("$undr_txt");  $Utxt="$Bundr_txt"; $Utxt =~ s/\n/<br \/>/g;
	$Utxt="<div class=\"BlockTxt\"><table summary=\"blockmessage\"><tr><td>$Utxt</td></tr></table></div>";
	#$Utxt="<div class=\"BlockTxt\"><span>$Utxt</span></div>";
}

$PrintData .= <<FRMw1;
$Item$Utxt
<table cellspacing="1" cellpadding="5" class="formTable" summary="form">
FRMw1
}


$PrintData =~ s/\&lt\;\&gt\;/<>/g;
}




########################## チェック用グループ化
sub Chek_a_Group{
$GRformLine=''; $MailMSGline=''; $GroupMode=1; 
$GRlogData='';
$GRcsvData='';
foreach $GNA(@FdataLine)
	{###
	$GNA =~ s/\_\:RtrnTagm\:\_/\n/g; $GNA =~ s/&quot;/\"/g;  $GNA=~ s/<br>/<br \/>/ig;
	$MakedFOrmer=$MakedFOrmer_CH='';
	@sapadata= split(/<>/, $GNA);&GsepaD;
	if($GroupMenber{"$GM"} =~ /$sapadata[0]/ )# グループリストにはいってたらチェック
		{
&Chek_a_Form;
#if(!$GroupEsse{"$GM"} && $esse){$HisuMark=$HMk;}else{$HisuMark='';}
$GRformLine .= $MakedFOrmer;
$MailMSGline .= $MakedFOrmer_CH;
$B++;
		}
	}
$KAKUNINtable .= <<FRMw1;
<tr class="vtop">
<td class="formTD1">$GroupName{"$GM"}</td>
<td class="formTD2">$GRformLine</td>
</tr>

FRMw1

#### 最初の改行を取り除く Mail
$expY=substr($MailMSGline,0,1);
if($expY eq "\n"){ $MailMSGline=substr($MailMSGline,1,); }

$MailData .=<<LKIJUHY;
[$GroupName{"$GM"}\]
$MailMSGline
LKIJUHY
$LogData.=$GRlogData; 
# 処理済みFlugに追加
$Group_OKF .= "$GM\t";
}


###########################  フォーム内容チェック
sub Chek_a_Form{
$FB='F'.$B; $GTK=''; $LTK=''; $ngf=0; 
$LaningFB=$FORM{$FB}; $LaningFB =~ s/\n/<br \/>/g; $LaningFB=~ s/&quot;/\"/g;

## テキスト
if($ftype eq "text" || $ftype eq "textarea"){
	if($FORM{$FB} eq ""){
		if($groupNo && $GroupEsse{"$groupNo"} && $Group_CHD !~ /$groupNo/){ $EMG .="・ $GroupName{$groupNo} にご記入漏れがございます。<br />"; $Group_CHD .= "$groupNo\t"; $ngf=1; }
		else{ if($esse){ $EMG .="・ $Itemname をご記入下さい。<br />"; $ngf=1;} }
	}else{
		if($Checking){
			$GTK=IndataCeking("$FB","$Checking","$HU");
			if($groupNo && $Group_CHD !~ /$groupNo/ && $GTK){ $EMG .="・ $GroupName{$groupNo} のご記入に不適切な文字が含まれています。<br />"; $Group_CHD .= "$groupNo\t"; $ngf=1;}
			else{ if($GTK){$EMG .="・ $Itemname は、$GTK<br />"; $ngf=1;} }
		}
	}

if(!$ngf){ $LTK=LengsCheking("$FB","$minilength","$maxlength","0"); if($LTK){$EMG .="・ $Itemname は、$LTK<br />"; $ngf=1;}  }
if($ngf){ $NGID{"$FB"}=1; }

if($ftype eq "text"){&MakeForm_txt;}else{&MakeForm_textarea;}
if(!$groupNo){
$KAKUNINtable .=<<MMNBVCC;
<tr class="vtop">
<td class="formTD1">$Itemname</td>
<td class="formTD2">$MakedFOrmer_CH</td>
</tr>

MMNBVCC
$MailData .=<<LKIJUHY;
[$Itemname\]
$MakedFOrmer_CH
LKIJUHY
   
if($LogsetAll){ $LogData.="<>$FORM{$FB}"; }else{ $LogData.="<>"; }# 記録設定時
if($sapadata[18]){$gpn=$GroupName{"$sapadata[18]"}.'/';}  if($back_txt){$tanni="\($back_txt\)"; }  #$CSVhead .="<>$gpn$Itemname$tanni";
}

}


## ラジオ/チェック/ select / select_multi
if($ftype eq "radio" || $ftype eq "checkbox" || $ftype eq "select" || $ftype eq "select_multi"){
	if($FORM{$FB} eq ""){
		if($groupNo && $GroupEsse{"$groupNo"} && $Group_CHD !~ /$groupNo/){ $EMG .="・ $GroupName{$groupNo} にご記入漏れがございます。<br />"; $Group_CHD .= "$groupNo\t";}
		else{ if($esse){ $EMG .="・ $Itemname をご選択下さい。<br />";} }
	}

if($ftype eq "radio" || $ftype eq "checkbox"){&MakeForm_radio;}
elsif($ftype eq "select" || $ftype eq "select_multi"){ &MakeForm_select; }

if(!$groupNo){
$KAKUNINtable .=<<MMNBVCC;
<tr class="vtop">
<td class="formTD1">$Itemname</td>
<td class="formTD2">
$MakedFOrmer_CH
</td>
</tr>

MMNBVCC
$MailData .=<<LKIJUHY;
[$Itemname\]
$MakedFOrmer_CH
LKIJUHY
 
if($LogsetAll){ $LogData.="<>$LaningFB"; }else{ $LogData.="<>"; }# 記録設定時
if($sapadata[18]){$gpn=$GroupName{"$sapadata[18]"}.'/';}  if($back_txt){$tanni="\($back_txt\)"; } # $CSVhead .="<>$gpn$Itemname$tanni";
}

}


# ファイルアップ  ※他の入力エラー時でもUPだけはする
if($ftype eq "fileup"){
$upB='upfile'.$B;  $NewUpfilN='new_Data'.$B;  $delflug='fildel'.$B; $kesiF='';
if($FORM{"$NewUpfilN"} && $FORM{$delflug}){$kesiF=$SubpictDir.$FORM{"$NewUpfilN"}; if(-f $kesiF){unlink("$kesiF");} $FORM{"$NewUpfilN"}='';}

	if($FORM{$upB} eq ""){# 入力無い時
		if($FORM{"$NewUpfilN"} eq ""){
			if($groupNo && $GroupEsse{"$groupNo"} && $Group_CHD !~ /$groupNo/){ $EMG .="・ $GroupName{$groupNo} にご記入漏れがございます。<br />"; $Group_CHD .= "$groupNo\t"; $NGID{"$upB"}=1;}
			else{ if($esse){ $EMG .="・ $Itemname をご指定下さい。<br />"; $NGID{"$upB"}=1; } }
		}
	}else{# 入力ある時
	$UPdir=$SubpictDir; $UPform=$upB; 
	&UpFile; if($NewImg){ $FORM{"$NewUpfilN"}=$NewImg; if(-f $kesiF){unlink("$kesiF");}  }
	}

&MakeForm_fileup;
if(!$groupNo){
$KAKUNINtable .=<<MMNBVCC;
<tr class="vtop">
<td class="formTD1">$Itemname</td>
<td class="formTD2">
$MakedFOrmer_CH
</td>
</tr>

MMNBVCC
$MailData .=<<LKIJUHY;
[$Itemname\]
$FilesURL
LKIJUHY
  
if($LogsetAll){ $LogData.="<>$FORM{$ND}"; }else{ $LogData.="<>"; }
$CSVhead .="<>$Itemname";
}

}


## 名前
if($ftype eq "namein"){
$FB='name'.$B;
	if($FORM{$FB} eq ""){
		if($esse){ $EMG .="・ $Itemname をご記入下さい。<br />"; $ngf=1;$NGID{"$FB"}=1;} 
	}
if(!$ngf){ $LTK=LengsCheking("$FB","$minilength","$maxlength","0"); if($LTK){$EMG .="・ $Itemname は、$LTK<br />"; $NGID{"$FB"}=1;}  }


if($FORM{$FB} eq ""){$back_txt= "";}
if(!$groupNo){
$KAKUNINtable .=<<MMNBVCC;
<tr class="vtop">
<td class="formTD1">$Itemname</td>
<td class="formTD2">$FORM{$FB} $back_txt<input type="hidden" name="$FB" value="$FORM{$FB}" /></td>
</tr>

MMNBVCC
$MailData .=<<LKIJUHY;
[$Itemname\]
$FORM{$FB} $back_txt
LKIJUHY
if($LogsetAll){ $LogData.="<>$FORM{$FB}"; }else{ $LogData.="<>"; }
if($back_txt){$tanni="\($back_txt\)"; }  $CSVhead .="<>$Itemname$tanni";
}
}


## メールフォーム
if($ftype =~ /mailform/){
$FB='Email'.$B;   $OKM=0;
	$FBchkB='EmailCHKB'.$B; # 確認 @前
	$FBchkC='EmailCHKC'.$B; # 確認 @後
	if($FORM{$FB} eq ""){ if($esse){ $EMG .="・ $Itemname をご記入下さい。<br />";$ngf=1;$NGID{"$FB"}=1;}   }
	else{$GTK=&IndataCeking("$FB","Mail","");if($GTK){$EMG .="・ $Itemname は、$GTK<br />";$ngf=1; $NGID{"$FB"}=1; }else{$OKM++;} }

$KAKUNINtable .=<<MMNBVCC;
<tr class="vtop">
<td class="formTD1">$Itemname</td>
<td class="formTD2">$FORM{$FB}
<input type="hidden" name="$FB" value="$FORM{$FB}" />
<input type="hidden" name="$FBchkB" value="$FORM{$FBchkB}" />
<input type="hidden" name="$FBchkC" value="$FORM{$FBchkC}" />
</td>
</tr>

MMNBVCC
$MailData .=<<LKIJUHY;
[$Itemname\]
$FORM{$FB}
LKIJUHY

if($LogsetAll){ $LogData.="<>$FORM{$FB}"; }else{ $LogData.="<>";}
$CSVhead .="<>$Itemname";

## E-Mail 確認用    必須 or 叉は必須でなくてもE-Mail入力されてる時
if($ftype eq 'mailform_K' && ($esse || $FORM{$FB})){
	$dr1=&IndataCeking("$FBchkB","Mail","");  $FORM{"$FBchkB"} =~ s/＠|\@//g;
	$dr2=&IndataCeking("$FBchkC","Mail","");  $FORM{"$FBchkC"} =~ s/＠|\@//g;  $mailER=0;
	if($FORM{$FBchkB} eq "" || $FORM{$FBchkC} eq ""){ 
		$EMG .="・ $Itemname\(確認用\) をご記入下さい。<br />";$ngf=1; $mailER=1;
		if($FORM{$FBchkB} eq ""){ $NGID{"$FBchkB"}=1; }  if($FORM{$FBchkC} eq ""){ $NGID{"$FBchkC"}=1; }
	}else{
		if(!$mailER){
			$Chkmail=$FORM{$FBchkB}.'@'.$FORM{$FBchkC};
		if($FORM{$FB} ne $Chkmail){ $EMG .="・ $Itemname と $Itemname\(確認用\) が同じアドレスになる様にご記入下さい。<br />"; $ngf=1; $NGID{"$FBchkB"}=$NGID{"$FBchkC"}=1;}
		}
	}
}

}



## 住所
if($ftype =~ /ADD/){
	$postB='post'.$B; $addB='add'.$B; $townB='town'.$B; $oficeB='ofice'.$B; $prefB='pref'.$B;
	if($FORM{$postB} eq "" && $esse == 2){ $EMG .="・ $Itemname の郵便番号をご記入下さい。<br />"; $NGID{"$postB"}=1;}
	$NGflig=0;
if($ftype eq 'ADD1'){
	if($esse){
		if($FORM{$prefB} eq "" || $FORM{$addB} eq ""){ $EMG .="・ $Itemname にご記入漏れがございます。<br />";  if($FORM{$prefB} eq ""){$NGID{"$prefB"}=1;} if($FORM{$addB} eq ""){$NGID{"$addB"}=1;}     }
		else{  $TestaddB=$FORM{$addB}; &jcode::tr(\$TestaddB, '０-９', '0-9');   if($TestaddB !~ /[0-9]/ ){ $EMG .= "・ $Itemname\の番地をご記入下さい。<br />"; $NGID{"$addB"}=1;}      }
	}

$KAKUNINtable .=<<MMNBVCC;
<tr class="vtop">
<td class="formTD1">$Itemname</td>
<td class="formTD2">
<table cellspacing="1" cellpadding="1" summary="address">
<tr class="vtop">
<td class="nobr">郵便番号</td><td style="width:10px">：</td>
<td>$FORM{$postB} <input type="hidden" name="$postB" value="$FORM{$postB}" /></td>
</tr>
<tr class="vtop">
<td class="nobr">都道府県</td><td style="width:10px">：</td>
<td>$FORM{$prefB} <input type="hidden" name="$prefB" value="$FORM{$prefB}" /></td>
</tr>
<tr class="vtop">
<td class="nobr">市町村番地</td><td style="width:10px">：</td>
<td>$FORM{$addB} <input type="hidden" name="$addB" value="$FORM{$addB}" /></td>
</tr>
</table>
</td>
</tr>

MMNBVCC
$MailData .=<<LKIJUHY;
[$Itemname\]
郵便番号：$FORM{$postB}
都道府県：$FORM{$prefB}
市町村番地：$FORM{$addB}
LKIJUHY
  
if($LogsetAll){ $LogData.="<>$FORM{$postB}<>$FORM{$prefB}<>$FORM{$addB}"; }else{$LogData.="<><><>";}
$CSVhead .="<>$sapadata[2]/郵便番号<>$sapadata[2]/都道府県<>$sapadata[2]/市町村番地";
}else{
	if($esse){
		if($FORM{$prefB} eq "" || $FORM{$addB} eq "" || $FORM{$townB} eq ""){ 
				$EMG .="・ $Itemname にご記入漏れがございます。<br />"; 
				if($FORM{$prefB} eq ""){$NGID{"$prefB"}=1;} 
				if($FORM{$addB} eq ""){$NGID{"$addB"}=1;}
				if($FORM{$townB} eq ""){$NGID{"$townB"}=1;}
		}else{  $TestaddB=$FORM{$townB}; &jcode::tr(\$TestaddB, '０-９', '0-9');   if($TestaddB !~ /[0-9]/ ){ $EMG .= "・ $Itemname\の番地をご記入下さい。<br />"; $NGID{"$townB"}=1; }      }
	}

$KAKUNINtable .=<<MMNBVCC;
<tr class="vtop">
<td class="formTD1">$Itemname</td>
<td class="formTD2">
<table cellspacing="1" cellpadding="1" summary="address">
<tr class="vtop">
<td class="nobr">郵便番号</td><td style="width:10px">：</td>
<td>$FORM{$postB} <input type="hidden" name="$postB" value="$FORM{$postB}" /></td>
</tr>
<tr class="vtop">
<td class="nobr">都道府県</td><td style="width:10px">：</td>
<td>$FORM{$prefB} <input type="hidden" name="$prefB" value="$FORM{$prefB}" /></td>
</tr>
<tr class="vtop">
<td class="nobr">市区郡</td><td style="width:10px">：</td>
<td>$FORM{$addB} <input type="hidden" name="$addB" value="$FORM{$addB}" /></td>
</tr>
<tr class="vtop">
<td class="nobr">市町村番地</td><td style="width:10px">：</td>
<td>$FORM{$townB} <input type="hidden" name="$townB" value="$FORM{$townB}" /></td>
</tr>
<tr class="vtop">
<td class="nobr">建物名</td><td style="width:10px">：</td>
<td>$FORM{$oficeB} <input type="hidden" name="$oficeB" value="$FORM{$oficeB}" /></td>
</tr>
</table>
</td>
</tr>

MMNBVCC
$MailData .=<<LKIJUHY;
[$Itemname\]
郵便番号：$FORM{$postB}
都道府県：$FORM{$prefB}
市区郡：$FORM{$addB}
市町村番地：$FORM{$townB}
建物名：$FORM{$oficeB}
LKIJUHY

if($LogsetAll){ $LogData.="<>$FORM{$postB}<>$FORM{$prefB}<>$FORM{$addB}<>$FORM{$townB}<>$FORM{$oficeB}"; }else{ $LogData.="<><><><><>"; }
$CSVhead .="<>$sapadata[2]/郵便番号<>$sapadata[2]/都道府県<>$sapadata[2]/市区郡<>$sapadata[2]/市町村番地<>$sapadata[2]/建物名";
}

}



## パスワード
if($ftype =~ /password/){
	$SSWAB='SSWA'.$B; $SSWBB='SSWB'.$B;  
	if($FORM{$SSWAB} eq "" && $esse){ $EMG .="・ $Itemname をご記入下さい。<br />";$ngf=1; $NGID{"$SSWAB"}=1;} 
	if(!$ngf && $Checking){
	$GTK=IndataCeking("$SSWAB","$Checking","$HU");
	if($GTK){$EMG .="・ $Itemname は、$GTK<br />";$ngf=1;$NGID{"$SSWAB"}=1;}
	}
	if(!$ngf){ $LTK=LengsCheking("$SSWAB","$minilength","$maxlength","$HU"); if($LTK){$EMG .="・ $Itemname は、$FD3S<br />"; $ngf=1;$NGID{"$SSWAB"}=1;}  } #--**


if($ftype eq 'password'){
$KAKUNINtable .=<<MMNBVCC;
<tr class="vtop">
<td class="formTD1">$Itemname</td>
<td class="formTD2">$FORM{$SSWAB} <input type="hidden" name="$SSWAB" value="$FORM{$SSWAB}" /></td>
</tr>

MMNBVCC
$MailData .=<<LKIJUHY;
[$Itemname\]
$FORM{$SSWAB}
LKIJUHY


}else{
	$GTK=$LTK='';
	if($FORM{$SSWBB} eq "" && $esse){ $EMG .="・ $Itemname\(確認用) をご記入下さい。<br />";$ngf=1;$NGID{"$SSWBB"}=1;} 
	if(!$ngf && $Checking){
	$GTK=IndataCeking("$SSWBB","$Checking","$HU");
	if($GTK){$EMG .="・ $Itemname は、$GTK<br />";$ngf=1;$NGID{"$SSWBB"}=1;}
	}
	if(!$ngf){ $LTK=LengsCheking("$SSWBB","$minilength","$maxlength","$HU"); if($LTK){$EMG .="・ $Itemname\(確認用) は、$FD3S<br />"; $ngf=1;$NGID{"$SSWBB"}=1;}  } #--**
	if(!$ngf){ if($FORM{$SSWAB} ne $FORM{$SSWBB}){ $EMG .="・ $Itemname と $Itemname\(確認用\) は同じものをご記入下さい。<br />";$ngf=1;$NGID{"$SSWAB"}=1;$NGID{"$SSWBB"}=1;}    }

$KAKUNINtable .=<<MMNBVCC;
<tr class="vtop">
<td class="formTD1">$Itemname</td>
<td class="formTD2">$FORM{$SSWAB}
<input type="hidden" name="$SSWAB" value="$FORM{$SSWAB}" />
<input type="hidden" name="$SSWBB" value="$FORM{$SSWBB}" />
</td>
</tr>
MMNBVCC

$MailData .=<<LKIJUHY;
[$Itemname\]
$FORM{$SSWAB}
LKIJUHY

}

if($LogsetAll){ $LogData.="<>$FORM{$SSWAB}"; }else{$LogData.="<>";}
$CSVhead .="<>$sapadata[2]";
}



## 画像認証
if($ftype eq 'seqpict'){
if(!$FORM{'stm'}){&er;} 
$DecStime=($FORM{'stm'}/14)+55684210; $dwnT=time()-3600; $upT=time()+600;
if(!($DecStime > $dwnT && $DecStime < $upT)){ $EMG .="・ 最初に戻り、入力し直して下さい。<br />"; }
$Binpass=GetBinpass($FORM{'bn'});  
$FORM{'binpass'}=~ s/　| //g; &jcode::tr(\$FORM{'binpass'}, '０-９', '0-9');
$pictPassER=0;
if($FORM{'binpass'} eq ""){$EMG .="・ 画像に表\示\された数字をご記入下さい。<br />"; $pictPassER=1;}
else{ 
	if($FORM{'binpass'} ne $Binpass){$EMG .="・ 画像に表\示\された数字を再度ご記入下さい。<br />"; $pictPassER=1;} 
}
if($EMG){ 
	$NGID{"binpass"}=1;
	if(!$pictPassER){$EMG .="・ 画像に表\示\された数字を再度ご記入下さい。<br />";}
}
$HiddenTags .=<<MMNBVCC;
<input type="hidden" name="bn" value="$FORM{'bn'}" />
<input type="hidden" name="stm" value="$FORM{'stm'}" />
<input type="hidden" name="binpass" value="$FORM{'binpass'}" />
MMNBVCC
}


## 規約
if($ftype eq "kiyaku"){
	if($FORM{'kiyaku_chk'} eq ""){
		$EMG .="・送信するには、「$back_txt\」 のチェックが必要です。<br />"; $ngf=1;  $NGID{"kiyaku_chk"}=1;
	}
$HiddenTags .=<<MMNBVCC;
<input type="hidden" name="kiyaku_chk" value="$FORM{'kiyaku_chk'}" />
MMNBVCC
}

## ブロックヘッダ
if($ftype eq "BlockHead"){
if($B){$KAKUNINtable .="</table>\n"; }
$KAKUNINtable .=<<MMNBVCC;
<div class="BlockTitle">$Itemname</div>
<table cellspacing="1" cellpadding="5" class="formTable" summary="form">
MMNBVCC

$Onhead=''; if($Itemname){$Onhead="\n■";}
$MailData .=<<LKIJUHY;
$Onhead$Itemname
LKIJUHY
}






}########



#### 入力文字チェック       IndataCeking("$FB","$Checking","$HU");
sub IndataCeking{
$infdata=$_[0];  my($Teking)=$_[1];  my($haiund)=$_[2];  my($kuta)=''; my($AE86)='';
my($testdata)=$FORM{"$infdata"};  $testdata =~ s/&quot;/\"/g;  $testdata=~ s/\&lt\;\&gt\;/<>/g;
if($haiund){$testdata =~ s/\-|\_//g; $kuta="<br />　  - (ハイフン) _ (アンダーバー)も使えます。"; }
if($Teking eq 'Eiji'){ if($testdata =~ /[^a-zA-Z]/){ $AE86="半角英字でご記入下さい。$kuta";} }
if($Teking eq 'Suji'){ if($testdata =~ /[^0-9]/){ $AE86="半角数字でご記入下さい。$kuta";}  }
if($Teking eq 'EiSu'){ if($testdata =~ /[^a-zA-Z0-9]/){ $AE86="半角英数字でご記入下さい。$kuta";}  }
if($Teking eq 'Mail'){ 
	$FORM{"$infdata"} =~ s/\ //g; $FORM{"$infdata"} =~ s/\　//g;
	$FORM{"$infdata"} =~ s/＠/\@/g; $FORM{"$infdata"} =~ s/．/\./g;  
	my($maiL) =$FORM{"$infdata"};
	if($maiL =~ /[^\x21-\x7E]/o || $maiL =~ /[\(\)<>,;:\\"\[\]]/o || $maiL !~ /^[^@]+@[^@]+$/ || $maiL !~ /.+\@.+\..+/)
	{$AE86 ="正しいメールアドレスの形式（半角英数字）でご記入下さい。"; }
}
return $AE86;
}


## 文字数制限  &LengsCheking("$FB","mini","max","半1/全0"); 
sub LengsCheking{
my($butu)=$_[0];  my($MINI)=$_[1];  my($MAX)=$_[2]; my($zenhan)=$_[3]; my($Mi)=''; my($Ma)='';   my($FC3S)='';
my($testdata)=$FORM{"$butu"}; $testdata =~ s/&quot;/\"/g;  $testdata=~ s/\&lt\;\&gt\;/<>/g;
my($tesMinilen)= length $testdata;
if($zenhan){ $Mi=$MINI; $Ma=$MAX;}else{ $Mi=int($MINI/2); $Ma=int($MAX/2);}
if($MINI){ if($tesMinilen < $MINI){ $FC3S="$Mi\文字以上でご記入下さい。"; $FD3S="半角$MINI\文字以上でご記入下さい。"; }  } #--**
if($MAX){ if($tesMinilen > $MAX){ $FC3S="$Ma\文字以下でご記入下さい。"; $FD3S="半角$MAX\文字以下でご記入下さい。"; }  } #--**
return $FC3S;
}



##### 県名プルダウン &PREF("name指定","serect項目");  
sub PREF{
#必須背景
my $Hstyle=""; my $Hscript="";
if($Fchkbg && $Ftd4){ $Hstyle=" style=\"background-color:#${Ftd4};\""; }#記入済
if($Fchkbg && $esse){
	if($FORM{"$_[0]"} eq ""){$Hstyle=" style=\"background-color:#${Ftd3};\"";}#未記入
	$Hscript=" onclick=\"selin(this);\"";
}
$PRlist="<select name=\"$_[0]\" id=\"$_[0]\"$Hscript$Hstyle>\n<option value=\"\"$Hstyle>お選び下さい</option>";
@KEN=("北海道","青森県","秋田県","岩手県","宮城県","山形県","福島県","茨城県","栃木県","群馬県","千葉県","埼玉県","東京都","神奈川県","静岡県","山梨県","新潟県","富山県","石川県","長野県","福井県","岐阜県","愛知県","三重県","滋賀県","奈良県","和歌山県","京都府","大阪府","兵庫県","鳥取県","島根県","岡山県","広島県","山口県","徳島県","香川県","愛媛県","高知県","福岡県","佐賀県","長崎県","熊本県","大分県","宮崎県","鹿児島県","沖縄県","国外");
foreach $KD(@KEN) { if($KD eq $_[1]){$Kser=' selected="selected"';}else{$Kser='';}  $PRlist .="<option value=\"$KD\"$Kser>$KD</option>\n";}
$PRlist .= "</select>\n";
return $PRlist;
}

sub get_host{
	$host = $ENV{'REMOTE_HOST'};
	$addr = $ENV{'REMOTE_ADDR'};
	if ($host eq "" || $host eq $addr) {
		$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2) || $addr;
	}
}

######### 確認用フォーム生成   各  $MakedFOrmer が出る ###########################

# txt  
sub MakeForm_txt{
	$KAI=''; $UI='';
	if($undr_txt){ if($undr_txt ne ' '){$UI='<br />';}  $undr_txt='<br />'.$undr_txt.$UI; $KAI='<br />';} 
	$FB='F'.$B; if(!$FormCHmode && !$FORM{'RTN'}){$FORM{"$FB"}=$def_serect;}

#必須背景
my $Hstyle=""; my $Hscript="";
if($Fchkbg && $Ftd4){ $Hstyle="background-color:#${Ftd4};"; }#記入済
if($Fchkbg && ($esse || $NGID{"$FB"} || $GPS)){
	if($FORM{"$FB"} eq "" || $NGID{"$FB"}){$Hstyle="background-color:#${Ftd3};";}#未記入
	$Hscript=" onfocus=\"tin(this);\" onblur=\"tout(this);\"";
}

if($sizeW){$StyleLine="style=\"width:${sizeW}px\;$ime_mode$Hstyle\"";}else{ if($ime_mode){$StyleLine="style=\"$ime_mode$Hstyle\"";} }

$MakedFOrmer=<<LMKNJBH;
$front_txt <input type="text" name="F$B" id="F$B" value="$FORM{$FB}" size="40" $MaxLen $StyleLine$Hscript /> $back_txt $undr_txt
LMKNJBH
# グループ化の時タイトルを : で付ける
if($GroupMode && $Itemname){ $MakedFOrmer="$HisuMark$Itemname：".$MakedFOrmer;}
$MakedFOrmer_CH='';

if($FormCHmode){# 確認Table
$HiddenTags .="<input type=\"hidden\" name=\"$FB\" value=\"$FORM{$FB}\" />\n"; 
if($LogsetAll){ $GRlogData.="<>".$FORM{$FB}; }else{ $GRlogData.="<>"; }# 記録設定時

if($LaningFB ne ""){ $MakedFOrmer_CH="$front_txt $LaningFB$back_txt ";}
if($GroupMode){
	if($Itemname){ $MakedFOrmer="$Itemname：".$MakedFOrmer_CH.$KAI;    $MakedFOrmer_CH="$Itemname：".$MakedFOrmer_CH.$KAI;}
	else{ $MakedFOrmer=$MakedFOrmer_CH.$KAI;  $MakedFOrmer_CH=$MakedFOrmer_CH.$KAI;}
}
if($sapadata[18]){$gpn=$GroupName{"$sapadata[18]"}.'/';}else{$gpn='';}
if($back_txt){$tanni="\($back_txt\)"; }else{$tanni="";}
$CSVhead .="<>$gpn$Itemname$tanni";

}

}


# textarea
sub MakeForm_textarea{

	if($sizeH eq ""){$sizeH=3;}
	if($front_txt){$front_txt .= '<br />';}
	if($undr_txt){$undr_txt='<br />'.$undr_txt;}
	$FB='F'.$B; if(!$FormCHmode && !$FORM{'RTN'}){$FORM{"$FB"}=$def_serect;}

#必須背景
my $Hstyle=""; my $Hscript="";
if($Fchkbg && $Ftd4){ $Hstyle="background-color:#${Ftd4};"; }#記入済
if($Fchkbg && ($esse || $NGID{"$FB"} || $GPS)){
	if($FORM{"$FB"} eq "" || $NGID{"$FB"}){$Hstyle="background-color:#${Ftd3};";}#未記入
	$Hscript=" onfocus=\"tin(this);\" onblur=\"tout(this);\"";
}

	if($sizeW){
		$StyleLine="style=\"width:${sizeW}px\;font-size:13px; $ime_mode$Hstyle\"";
	}else{ if($ime_mode){$StyleLine="style=\"font-size:13px;$ime_mode$Hstyle\"";}else{$StyleLine="style=\"font-size:13px;$Hstyle\"";} }

$MakedFOrmer=<<LMKNJBH;
$front_txt
<textarea name="F$B" id="F$B" rows="$sizeH" cols="40" $StyleLine$Hscript>$FORM{$FB}</textarea>
$undr_txt
LMKNJBH
# グループ化の時タイトルを : で付ける
if($GroupMode && $Itemname){ $MakedFOrmer="$HisuMark$Itemname：".$MakedFOrmer;}
$MakedFOrmer_CH='';

if($FormCHmode){# 確認Table
$HiddenTags .="<input type=\"hidden\" name=\"$FB\" value=\"$FORM{$FB}\" />\n";  
if($LogsetAll){ $GRlogData.="<>".$FORM{$FB}; }else{ $GRlogData.="<>"; }# 記録設定時
if($LaningFB ne ""){ $MakedFOrmer_CH="$LaningFB"; }
if($GroupMode){ $MakedFOrmer=$MakedFOrmer_CH; if($Itemname){$MakedFOrmer="$Itemname：".$MakedFOrmer."<br>"; $MakedFOrmer_CH=$MakedFOrmer;} }
if($sapadata[18]){$gpn=$GroupName{"$sapadata[18]"}.'/';}else{$gpn='';}
$CSVhead .="<>$gpn$Itemname";
}

}

# radio / checkbox
sub MakeForm_radio{
	$EntryButun=''; $ButunKind=$ftype; @SelectLines=();
	@TmpLines= split(/\n/, $Soption); foreach $pair(@TmpLines){ $pair=&MetaDec("$pair"); push(@SelectLines,"$pair");}# メタ文字対応 ()#\[]+-?|
	$FB='F'.$B; if(!$FormCHmode && !$FORM{'RTN'}){$FORM{"$FB"}=$def_serect;}  $TCHKdefo="\t".$FORM{"$FB"}."\t"; $TCHKdefo=&MetaDec("$TCHKdefo");# メタ文字対応 ()#\[]+-?|

#必須背景
my $Hstyle=""; my $Hscript=""; my $CHdiv1=""; my $CHdiv2="";
if($Fchkbg && ($esse || $GPS)){# 必須の時だけ背景つける
	if($Ftd4){ $Hstyle="background-color:#${Ftd2};"; }#記入済はTD背景色
	if($FORM{"$FB"} eq ""){$Hstyle="background-color:#${Ftd3};";}#未記入
	$Hscript=" onclick=\"cbxin('$FB')\"";
	$CHdiv1="<div style=\"padding:1px;$Hstyle\" id=\"${FB}table\">\n"; $CHdiv2="\n</div>";
}

	if(!$print_line){ foreach $Pfo(@SelectLines){ $tesPfo="\t".$Pfo."\t"; if( $TCHKdefo =~ /$tesPfo/){ $radisele='checked="checked"';}else{$radisele='';}  $EntryButun .="<span class=\"nobr\"><input type=\"$ButunKind\" name=\"F$B\" id=\"F$B\" value=\"$Pfo\"$Hscript $radisele />$Pfo 　</span>"; }  }
	elsif($print_line == 1){ foreach $Pfo(@SelectLines){ $tesPfo="\t".$Pfo."\t"; if($TCHKdefo =~ /$tesPfo/){ $radisele='checked="checked"';}else{$radisele='';}  $EntryButun .="<input type=\"$ButunKind\" name=\"F$B\" id=\"F$B\" value=\"$Pfo\"$Hscript $radisele />$Pfo<br />"; }  }
	else{
$EntryButun="<table cellpadding=\"0\" cellspacing=\"0\" summary=\"checkbox\">\n";
$R=0;
foreach $Pfo(@SelectLines)
	{
	$tesPfo="\t".$Pfo."\t";
	if(!$R){ $EntryButun .= "<tr><td>";}else{$EntryButun .= "</td><td style=\"width:10px;\"></td><td>";}
	if($TCHKdefo =~ /$tesPfo/){ $radisele='checked="checked"';}else{$radisele='';}
$Pfo=~ s/\"/&quot;/g;
	$EntryButun .="<input type=\"$ButunKind\" name=\"F$B\" value=\"$Pfo\"$Hscript $radisele />$Pfo";
	$R++;
	if($R == $print_line){ $EntryButun .= "</td></tr>\n"; $R=0;}
	}
if($R){
	for($R++ ; $R <= $print_line ; $R++ ){ $EntryButun .= "</td><td style=\"width:10px;\"></td><td>　"; if($R == $print_line){ $EntryButun .= "</td></tr>\n";} }
}
$EntryButun .="</table>\n";
	}


$MakedFOrmer=<<LMKNJBH;
$CHdiv1$EntryButun <table cellspacing="2" cellpadding="0" summary="space"><tr><td></td></tr></table> $undr_txt$CHdiv2
LMKNJBH

# グループ化の時タイトルを : で付ける
if($GroupMode && $Itemname){ 
$MakedFOrmer=<<LMKNJBH;
<table cellspacing="0" cellpadding="0" summary="form"><tr>
<td class="vtop">$HisuMark$Itemname：</td>
<td>$MakedFOrmer</td>
</tr></table>
LMKNJBH
}
$MakedFOrmer_CH='';

if($FormCHmode){# 確認Table
$HiddenTags .="<input type=\"hidden\" name=\"$FB\" value=\"$FORM{$FB}\" />\n";
$LaningFB=~ s/\t/ \、 /g;   
if($LogsetAll){ $GRlogData.="<>".$LaningFB; }else{ $GRlogData.="<>"; }# 記録設定時
$MakedFOrmer_CH="$LaningFB";
if($GroupMode){
	if($Itemname){ $MakedFOrmer="<table cellspacing=\"0\" cellpadding=\"0\" summary=\"form\"><tr><td>$Itemname：".$MakedFOrmer_CH."</td></tr></table>"; $MakedFOrmer_CH="\n$Itemname：".$MakedFOrmer_CH."<br>";}
	else{$MakedFOrmer="<table cellspacing=\"0\" cellpadding=\"0\" summary=\"form\"><tr><td>$MakedFOrmer_CH</td></tr></table>";  $MakedFOrmer_CH="\n".$MakedFOrmer_CH."<br>";}
}
if($sapadata[18]){$gpn=$GroupName{"$sapadata[18]"}.'/';}else{$gpn='';}   $CSVhead .="<>$gpn$Itemname";
}


}


# select / select_multi
sub MakeForm_select{
	$EntryButun=''; @SelectLines=();
	if($ftype eq "select_multi"){$ButunKind="size=\"${sizeH}\" multiple";}else{$ButunKind='';}
	@TmpLines = split(/\n/, $Soption);  foreach $pair(@TmpLines){ $pair=&MetaDec("$pair"); push(@SelectLines,"$pair");}# メタ文字対応 ()#\[]+-?|
	$FB='F'.$B; if(!$FormCHmode && !$FORM{'RTN'}){$FORM{"$FB"}=$def_serect;}  $TCHKdefo="\t".$FORM{"$FB"}."\t"; $TCHKdefo=&MetaDec("$TCHKdefo");

## 複数選択のとき最初が　なら最初の値＝未入力
if($ftype eq "select_multi" && $SelectLines[0] eq "　"){$Topsel_space=1;}

#必須背景
my $Hstyle=""; my $Hscript="";
if($Fchkbg && $Ftd4){ $Hstyle=" style=\"background-color:#${Ftd4};\""; }#記入済
if($Fchkbg && ($esse || $GPS)){
	if($FORM{"$FB"} eq ""){$Hstyle=" style=\"background-color:#${Ftd3};\"";}#未記入
	$Hscript=" onclick=\"selin(this);\"";
}

	$KAI=''; $UI='';
	if($undr_txt){ if($undr_txt ne ' '){$UI='<br />';}   $undr_txt='<br />'.$undr_txt.$UI; $KAI='<br />';} 
$selectTAG="<select name=\"F$B\" id=\"F$B\" $ButunKind$Hscript$Hstyle>";
$doko=0;
foreach $Pfo(@SelectLines)
	{
	$tesPfo="\t".$Pfo."\t";  
	if($TCHKdefo =~ /$tesPfo/){ $radisele=' selected="selected"';}else{$radisele='';}
$Pfo=~ s/\"/&quot;/g;
	if($Topsel_space && $doko==0){$selectTAG .= "<option value=\"\"$radisele$Hstyle>$Pfo</option>";}
	else{ $selectTAG .= "<option value=\"$Pfo\" $radisele>$Pfo</option>"; }
	$doko++;
	}
$selectTAG .="</select>\n";
$MakedFOrmer=<<LMKNJBH;
$front_txt $selectTAG $back_txt $undr_txt
LMKNJBH
# グループ化の時タイトルを : で付ける
if($GroupMode && $Itemname){ $MakedFOrmer="$HisuMark$Itemname：".$MakedFOrmer;}
$MakedFOrmer_CH='';

if($FormCHmode){# 確認Table
$HiddenTags .="<input type=\"hidden\" name=\"$FB\" value=\"$FORM{$FB}\" />\n";
if($LaningFB ne ""){ $LaningFB=~ s/\t/ \、 /g; $MakedFOrmer_CH="$front_txt $LaningFB$back_txt";}   
if($LogsetAll){ $GRlogData.="<>".$LaningFB; }else{ $GRlogData.="<>"; }# 記録設定時
if($GroupMode){ 
	$MakedFOrmer=$MakedFOrmer_CH; 
	if($Itemname){$MakedFOrmer="$Itemname：".$MakedFOrmer .$KAI; $MakedFOrmer_CH=$MakedFOrmer; } 
	else{$MakedFOrmer=$MakedFOrmer .$KAI; $MakedFOrmer_CH=$MakedFOrmer; } 
}
if($sapadata[18]){$gpn=$GroupName{"$sapadata[18]"}.'/';}else{$gpn='';}  
if($back_txt){$tanni="\($back_txt\)"; }else{$tanni="";}
$CSVhead .="<>$gpn$Itemname$tanni";
}

}


# fileup
sub MakeForm_fileup{
	if($undr_txt){$undr_txt='<br />'.$undr_txt;}
$ND='new_Data'.$B; $PrintPict=$PPT=''; $FilesURL='';
my $Hstyle=""; my $Hscript="";#必須背景

## ファイルある時
if($FORM{$ND}){ 
@filetail = split(/\./, $FORM{$ND}); 
# 画像は表示
if($filetail[1] eq 'gif' || $filetail[1] eq 'jpg' || $filetail[1] eq 'png' ){ 
$ImgFile=$SubpictDir.$FORM{$ND}; &SIZE_BS; &SIZE_DWN; 
$PPT="<a href=\"$SubpictDir_url$FORM{$ND}\" target=\"_blank\"><img src=\"$SubpictDir_url$FORM{$ND}\" width=\"$W\" height=\"$H\" alt=\"アップロード画像\" /></a>";
#*-*
if($Sendmode){if($Itemname){ $PPT="$Itemname\n$File_Dir_URL$FORM{$ND}\n";}else{ $PPT="$File_Dir_URL$FORM{$ND}\n";}}
$PrintPict=<<LMKMNNB;
<a href="$SubpictDir_url$FORM{$ND}" target="_blank"><img src="$SubpictDir_url$FORM{$ND}" width="$W" height="$H" alt="アップロード画像" /></a>
<br /><input type="checkbox" name="fildel$B" value="1" />削除
LMKMNNB
# その他のファイルはリンク
}else{
$PPT="<a href=\"$SubpictDir_url$FORM{$ND}\" target=\"_blank\"><b>確認</b></a>";
if($Sendmode){ if($Itemname){ $PPT="$Itemname\n$File_Dir_URL$FORM{$ND}\n";}else{ $PPT="$File_Dir_URL$FORM{$ND}\n";}  }#*-*

$PrintPict=<<LMKMNNB;
<a href="$SubpictDir_url$FORM{$ND}" target="_blank"><b>確認</b></a>
<br /><input type="checkbox" name="fildel$B" value="1" />削除
LMKMNNB
}
$FilesURL=$File_Dir_URL.$FORM{$ND};  push(@MoFiles,"$FORM{$ND}");

}


if($Fchkbg && $Ftd4){ $Hstyle="background-color:#${Ftd2};"; }#記入済はTD背景色
#必須背景
if($Fchkbg && ($esse || $GPS || $NGID{"fildel$B"})){# 必須の時だけ背景つける
	if(!$FORM{$ND} && $FORM{"fildel$B"} eq ""){$Hstyle="background-color:#${Ftd3};";}#未記入
	else{ if($FORM{"fildel$B"} &&  $PrintPict eq ""){$Hstyle="background-color:#${Ftd3};";} }# 削除して戻った時！
	$Hscript=" onfocus=\"fin(this);\" onblur=\"fout('$B');\"";
}

$StyleLine="";
if($sizeW){$StyleLine="style=\"width:${sizeW}px\;$Hstyle\"";}else{ if($Hstyle){$StyleLine="style=\"$Hstyle\"";} }

#*-*
if($GroupMode && $FormCHmode){ $FTupf="";}
else{$FTupf="<input type=\"file\" name=\"upfile$B\" id=\"upfile$B\" size=\"24\" $StyleLine$Hscript /><input type=\"hidden\" name=\"$ND\" value=\"$FORM{$ND}\" />";}
$GRlogData .= "<>$FORM{$ND}";

$MakedFOrmer=<<LMKNJBH;
<table cellspacing="1" cellpadding="0" style="width:100%;$Hstyle" summary="files" id="F${B}table"><tr>
<td class="vtop">
$FTupf
$undr_txt
</td>
<td class="vtop" style="width:${Wid}px">$PrintPict</td>
</tr></table>
LMKNJBH


# グループ化の時タイトルを : で付ける
if($GroupMode && $Itemname){ 
$MakedFOrmer=<<LMKNJBH;
<table cellspacing="1" cellpadding="0" style="width:100%;$Hstyle" summary="form"><tr>
<td class="vtop">$HisuMark$Itemname：</td>
<td class="vtop">
<input type="file" name="upfile$B" id="upfile$B" size="24" $StyleLine$Hstyle\"$Hscript />
<input type="hidden" name="$ND" value="$FORM{$ND}" />
$undr_txt
</td>
<td class="vtop" style="width:${Wid}px">$PrintPict</td>
</tr></table>
LMKNJBH
}

# FileUPメッセージ用 #--**
push(@FupF,"upfile$B");
  

if($FormCHmode){# 確認Table
$HiddenTags .="<input type=\"hidden\" name=\"$ND\" value=\"$FORM{$ND}\" />\n";
$MakedFOrmer_CH="$PPT";
if($GroupMode){## グループ
if($Itemname){#名あり
$MakedFOrmer=<<LMKNJBH;
<table cellspacing="0" cellpadding="0" summary="confirm"><tr>
<td class="vtop">$Itemname：</td>
<td>$MakedFOrmer_CH</td>
</tr></table>
LMKNJBH
}else{#名なし
$MakedFOrmer=<<LMKNJBH;
<table cellspacing="1" cellpadding="1" summary="confirm"><tr>
<td>$MakedFOrmer_CH</td>
</tr></table>
LMKNJBH
}
} 
#*-*
if($GroupMode){ $CSVhead .="<>$GroupName{$GM}/$Itemname"; }
}

}



############# セパレータ &GsepaD;  必@sapadata
sub GsepaD{
$Fsel=$sapadata[0];
$ftype=$sapadata[1];
$Itemname=$sapadata[2];
$esse=$sapadata[3];
$srchPost=$sapadata[4];
$Checking=$sapadata[5];
$HU=$sapadata[6];
#$tani=$sapadata[7];
$def_serect=$sapadata[8];
$Soption=$sapadata[9];  $Soption=~ s/\t/\n/g;
$print_line=$sapadata[10];
$sizeW=$sapadata[11];
$sizeH=$sapadata[12];
$minilength=$sapadata[13];
$maxlength=$sapadata[14];
$front_txt=$sapadata[15];
$back_txt=$sapadata[16];
$undr_txt=$sapadata[17];
$groupNo=$sapadata[18];
$kakuninmail=$sapadata[19];
$Topsel_space=$sapadata[20];
}

## 1354685432<>1354685432.gif<>1234
######### フォームセキュリティ画像 #######################################################
#  必須
# <input type=hidden name="bn" value="$BimgNo">
# <input type=hidden name="stm" value="$Stime">
# <input TYPE="text" size="10" name="binpass" class="FC2" style="ime-mode:disabled">
sub MakeSeqIMG{
open(LOG, "$SeqImgLog");
@SEQIMGLIST = <LOG>;
close (LOG);
chomp(@SEQIMGLIST);
$seqM=@SEQIMGLIST;
srand;
$Rt=int(rand($seqM));
@SeqLine= split(/<>/, $SEQIMGLIST[$Rt]);
$seed = "1234567890abcdefghijk";
srand(time() ^ ($$ + ($$ << 15)));
$Fplus = CreateRandomPasswd('10');
$Bplus = CreateRandomPasswd('8');
##  11752 df25ghg5gf 25462145 sd2yh5jk  
##  --5--     10     --------     8
$frontT = substr($SeqLine[0],0,5); 
$backT = substr($SeqLine[0],5,); 
$BimgNo=$frontT .$Fplus.$backT. $Bplus ;
$ImgLinkTAG="<img src=\"$FormPictcgi?bn=$BimgNo\" alt=\"number\" />";
#Stime
$TTG=time(); $Stime=($TTG-55684210)*14;

}
sub CreateRandomPasswd{
$fg=$_[0];
	local($passwd , $seedlen , $salt , $p , $i , $ret);
	$passwd = "";
	$seedlen = length($seed);
	$salt = substr($seed , rand($seedlen) , 1);
	$salt .= substr($seed , rand($seedlen) , 1);
	for ($i = 0 ; $i < $fg ; $i++)
	{
		$s = substr($seed , rand($seedlen) , 1);
		$passwd .= $s; 
	}
	$p = crypt($passwd , $salt);
	$ret = $passwd; # . " , " . $p
}
sub GetBinpass{ ## 認証 Pass Get   $Binpass=GetBinpass($FORM{'bn'});
$MOTO=$_[0];
$frontT = substr($MOTO,0,5); # 11752
$b0 = substr($MOTO,15,); $lengsb0=length $b0; $lengsb0=$lengsb0-8;
$backT = substr($b0,0,$lengsb0); # 25462145
$Listnum=$frontT.$backT;
open(LOG, "$SeqImgLog");
@SEQIMGLIST = <LOG>;
close (LOG);
chomp(@SEQIMGLIST);
$rp='asdf45653gdfdgfh564546dfg3f4g565d4fg65fd4g65dfgdfghj';
foreach $Fimg (@SEQIMGLIST)
{
	@Ilist= split(/<>/, $Fimg);
	if($Ilist[0] eq $Listnum){ $rp=$Ilist[2]; last; }
}
return $rp;
}