#!/usr/bin/perl
# Copyright (c) GNA Inc. 2003
# Do not remove copyright notice.
# Customized for Japanese Shift_JIS encoding.
# Note on naming convention:
# Variables in ALL_CAPS are global variables
#
use CGI;
use DBI; #--20040210 Add--
# Global Path Variables
$SENDMAIL_COMMAND='/usr/sbin/sendmail -t -i';
$DATA_DIRECTORY='../cgidata/';
$ACTION_URL=$ENV{'SCRIPT_NAME'};
# grab file name without extension
($ACTION_SHORT_NAME)=$ACTION_URL=~/\/([^\/]+)?\.\w*$/;
$DATA_FILE="$DATA_DIRECTORY/$ACTION_SHORT_NAME.csv";
$CGI_QUERY=new CGI;
#--20040301 Add--------------------------
# domain.cgi(whois検索) からドメイン名を受け取る
$dname=$CGI_QUERY->param('dname');
@exts=('.com','.net','.org','.biz','.info','.cc','.to','.co.jp','.or.jp','.ne.jp','.gr.jp','.jp');
foreach $ext (@exts) {
if ($dname=~/$ext$/) {
$dname0=$dname;
$dname0=~s/$ext$//;
$dname1=$ext;
last;
}
}
# BEGIN HTML DATA
$WEBFORM_HEAD=<<'__END_OF_WEBFORM_HEAD__';
JPホスト-お申込フォーム
オンラインお申込フォーム
下記お申込フォームに必要事項をご記入の上、 次の画面にお進みください
。赤字の項目は必須項目です。
__END_OF_WEBFORM_HEAD__
$WEBFORM_BODY=<<'__END_OF_WEBFORM_BODY__';
■ お申込サービスを入力してください。
ドメイン
新しいドメインを取得します
http://www.
__END_OF_WEBFORM_BODY__
#--20040301 Add--------------------------
$WEBFORM_BODY.=" \n";
$WEBFORM_BODY.="\n";
@exts=('.jp','.com','.net','.org','.co.jp','.or.jp','.ne.jp','.info','.biz','.cc','.to','.tv','.ac.jp','.ed.jp','.gr.jp');
foreach $ext (@exts) {
$sel=($ext eq $dname1)?"selected":"";
if($ext eq ".jp"){
$op="(汎用)";
}elsif($ext eq ".co.jp"||$ext eq ".or.jp"||$ext eq ".ne.jp"||$ext eq ".ac.jp"||$ext eq ".ed.jp"||$ext eq ".gr.jp"){
$op="(属性型)";
}else{
$op="";
}
$WEBFORM_BODY.=" ".$ext.$op." \n";
}
# .jp (汎用)
# .com
# .net
# .org
# .co.jp(属性型)
# .or.jp(属性型)
# .info
# .biz
# .cc
# .to
# .tv
# .ac.jp
# .ed.jp
# .gr.jp
$WEBFORM_BODY.=" ";
$WEBFORM_BODY.=<<'__END_OF_WEBFORM_BODY__';
半角英小文字、数字、ハイフン(-)、(3〜63文字以内)
※ 新規取得希望ドメイン名をご記入ください
既に取得済みのドメインを移設します
http://www.
.jp (汎用)
.com
.net
.org
.co.jp(属性型)
.or.jp(属性型)
.ne.jp(属性型)
.info
.biz
.cc
.to
.tv
.ac.jp(属性型)
.ed.jp(属性型)
.gr.jp(属性型)
半角英小文字、数字、ハイフン(-)、(3〜63文字以内)
※ 既に取得済みのドメイン名をご記入ください
プラン名
スーパープラン
ビジネスプラン
ファーストプラン
楽々ページプラン
とりあえずドメイン
※ とりあえずドメインは、12ヶ月契約のみとなります。
ご契約期間
6ヶ月(半年)
12ヶ月(1年)
※ 最低契約期間は6ヶ月となっております。
お支払方法
銀行振込
自動振替
同時にオプションサービスをお申込いただく場合は、こちらもご記入ください。
ショッピングカート
申込みません
無料版 (10品目まで登録可)
有料版SSLなし (50品目まで登録可)
有料版SSL付 (50品目まで登録可)
データベース
申込みません
PostgreSQL
MySQL
独自SSL認証
申込みません
ジオトラスト社 SSL
ベリサイン社 SSL
その他のSSL
検索エンジン登録代行
申込みません
国内100サイト登録
国内外500サイト登録
法人でお申込みの場合ご記入ください。個人でお申込みの場合は不要です。
※属性型ドメイン(co.jp/or.jpなど)新規取得ご希望の場合のみ記入ください。
■ 備考欄
その他、ご要望、確認事項がございましたら、こちらにご記入ください。
■ 最後にアンケートにご協力ください。
当サービスをどこでお知りになりましたか?
知人からの紹介
新聞・雑誌・広告
検索エンジン-Yahoo
検索エンジン-google
検索エンジン-その他
他サイトからのリンク
バナー広告-独自ドメインレンタルサーバーナビ
バナー広告-KENT WEB
バナー広告-その他
ダイレクトメール
各種イベント
各種セミナー・講習会
その他
__END_OF_WEBFORM_BODY__
$WEBFORM_TAIL=<<'__END_OF_WEBFORM_TAIL__';
__END_OF_WEBFORM_TAIL__
$ACKNOWLEDGE_HTML0=<<'__END_OF_ACKNOWLEDGE_HTML0__';
送信完了
オンライン お申込申請フォーム
JPホスト ホスティングサービスへお申込いただき、誠にありがとうございます。
内容を確認させていただき、担当よりEメールにてご確認の連絡をさせていただきます。
不明な点がございましたら、何なりとお問い合せ下さい。
今後ともよろしくお願い申し上げます。
お問合せは下記までお気軽にどうぞ
電話サポート
098-972-2302
(平日10時〜18時)
FAXサポート
098-972-2304
(24時間受付)
Eメールサポート
info@jphost.com
__END_OF_ACKNOWLEDGE_HTML0__
$ACKNOWLEDGE_HTML1=<<'__END_OF_ACKNOWLEDGE_HTML1__';
__END_OF_ACKNOWLEDGE_HTML1__
$JAVASCRIPT_CONFIRM=<<'__JAVASCRIPT_CONFIRM__';
__JAVASCRIPT_CONFIRM__
# END HTML DATA
%FORM_TAG=( 'method'=>'post' );
$USE_CONFIRM_PAGE=1; # 0=no 1=yes
$CONFIRM_CAPTION='以上の内容でよろしければ「完了」ボタンを押してください
';
$USE_JAVASCRIPT=1; # 0=no 1=yes
@FORM_ELEMENTS=( { 'name'=>'ドメイン', 'type'=>0 },
{ 'name'=>'新規ドメイン名', 'type'=>0 },
{ 'name'=>'新規ドメイン種類', 'type'=>0 },
{ 'name'=>'取得済ドメイン名', 'type'=>0 },
{ 'name'=>'取得済ドメイン種類', 'type'=>0 },
{ 'name'=>'プラン名', 'type'=>0 },
{ 'name'=>'契約期間', 'type'=>0 },
{ 'name'=>'支払方法', 'type'=>0 },
{ 'name'=>'OP_ショッピングカート', 'type'=>0 },
{ 'name'=>'OP_データベース', 'type'=>0 },
{ 'name'=>'OP_独自SSL', 'type'=>0 },
{ 'name'=>'OP_検索登録', 'type'=>0 },
{ 'name'=>'契約種別', 'type'=>0 },
{ 'name'=>'会社名/団体名', 'type'=>0 },
{ 'name'=>'会社名/団体名(ふりがな)', 'type'=>0 },
{ 'name'=>'会社名/団体名(英語)', 'type'=>0 },
{ 'name'=>'代表\者名', 'type'=>0 },
{ 'name'=>'代表\者名(ふりがな)', 'type'=>0 },
{ 'name'=>'代表\者名(英語)', 'type'=>0 },
{ 'name'=>'部署名', 'type'=>0 },
{ 'name'=>'業種', 'type'=>0 },
{ 'name'=>'名前(担当者)', 'type'=>1, 'min'=>1, 'max'=>100, 'msg'=>'氏名(担当者名)は必ず入力してください' },
{ 'name'=>'名前(ふりがな)', 'type'=>1, 'min'=>1, 'max'=>100, 'msg'=>'氏名(ふりがな)は必ず入力してください' },
{ 'name'=>'名前(英語)', 'type'=>1, 'min'=>1, 'max'=>100, 'msg'=>'氏名(英語)は必ず入力してください' },
{ 'name'=>'郵便番号', 'type'=>0, 'min'=>1, 'max'=>3, 'msg'=>'郵便番号は必ず入力してください' },
{ 'name'=>'郵便番号2', 'type'=>1, 'min'=>1, 'max'=>4, 'msg'=>'郵便番号は必ず入力してください' },
{ 'name'=>'住所', 'type'=>1, 'min'=>1, 'max'=>200, 'msg'=>'住所は必ず入力してください' },
{ 'name'=>'都道府県(英文)', 'type'=>1, 'min'=>1, 'max'=>200, 'msg'=>'都道府県(英文)は必ず入力してください' },
{ 'name'=>'市町村(英文)', 'type'=>1, 'min'=>1, 'max'=>200, 'msg'=>'市町村(英文)は必ず入力してください' },
{ 'name'=>'建物名・番地(英文)', 'type'=>1, 'min'=>1, 'max'=>200, 'msg'=>'建物名・番地(英文)は必ず入力してください' },
{ 'name'=>'TEL', 'type'=>1, 'min'=>1, 'max'=>20, 'msg'=>'「電話番号」は必ず入力してください' },
{ 'name'=>'FAX', 'type'=>0 },
{ 'name'=>'E-MAIL', 'type'=>5, 'msg'=>'Eメールアドレスは必ず入力してください ' },
{ 'name'=>'E-MAIL(確認)', 'type'=>5, 'msg'=>'Eメールアドレス(確認)は必ず入力してください' },
{ 'name'=>'登記住所', 'type'=>0 },
{ 'name'=>'登記年', 'type'=>0 },
{ 'name'=>'登記月', 'type'=>0 },
{ 'name'=>'登記日', 'type'=>0 },
{ 'name'=>'備考', 'type'=>0 },
{ 'name'=>'アンケート', 'type'=>0 } );
$DEFAULT_ERROR_MESSAGE='もう一度入力項目を確認し、再入力してください。';
$SEND_NOTIFICATION = 1;
@NOTIFY_MAILTO=('order@jphost.com');
$NOTIFY_FROM='"order@jphost.com" ';
#@NOTIFY_MAILTO=('takane@gnajp.com');
#$NOTIFY_FROM='"takane@gnajp.com" ';
$NOTIFY_SUBJECT='=?iso-2022-jp?B?GyRCJCo/PTl+JVUlKSE8JWAbKEIoGyRCPzc1LCUrJTklPyVeITwbKEIp?=';
$NOTIFY_MESSAGE=<<'__END_OF_MESSAGE__';
------------------------------------
新規お申込みがありました
------------------------------------
--=DATAENTRY=--
__END_OF_MESSAGE__
$RESPONDER=2;
$RESPONDER_MAILTO_FIELD='E-MAIL';
$RESPONDER_FROM='"order@jphost.com" ';
$RESPONDER_SUBJECT='=?iso-2022-jp?B?GyRCIVojSiNQJVslOSVIISElWyU5JUYlIyVzJTAlNSE8JVMlOSFbJCo/PTl+TS1GcSQmJDQbKEI=?=
=?iso-2022-jp?B?GyRCJDYkJCReJDkbKEI=?=';
$RESPONDER_MESSAGE=<<'__END_OF_MESSAGE__';
------------------------------------------------------
このメールは「JPホスト」より自動的に送信されています
------------------------------------------------------
この度は【JPホスト ホスティングサービス】へ
お申込いただき、誠にありがとうございます。
今回お申込いただいた内容は以下の通りです。
内容のご確認をお願い致します。
--------------------------------------------
--=DATAENTRY=--
--------------------------------------------
のちほど、担当よりEメールにてご連絡させていただきます。
不明な点がございましたら、何なりとお問い合せ下さい。
今後ともよろしくお願い申し上げます。
━━━━━━━━━━━━━━━━━━━━━━
GNA, Inc. ホスティング部
http://jphost.com 【ホスティングサービス】
http://gna.jp 【株式会社ジーエヌエー】
tel : 098‐972-2302 fax : 098-972-2304
email : info@jphost.com
━━━━━━━━━━━━━━━━━━━━━━
__END_OF_MESSAGE__
$SAVE_DATA_STATE=2; # 0=none 1=input only 2=all data
# set cookie according to file name
$COOKIE_NAME="FM_$ACTION_SHORT_NAME";
# only allow alphanum + underbar _
$COOKIE_NAME=~s/\W/_/g;
%COOKIE_DATA = $CGI_QUERY->cookie($COOKIE_NAME);
%COOKIE_DATA=() unless (defined %COOKIE_DATA);
$CURRENT_DATE=&GetDate;
$COOKIE_DATA{'LastVisit'}=$CURRENT_DATE;
# CONSTANT
%HTML_ESC_TABLE=(
'<'=>'<',
'>'=>'>',
'&'=>'&',
'"'=>'"',
"\r"=>'
',
"\n"=>'
'
);
$ACCEPTS_COOKIES=1;
# Variables used only in Main Logic block
# BEGIN LOCAL
my($errorMessage,$confirm,$saveOK);
# END LOCAL
#=====================================================
# BEGIN MAIN LOGIC BLOCK
#=====================================================
# $confirm : 0=not yet submitted
# 1=final confirmation
# 2=confirmation required
$confirm=$CGI_QUERY->param('__CONFIRM__')+0; # +0 forces numeric
if($confirm>0) {
# data was submitted
# check input is valid
$errorMessage=&CheckInput;
if($errorMessage eq '')
{
#input valid
# check if user accepted first cookie.
unless(defined $COOKIE_DATA{'FirstVisit'})
{
$ACCEPTS_COOKIES=0;
}
if($confirm==2)
{
# confirmation requred
&PostHeader;
&PostConfirmPage;
}
else
{
if($ACCEPTS_COOKIES==1)
{
if(defined $COOKIE_DATA{'Submitted'})
{
$COOKIE_DATA{'Submitted'}++;
}
else
{
$COOKIE_DATA{'Submitted'}=1;
}
}
$saveOK=1;
if($SAVE_DATA_STATE>0)
{
$saveOK =&SaveData;
}
#--20040210 Add--------------------------
$saveDBOK = &SaveDB;
if($SEND_NOTIFICATION==1)
{
&SendNotification($saveOK,$saveDBOK);
}
if($RESPONDER==1)
{
$RESPONDER_FROM=$NOTIFY_FROM;
$RESPONDER_SUBJECT=$NOTIFY_SUBJECT;
$RESPONDER_MESSAGE=$NOTIFY_MESSAGE;
}
if($RESPONDER>0)
{
&SendAutoResponse;
}
&PostHeader;
print $ACKNOWLEDGE_HTML0;
#--20040210 Add--------------------------------#
$newID=$sth->{'mysql_insertid'};
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
$year=$year+1900;
$mon=$mon+1;
$ts=$year.sprintf("%02d",$mon).sprintf("%02d",$mday).sprintf("%02d",$hour).sprintf("%02d",$min).sprintf("%02d",$sec);
#print " \n";
print $ACKNOWLEDGE_HTML1;
}
}
else
{
#input invalid
&PostHeader;
&PostForm($errorMessage);
}
}
else
{
unless(defined $COOKIE_DATA{'FirstVisit'})
{
$COOKIE_DATA{'FirstVisit'}=$CURRENT_DATE;
}
#input invalid
&PostHeader;
&PostForm;
}
exit;
sub PostHeader
{
my($cookie)=undef;
if($ACCEPTS_COOKIES==1)
{
unless(defined $COOKIE_DATA{'FirstVisit'})
{
$COOKIE_DATA{'FirstVisit'}=$CurrentDate;
}
unless(defined $COOKIE_DATA{'Submitted'})
{
$COOKIE_DATA{'Submitted'}=0;
}
$cookie = $CGI_QUERY->cookie(-name=>$COOKIE_NAME,-value=>\%COOKIE_DATA,-path=>'/',-expires=>'+1y',-secure=>0);
}
print $CGI_QUERY->header(-charset=>'Shift_JIS',-type=>'text/html',-cookie=>$cookie);
}
sub PostForm
{
my($err)=shift;
my($key);
print $WEBFORM_HEAD;
if(defined $err)
{
print $err;
}
else
{
if($USE_JAVASCRIPT==1)
{
print $JAVASCRIPT_CONFIRM;
$FORM_TAG{'onSubmit'} = "if(!FM_Confirm(this)){return false;}". $FORM_TAG{'onSubmit'};
}
print "";
print $WEBFORM_TAIL;
}
sub CheckInput {
my $q=$CGI_QUERY; # short for convenience
my $errmsg='';
my $useDefaultErr=0;
my ($min,$max,$val,@vals,$obj);
foreach $obj (@FORM_ELEMENTS) {
my $e=0;
if($obj->{'null'}==1)
{
$val=$q->param($obj->{'name'});
if($val!~/./)
{
next;
}
}
# Text Validation (length of text)
if($obj->{'type'}==1)
{
$val=$q->param($obj->{'name'});
$e=NumberCheck($obj,length($val));
}
# Integer Validation
elsif($obj->{'type'}==2)
{
$val=$q->param($obj->{'name'});
if($val!~/^\d+$/)
{
$e=1;
}
else
{
$e=NumberCheck($obj,$val);
}
}
# Number Validation
elsif($obj->{'type'}==3)
{
$val=$q->param($obj->{'name'});
if($length==0 ||
$val!~/^\d*(\.\d+){0,1}$/)
{
$e=1;
}
else
{
$e=NumberCheck($obj,$val);
}
}
# YEN Validation
elsif($obj->{'type'}==4)
{
$val=$q->param($obj->{'name'});
$val=~s/^\\//;
if($length==0 ||
$val!~/^\d+$/)
{
$e=1;
}
else
{
$e=NumberCheck($obj,$val);
}
}
# Email Validation
elsif($obj->{'type'}==5)
{
$val=$q->param($obj->{'name'});
if($val!~/^(?:[\x21-\x2B\x2D-\x3F\x41-\x7E])+\@(?:[A-Za-z0-9\-]+\.)+(?:[A-Za-z]){2,}$/)
{
$e=1;
}
}
# URL Validation
elsif($obj->{'type'}==6)
{
$val=$q->param($obj->{'name'});
if($val!~/^(http(s)?:\/\/)?([\w\-]+\.)+\w+(:\d+)?(\/.*)*$/)
{
$e=1;
}
}
# Telephone (JP)
elsif($obj->{'type'}==7)
{
$val=$q->param($obj->{'name'});
if(length($val)==12)
{
if($val!~/^\d{2,5}\-\d{1,4}\-\d{4}$/)
{
$e=1;
}
}
elsif(length($val)==13)
{
if($val!~/^\d{3}\-\d{4}\-\d{4}$/)
{
$e=1;
}
}
else
{
$e=1;
}
}
# Zipcode (JP)
elsif($obj->{'type'}==8)
{
$val=$q->param($obj->{'name'});
if($val!~/^\d{3}\-\d{4}$/)
{
$e=1;
}
}
# Other than check (for dropdown boxes w/ first selection being "--Make a Selection--")
elsif($obj->{'type'}==9)
{
$val=$q->param($obj->{'name'});
if($val eq $obj->{'otherthan'})
{
$e=1;
}
}
# Values check (count how many choices user made)
elsif($obj->{'type'}==10)
{
@vals=$q->param($obj->{'name'});
$val=scalar(@vals);
$e=NumberCheck($obj,$val);
}
if($e==1)
{
if(defined $obj->{'msg'})
{
$errmsg.=$obj->{'msg'} . " \n";
}
$useDefaultErr=1;
}
}
if($useDefaultErr==1)
{
$errmsg.=$DEFAULT_ERROR_MESSAGE;
}
return($errmsg);
}
sub SendNotification
{
($saveOK,$saveDBOK)=@_;
my %mail=('From'=>$NOTIFY_FROM,
'To'=>\@NOTIFY_MAILTO,
'Subject'=>$NOTIFY_SUBJECT
);
my $msg='';
if($saveDBOK==0)
{
$msg.=<<'__WARN__';
*************************************************************
******************* データベース保存エラー ******************
*************************************************************
データを保存するのに失敗しました
入力データに問題がある場合があります
NOTE: この警告は自動的にお客様へ送信されることはありません
*************************************************************
__WARN__
}
if($saveOK==0)
{
$msg.=<<'__WARN__';
*************************************************************
********************** データ保存エラー **********************
*************************************************************
__WARN__
$msg.=$DATA_FILE;
$msg.=<<'__WARN__';
にデータを保存するのに失敗しました
ファイルが存在し、書き込みが可能であることを確認してください
NOTE: この警告は自動的にお客様へ送信されることはありません
*************************************************************
__WARN__
}
$msg.=$NOTIFY_MESSAGE;
AddMessageData(\$msg);
$mail{'Body'}=\$msg;
SendMail(\%mail);
}
sub SendAutoResponse
{
my %mail=('From'=>$RESPONDER_FROM,
'To'=>[$CGI_QUERY->param($RESPONDER_MAILTO_FIELD)],
'Subject'=>$RESPONDER_SUBJECT
);
my $msg=$RESPONDER_MESSAGE;
AddMessageData(\$msg);
$mail{'Body'}=\$msg;
SendMail(\%mail);
}
sub AddMessageData
{
my $msg=shift;
my $data='';
my($obj);
foreach $obj (@FORM_ELEMENTS)
{
$name=$obj->{'name'};
@vals=$CGI_QUERY->param($name);
$data.="$name: " . join(';',@vals) . "\n";
}
$$msg=~s/--=DATAENTRY=--/$data/i;
}
sub SendMail
{
require 'jcode.pl';
my $mobj=shift;
my $mailCmd =$SENDMAIL_COMMAND;
$mailCmd=~s/\$FROM/$mobj->{'From'}/gi;
if($mailCmd=~/\$TO/i)
{
my $to=join(" ",@{$mobj->{'To'}});
$mailCmd=~s/\$TO/$to/gi;
}
&jcode'convert($mobj->{'Body'}, 'jis','sjis');
open MAIL, "|$mailCmd" || return;
print MAIL "To: ", join(",\n\t",@{$mobj->{'To'}}),"\n",
"From: ", $mobj->{'From'}, "\n",
"Reply-To: ", $mobj->{'From'}, "\n",
"Subject: ",$mobj->{'Subject'} ,"\n",
# put additional mail headers here (such as encoding : default is iso-2022-jp/7bit)
"MIME-Version: 1.0\n",
"Content-Type: text/plain;\n\tcharset=\"iso-2022-jp\"\n",
"Content-Transfer-Encoding: 7bit\n",
"\n", ${ $mobj->{'Body'} };
close(MAIL);
}
sub SaveData
{
my($obj,$val,@vals,$sz,$comma);
use Fcntl qw/:flock/;
$sz=(-s $DATA_FILE)+0;
unless(open OUT, ">>$DATA_FILE")
{
return 0;
}
for(my $i=0;$i<10;$i++)
{
if(flock(OUT,LOCK_EX|LOCK_NB))
{
last;
}
}
seek(OUT,0,2);
if($sz==0)
{
# If file is new, add element names to header.
if($SAVE_DATA_STATE==2)
{
print OUT '"リモートアドレス","ブラウザ","日付","初回訪問日","送信回数",';
}
print OUT join(",", map {
$val=$_->{'name'};
$val=~s/(?:\r\n|\n)/\r/g;
$val=~s/\"/\"\"/g;
$val='"'.$val.'"' if($val=~/[^\w\.]/);
$val; }@FORM_ELEMENTS), "\n";
}
if($SAVE_DATA_STATE==2)
{
my($first,$submit);
if($ACCEPTS_COOKIES==0)
{
$first=$CURRENT_DATE;
$submit=0;
}
else
{
$first=$COOKIE_DATA{'FirstVisit'};
$submit=$COOKIE_DATA{'Submitted'};
}
print OUT $ENV{'REMOTE_ADDR'},",",$ENV{'HTTP_USER_AGENT'}, ",",
$CURRENT_DATE, ",",$first, ",",$submit, ",";
}
$comma=0;
foreach $obj (@FORM_ELEMENTS)
{
if($comma==1)
{
print OUT ",";
}
$comma=1;
@vals=$CGI_QUERY->param($obj->{'name'});
if(defined @vals)
{
$val=join(';',@vals);
$val=~s/(?:\r\n|\n)/\r/g;
$val=~s/\"/\"\"/g;
$val='"'.$val.'"' if($val=~/[^\w\.]/);
}
else
{
$val='';
}
print OUT $val;
}
print OUT "\n";
flock(OUT,LOCK_UN);
close(OUT);
}
sub GetDate
{
my(@gmt)=gmtime();
# Format YYYY/MM/DD (Year, Month, Day)
return sprintf("%04d/%02d/%02d",$gmt[5]+1900,$gmt[4]+1,$gmt[3]);
}
sub HTMLEscape
{
my ($rVals)=shift;
my ($vals);
if(ref $rVals)
{
$vals=join(', ',@$rVals);
}
else
{
$vals=$rVals;
}
$vals=~s/([<>&])/$HTML_ESC_TABLE{$1}/g;
$vals=~s/(\r\n|\r|\n)/ /g;
return $vals;
}
sub HTMLQEscape
{
my ($val)=shift;
$val=~s/([<>&\"\r\n])/$HTML_ESC_TABLE{$1}/g;
return $val;
}
sub NumberCheck
{
my ($obj,$val)=@_;
if(defined($obj->{'min'}))
{
if($val+0<$obj->{'min'})
{
return 1;
}
}
if(defined($obj->{'max'}))
{
if($val+0<$obj->{'max'})
{
$e=1;
}
}
return 0;
}
#--20040210 Add--------------------------------#
sub SaveDB
{
my $q=$CGI_QUERY; # short for convenience
$db = DBI->connect('DBI:mysql:jphost:localhost', "jphost", "W5ERfsdweij4");
#$db = DBI->connect('DBI:mysql:jphost:localhost', "test");
if(!$db){
return 0;
}
$sth = $db->prepare("INSERT INTO 050_signup("
."Domain1, "
##."Domain2, "
##."Domain3, "
."RegisteredDomain, "
."PlanName, "
."Period, "
."SearchEngine, "
."Contact, "
."ContactFurigana, "
."ContactEnglish, "
."Company, "
."CompanyFurigana, "
."CompanyEnglish, "
."Representative, "
."RepresentativeFurigana, "
."ZIPCode, "
##."Prefecture, "
."Addrress, "
##."AddressFurigana, "
."TEL, "
."FAX, "
."EMAIL, "
##."Experiment, "
##."PCCount, "
##."PCEnviroment, "
##."OS, "
##."Browser, "
##."ISP, "
."Questionnaire, "
."Note, "
##."OSOther, "
##."BrowserOther, "
##--20040210 Add--
."Domain, "
."Paymeth, "
."OP_1, "
."OP_2, "
."OP_3, "
##(予備)."OP_4, "
##(予備)."OP_5, "
."Contract, "
."RepresentativeEnglish, "
."Charge, "
."BusCategory, "
."PrefectureEnglish, "
."CityEnglish, "
."AddrressEnglish, "
."RegAddress, "
."RegYMD, "
."copy) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
if(!$sth)
{
return 0;
}
if($q->param("ドメイン") eq "取得済み"){
$domain1="";
if($q->param("取得済ドメイン名") ne ''){
$domain2=$q->param("取得済ドメイン名").$q->param("取得済ドメイン種類");
}else{
$domain2="";
}
}else{
if($q->param("新規ドメイン名") ne ''){
$domain1=$q->param("新規ドメイン名").$q->param("新規ドメイン種類");
}else{
$domain1="";
}
$domain2="";
}
if(($q->param("登記年") ne '') && ($q->param("登記月") ne '') && ($q->param("登記日") ne '')){
$regymd=$q->param("登記年")."年".$q->param("登記月")."月".$q->param("登記日")."日";
}else{
$regymd="";
}
$rc=$sth->execute(
$domain1,
$domain2,
$q->param("プラン名"),
$q->param("契約期間"),
$q->param("OP_検索登録"),
$q->param("名前(担当者)"),
$q->param("名前(ふりがな)"),
$q->param("名前(英語)"),
$q->param("会社名/団体名"),
$q->param("会社名/団体名(ふりがな)"),
$q->param("会社名/団体名(英語)"),
$q->param("代表\者名"),
$q->param("代表\者名(ふりがな)"),
$q->param("郵便番号")."-".$q->param("郵便番号2"),
$q->param("住所"),
$q->param("TEL"),
$q->param("FAX"),
$q->param("E-MAIL"),
$q->param("アンケート"),
$q->param("備考"),
$q->param("ドメイン"),
$q->param("支払方法"),
$q->param("OP_ショッピングカート"),
$q->param("OP_データベース"),
$q->param("OP_独自SSL"),
$q->param("契約種別"),
$q->param("代表\者名(英語)"),
$q->param("部署名"),
$q->param("業種"),
$q->param("都道府県(英文)"),
$q->param("市町村(英文)"),
$q->param("建物名・番地(英文)"),
$q->param("登記住所"),
$regymd,
0
);
if(!$rc)
{
return 0;
}
$sth->finish;
$db->disconnect;
return 1;
}