#!/usr/bin/perl
############################################################
#
#　メールマガジン発行CGIスプリクトVer2.0
#　
#　(c)Copyright.CGIの匠
#　　　　　　　 http://www.ortecweb.com/
#
#　本プログラムはCGIの匠にて作成したWebを管理する為の
#　プログラムです。他の用途ではご使用頂けません。
#
#　本プログラムの著作権は「CGIの匠」にあります。
#　本プログラムは無断で、転記、改造、販売を行う事を
#　禁止しています。
#　また、著作権表示部や、当ページへのLinkは、削除出来ません。
#　第三者に貸与(設置されたシステムをユーザに利用させる行為)
#　する行為には、事業者登録が必要です。詳細は、CGIの匠の管理者に
#　ご相談下さい。
#
#　更新履歴
#　Ver2.0　抜本的に構造を変更
#　Ver1.0　初期公開版
#
############################################################
require './lib/cgi-lib.pl';
require './lib/mimew.pl';
require './lib/subset.pl';
use Jcode;

#####入力チェック#####
&ReadParse;
&subset;

Jcode::convert(\$cgi,'sjis');
$browser = $ENV{'HTTP_USER_AGENT'};

if($in{'chk'} eq "fix") {#完了画面
if ($browser =~ /DoCoMo/ or $browser =~ /KDDI/ or $browser =~ /J-PHONE/ or $browser =~ /SoftBank/ or $browser =~ /Vodafone/ or $browser =~ /ASTEL/ or $browser =~ /DDIPOCKET/ or $browser =~ /L-mode/ or $browser =~ /PDXGW/) {
	if($in{'sub'} ne $browser) { &error("不正な利用方法です"); }
} else {
	&Cookread;
	if($dat ne "www.ortecweb.com") { &error("不正な利用方法です"); }
}

@user=&open('./regist/user.cgi');
foreach $mun(@user) {
	chop($mun);
		if ($in{'mail'} eq $mun) { &error('このメールアドレスは、既に登録されてます'); }
}

($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year += 1900;
$mon++;
 $date = $year . "年" . $mon . "月". $mday . "日";
 $time = $hour . "時" . $min . "分" . $sec . "秒";

@mailbun=&open('./regist/base.cgi');
$kazu=@mailbun;
	for ($z = 0; $z < $kazu; $z++) {
		chop(@mailbun[$z]);
	}
$Subject1=@mailbun[4];
$bun1=@mailbun[5];
$Subject2=@mailbun[6];
$bun2=@mailbun[7];

	$bun1 =~ s/<!--date-->/$date/ig;
	$bun2 =~ s/<!--date-->/$date/ig;
	$bun1 =~ s/<!--time-->/$time/ig;
	$bun2 =~ s/<!--time-->/$time/ig;

Jcode::convert(\$in{'mail'},'euc');
	$bun1 =~ s/<!--mail-->/$in{'mail'}/ig;
	$bun2 =~ s/<!--mail-->/$in{'mail'}/ig;

$bun1=~ s/<br>/\r\n/g;
$bun2=~ s/<br>/\r\n/g;

Jcode::convert(\$Subject1,'jis');
Jcode::convert(\$Subject2,'jis');
Jcode::convert(\$bun1,'jis');
Jcode::convert(\$bun2,'jis');
$Subject1 = mimeencode($Subject1);
$Subject2 = mimeencode($Subject2);

&sendmail($Subject2,$bun2,@mailbun[2],$in{'mail'});
&sendmail($Subject1,$bun1,$in{'mail'},@mailbun[2]);

$write="$in{'mail'}\n";
&write('./regist/user.cgi',"$in{'mail'}\n");

print "Location: fix.cgi\n\n";

} elsif($in{'chk'} eq "chk") {#確認画面

Jcode::convert(\$in{'mail'},'euc');

	$mail_regex =
		q{(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\} .
		q{\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][} .
		q{^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x} .
		q{80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-} .
		q{\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(} .
		q{\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\0} .
		q{00-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*} .
		q{\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,} .
		q{;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[} .
		q{^\x80-\xff])*\]))*};
	if ($in{'mail'} !~ /^$mail_regex$/o) { &error('不正なメールアドレスです'); }

@user=&open('./regist/user.cgi');
foreach $mun(@user) {
	chop($mun);
		if ($in{'mail'} eq $mun) { &error('このメールアドレスは、既に登録されてます'); }
}

if ($browser =~ /DoCoMo/ or $browser =~ /KDDI/ or $browser =~ /J-PHONE/ or $browser =~ /SoftBank/ or $browser =~ /Vodafone/ or $browser =~ /ASTEL/ or $browser =~ /DDIPOCKET/ or $browser =~ /L-mode/ or $browser =~ /PDXGW/) {
	$targethtml="./html/ichk.html";
} else {
	$targethtml="./html/chk.html";
	&Cookset;
}

&htmlopen;

	$buffer =~ s/<!--sub-->/$browser/ig;
	$buffer =~ s/<!--mail-->/$in{'mail'}/ig;

} else { #入力画面

if ($browser =~ /DoCoMo/ or $browser =~ /KDDI/ or $browser =~ /J-PHONE/ or $browser =~ /SoftBank/ or $browser =~ /Vodafone/ or $browser =~ /ASTEL/ or $browser =~ /DDIPOCKET/ or $browser =~ /L-mode/ or $browser =~ /PDXGW/) {
	$targethtml="./html/iregist.html";
} else {
	$targethtml="./html/regist.html";
}


&htmlopen;

}

Jcode::convert(\$cgi,'sjis');
$buffer =~ s/$body/$cgi/ig;

print "Content-type: text/html\n\n$buffer\n";
exit;


sub error {#エラー処理

if ($browser =~ /DoCoMo/ or $browser =~ /KDDI/ or $browser =~ /J-PHONE/ or $browser =~ /SoftBank/ or $browser =~ /Vodafone/ or $browser =~ /ASTEL/ or $browser =~ /DDIPOCKET/ or $browser =~ /L-mode/ or $browser =~ /PDXGW/) {
	$targethtml="./html/ierror.html";
} else {
	$targethtml="./html/error.html";
}

&htmlopen;

$error=$_[0];
Jcode::convert(\$cgi,'sjis');
Jcode::convert(\$error,'sjis');
$buffer =~ s/<!--error-->/$error/ig;
$buffer =~ s/$body/$cgi/ig;

print "Content-type: text/html\n\n$buffer\n";
exit;
}

sub htmlopen {#html取得
open(IN,$targethtml);
  while(<IN>){$buffer.=$_;}
close(IN);
}
