#=======================================================================================
# サブルーチン
#=======================================================================================
$systeminfo = '<a href="http://www.gnbnet.com/" target="_blank">Dojin-OrderDX (Version 6.8)</a>';

#======================================文字変換ルーチン===============================
sub moji_henkan{
	$wk = $_[0];
	$wk =~ s/'/&#39;/g;
	$wk =~ s/"/&quot;/g;
	$wk =~ s/</&lt;/g;
	$wk =~ s/>/&gt;/g;
	$wk =~ s/\t/ /g;
	return $wk;
}

sub moji_modosu{
	$wk = $_[0];
	$wk =~ s/&#39;/'/g;
	$wk =~ s/&quot;/"/g;
	$wk =~ s/&lt;/</g;
	$wk =~ s/&gt;/>/g;
	return $wk;
}

#======================================ロック処理ルーチン===============================
sub lock1 { # flock関数
 	eval { flock( LOCKCHK, 8 ) ; } ;
	if ( ! $@ ){
		open(LOCK,">$lock_file") or die "Can't open lockfile: $!";
	  flock(LOCK, 2) or die "Can't flock        : $!";
	}else{
		&error('このサーバーではflock関数は使えないようです。');
	}
}

sub lock2 { # mkdir関数
	$retry = 5; # リトライ回数セット
	$lockdir = $lock_file;
	$lockdir =~ s/\./_/g;
	$lockdir2 =  'c_' .$lockdir;
	while (!mkdir($lockdir, 0755)) {
		if (--$retry <= 0) {
			if (mkdir($lockdir2, 0755)) {          # ロックを消すための排他
				if ((-M $lockdir) * 86400 > 600) { # 作成時間が10分以上前なら
					rename($lockdir2, $lockdir) or die 'LOCK ERROR'; # ロック入れ替え
					last;                          # 一連の処理へ
				}else { rmdir($lockdir2); }         # 部分ロック削除
			}
			&error("BUSY");
		}
		sleep(1);
	}
}

sub unlock { # ロック解除
	if ($lockkey == 1) { close(LOCK); }
	elsif ($lockkey == 2) {
		$lockdir = $lock_file;
		$lockdir =~ s/\./_/g;
		rmdir($lockdir);
	}
}

#======================================エラー処理ルーチン===============================
sub error {
	$error = $_[0];
	if ($error eq "") { $error = '原因不明のエラーで処理を継続できません。'; }
	if($mojicode eq "s"){ &jcode'convert(*error,'sjis'); }
# アップロード画像を削除
	foreach $uwk(@upfiles){
		$w = $up_dir .$uwk; unlink $w;
	}
# -----------------------
	&unlock; # ロック解除
	open(HTML,"$error_file") || die "FILE OPEN ERROR - error";
	@html = <HTML>;
	close(HTML);
	print "Content-Type: text/html\n\n";
	foreach $line (@html) {
		$line =~ s/<!--form_cgi-->/$form_cgi/g;
		$line =~ s/<!--error-->/$error/g;
		$line =~ s/<!--system-->/$systeminfo/g;
		print $line;
	}
	exit;
}








#=======================================================================================
return 1;
