#!/usr/local/bin/perl ############################################################ # # Yoyaku Form ver.2.0 # # 制作者: 株式会社ワイズプランニング 制作室 # 制作日: 2001.05.31 # 動作確認: FreeBSD & perl5 # # 更新者: 株式会社ネットワーク北海道 # 更新日: 2009.02.20 # ############################################################ require "lib.pl"; require "webcal.conf"; require "kihon.pl"; require "qreki.pl"; &lib'getinputfromweb; $tamaend = &lib'getgetumatu($query_year,$query_mon); #消費税率 税込みの場合は0にする $dues = 5; #見積り書の名前 $titl = '宿泊予約フォーム'; #満室対応 $manshitsu = '本日は誠にありがとうございます。
折角ですが、この日はすでに満室となっております。

「予約状況」へは、ブラウザの「戻る」ボタンでお願いいたします。'; #非正規アクセス $roomq = '本日は誠にありがとうございます。
折角ですが、正しくアクセスされておりませんので
これ以上の作業は出来ません。
「予約状況」へは、ブラウザの「戻る」ボタンでお願いいたします。'; #問い合わせ対応 $toiawase = '本日は誠にありがとうございます。
残室がわずかのため、お部屋をお取り出来ない場合がございます。
予約フォームから送信いただき次第、確認の上ご連絡させていただきます。
'; #注意 $chui = '入力の際、メールアドレス又は連絡先に不具合が有った場合は、確認の連絡が取れませんので、正確にご入力をお願いいたします。連絡が取れない場合は「予約成立」と成りませんので、ご了承下さい。
ご夕食プランご利用のお客様は、ご利用希望時間をご指定下さい。ご希望のお時間が、ご用意出来ない場合には、メール又はお電話にてご連絡をさせていただきます。'; &lib'getinputfromweb('sjis'); ($year,$mon,$day,$wday,$hour,$min,$sec) = &lib'getdatetime; $action = $form{'action'}; $query_year = $form{'year'}; $query_mon = $form{'mon'}; $query_day = $form{'day'}; $name = $form{'name'}; $email = $form{'email'}; $place = $form{'place'}; $title = $form{'title'}; $content = $form{'content'}; $delline = $form{'delline'}; $roomt = $form{'room'}; @wday_array = ('日','月','火','水','木','金','土'); $tamaend = &lib'getgetumatu($query_year,$query_mon); ########################################################## # http://www.fin.ne.jp/webcal/schedule.cgi?year=1999&mon=2&day=17 # 小林様のご助言により、春分の日、秋分の日、振替休日をサポート # すごいっす(^_^) # 2000年1月6日 # 2000年ハッピーマンデー対応(クソ!勝手に休みを変えるな!) # if(open(DATA,"<$yearlydata")){ while () { if($_ !~ /^#/){ chop; push(@yearly, $_); } } close(DATA); } # 成人の日の割出し(2000年以降に適用) if($query_year >= 2000){ if(($seijin = &lib'getyoubi($query_year,1,1)) <= 1){ $seijin = 9 - $seijin; push(@yearly,"1\t$seijin\t成人の日\t1"); }else{ $seijin = 16 - $seijin; push(@yearly,"1\t$seijin\t成人の日\t1"); } }else{ push(@yearly,"1\t15\t成人の日\t1"); } # 体育の日の割出し(2000年以降に適用) if($query_year >= 2000){ if(($taiiku = &lib'getyoubi($query_year,10,1)) <= 1){ $taiiku = 9 - $taiiku; push(@yearly,"10\t$taiiku\t体育の日\t1"); }else{ $taiiku = 16 - $taiiku; push(@yearly,"10\t$taiiku\t体育の日\t1"); } }else{ push(@yearly,"10\t10\t体育の日\t1"); } # 海の日の割出し(2000年以降に適用) if($query_year >= 2000){ if(($uminohi = &lib'getyoubi($query_year,7,1)) <= 1){ $uminohi = 16 - $uminohi; push(@yearly,"7\t$uminohi\t海の日\t1"); }else{ $uminohi = 23 - $uminohi; push(@yearly,"7\t$uminohi\t海の日\t1"); } }else{ push(@yearly,"7\t20\t海の日\t1"); } # 敬老の日の割出し(2000年以降に適用) if($query_year >= 2000){ if(($keirou = &lib'getyoubi($query_year,9,1)) <= 1){ $keirou = 16 - $keirou; push(@yearly,"9\t$keirou\t敬老の日\t1"); }else{ $keirou = 23 - $keirou; push(@yearly,"9\t$keirou\t敬老の日\t1"); } }else{ push(@yearly,"9\t15\t敬老の日\t1"); } # 春分の日の割出し(1980年以降に適用) $shun = int(20.8431+0.242194*($query_year-1980)-int(($query_year-1980)/4)); push(@yearly,"3\t$shun\t春分の日\t1"); # 秋分の日の割出し(1980年以降に適用) $shuu = int(23.2488+0.242194*($query_year-1980)-int(($query_year-1980)/4)); push(@yearly,"9\t$shuu\t秋分の日\t1"); # 振替休日のチェック @furikae = (); $yearlysize = $#yearly; for($i = 0; $i <= $yearlysize; $i++){ ($yearly_mon,$yearly_day,$yearly_dat,$yearly_flag) = split(/\t/,@yearly[$i]); $weekday = &lib'getyoubi($query_year,$yearly_mon,$yearly_day); if ($weekday == 0 && $yearly_dat ne "憲法記念日" && $yearly_dat ne "国民の休日"){ $yearly_day_tmp = $yearly_day + 1; push(@furikae,"$yearly_mon\t$yearly_day_tmp\t振替休日\t1"); } } $furikaesize = $#furikae; if ($furikaesize >= 1){push(@yearly,@furikae);} $yearlysize = $#yearly; ########################################################## # 月に一回のスケジュールの読み込み if(open(DATA,"<$monthlydata")){ while () { if($_ !~ /^#/){chop; push(@monthly, $_);}} close(DATA); } $monthlysize = $#monthly; ########################################################## # 週に一回のスケジュールの読み込み if(open(DATA,"<$weeklydata")){ while () { if($_ !~ /^#/){chop; push(@weekly, $_);}} close(DATA); } $weeklysize = $#weekly; ########################################################## # クッキーを使うなら if($use_cookie){ &lib'get_cookie('sjis'); if($form{'name'} ne ""){ &lib'set_cookie("name",$form{'name'},30); &lib'set_cookie("email",$form{'email'},30); $cookie_name = $form{'name'}; $cookie_email = $form{'email'}; }else{ $cookie_name = $cookie{'name'}; $cookie_email = $cookie{'email'}; } } print "Content-type: text/html\n\n"; ########################################################## # 特に日付の指定がなければ、今日のスケジュールを表示させる if($query_year eq ""){ $query_year = $year; $query_mon = $mon; $query_day = $day; } $datafile = "$datadir/$query_year.$query_mon/$query_day"; ########################################################## #CGIが呼び出された条件によって処理を分岐 if($QUERY{'send'} eq 'sendmail') { &sendmail; } elsif ($QUERY{'action'} eq 'estimation') { &estimation; } else { &html; } #===============================HTMLドキュメントを生成=========================== sub html { $count = @DATA; &html_head; print "\申\し込みフォーム\n"; print "

\n"; print "\予\約状況によりまして、すでに満室の場合もございます。
その際は誠に\申\し訳ございませんが、ご了承ください。
\n"; print "\予\約のお\申\込は、ご宿泊日の4日前までとなっております。3日以内はお電話でお願いいたします。\n"; $youbi_tmp = &lib'getyoubi($inyear,$inmon,$inday); $youbi = @wday_array[$youbi_tmp]; $getumatu = &lib'getgetumatu($query_year,$query_mon); print "
\n"; print "\n"; print "

\予\約される方は「必須」の項目と、
宿泊人数、泊数、室数はすべて入力してください。

は必須項目です

\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; #夕食時間(elements30) print "\n"; print "\n"; #朝食 必要(elements31) 不要(elements32) print "\n"; print "
\n"; print "チェックイン (15:00〜) \n"; print "\n"; #チェックイン年(elements1) print "\n"; #チェックイン月(elements2) print "\n"; #チェックイン日(elements3) print "日から\n"; #到着予定時間(elements4) print "
  到着\予\定 午後 頃\n"; #チェックアウト print "
\n"; print "チェックアウト (〜10:00) \n"; print "\n"; #チェックアウト年(elements5) print "\n"; #チェックアウト月(elements6) print "\n"; #チェックアウト日(elements7) print "日までの 泊数\n"; print "泊 \n"; #宿泊人数 print "
\n"; print "ご宿泊人数 \n"; #宿泊人数大人(elements9) 宿泊人数子供(elements10) 宿泊人数幼児(elements11) 宿泊人数乳児(elements12) print "\n"; print "
大人名様(中学生以上)
子供名様(小学生)
幼児名様(3才以上、小学生未満)

乳児名様
(0才〜2才)
添寝のお子様がいらっしゃる場合のみ参考にお知らせください。
(乳児添寝無料)
\n"; #宿泊施設 ホテル(elements13) 宿舎(elements14) 部屋数(elements15) print "
\n"; print "ご希望宿泊施設及び部屋数 \n"; print "\n"; print "ご希望はどちらですか?
ホテル 宿舎
室\n"; print "
おすすめプラン ※お選びいただいたプランのご夕食内容が有効になります。
 お食事場所は「レストラン」になります。
※団体のお客様は宴会場をご用意いたします。
 メモ欄にてお問い合わせ下さい。
\n"; #2010年2月27日追加(3月〜5月限定価格の為)開始 #個人向け宿泊プラン3月〜5月限定価格(elements16) 食事(elements17) print "\n"; print "\n"; #期間限定レディースプラン(elements18) 食事(elements19) print "\n"; print "\n"; #期間限定佐賀黒毛和牛プラン(elements20) 食事(elements21) print "\n"; print "\n"; #期間限定美味しい旅プラン(elements22) 食事(elements23) print "\n"; print "\n"; #期間限定癒しのリフレッシュプラン(elements24) 食事(elements25) print "\n"; print "\n"; # #個人向け宿泊プラン(elements26) 食事(elements27) print "\n"; print "\n"; #団体向け宿泊プラン(elements28) 食事(elements29) print "\n"; print "\n"; #期間限定レディースプラン(elements30) 食事(elements31) print "\n"; print "\n"; #期間限定癒しのリフレッシュプラン(elements32) 食事(elements33) print "\n"; print "\n"; #期間限定佐賀黒毛和牛プラン(elements34) 食事(elements35) print "\n"; print "\n"; #期間限定美味しい旅プラン(elements36) 食事(elements37) print "\n"; print "\n"; #ビジネスプラン(elements38) 食事(elements39) print "\n"; print "\n"; #2010年2月27日追加(3月〜5月限定価格の為)終了 #2010年2月27日コメントアウト(3月〜5月限定価格の為)開始 # #個人向け宿泊プラン(elements16) 食事(elements17) # print "
3月〜5月限定価格
個人向け宿泊プラン3/1〜5/31
  (5/1〜5/4期間は除く)

期間限定 レディースプラン3/1〜5/31
  (5/1〜5/4期間は除く)

期間限定 佐賀黒毛和牛プラン3/1〜5/31
  (5/1〜5/4期間は除く)

期間限定 美味しい旅プラン3/1〜5/31
  (5/1〜5/4期間は除く)

期間限定 癒しのリフレッシュプラン3/1〜5/31
  (5/1〜5/4期間は除く)

個人向け 宿泊プラン

団体向け 宿泊プラン(8名様以上)

期間限定 レディースプラン

期間限定 癒しのリフレッシュプラン

期間限定 佐賀黒毛和牛プラン

期間限定 美味しい旅プラン

ビジネスプラン
\n"; # print "\n"; # #団体向け宿泊プラン(elements18) 食事(elements19) # print "\n"; # print "\n"; # #期間限定レディースプラン(elements20) 食事(elements21) # print "\n"; # print "\n"; # #期間限定癒しのリフレッシュプラン(elements22) 食事(elements23) # print "\n"; # print "\n"; # #期間限定タクシー送迎付きプラン 画面上非表示 # print "\n"; # #期間限定陶芸体験プラン 画面上非表示 # print " \n"; # #期間限定佐賀黒毛和牛プラン(elements24) 食事(elements25) # print "\n"; # print "\n"; # #期間限定美味しい旅プラン(elements26) 食事(elements27) # print "\n"; # print "\n"; # #ビジネスプラン(elements28) 食事(elements29) # print "\n"; # print "\n"; # #平日限定 連泊プラン 画面上非表示 # print " \n"; # #平日限定 得割プラン 画面上非表示 # print "\n"; # #平日限定 パークゴルフ団体プラ 画面上非表示 # print " \n"; # #平日限定 老人クラブ限定団体プラン で画面上非表示 # print " \n"; # #平日限定 3食付プラン で画面上非表示 # print " \n"; # #ゴルフパックプランで画面上非表示 # print " \n"; #2010年2月27日コメントアウト(3月〜5月限定価格の為)終了 print "
個人向け 宿泊プラン

団体向け 宿泊プラン(8名様以上)

期間限定 レディースプラン

期間限定 癒しのリフレッシュプラン

期間限定 佐賀黒毛和牛プラン

期間限定 美味しい旅プラン

ビジネスプラン
\n"; print "
\n"; # print "
ご夕食希望時間
☆30分毎に、19:30までご用意出来ます。
\n"; print "
ご夕食希望時間
\n"; print "
ご朝食
ご朝食ご不要の場合は、
1,000円引きになります。
必要不要\n"; print "
\n"; print "宿
 

 
\申\
 

 

 
\n"; print "
\n"; #郵便番号(elements33) print "郵便番号 \n"; print "\n"; print "\n"; print "
\n"; #住所(elements34) print "ご住所 \n"; print "\n"; print "\n"; print "
\n"; #名前(elements35) print "お名前(漢字) \n"; print "\n"; print "\n"; print "
\n"; #フリガナ(elements36) print "フリガナ(カタカナ) \n"; print "\n"; print "\n"; print "
\n"; #電話番号 自宅(elements37) 勤め先か携帯電話(elements38) print "電話番号(いずれか)
 例)0124-23-1155\n"; print "
\n"; print "ご自宅
お勤め先又は携帯電話
\n"; print "
\n"; print "メールアドレス \n"; print "\n"; #メールアドレス(elements39) print "
※携帯電話のメールアドレスはお使いいただけません。
※半角英数文字で入力して下さい
\n"; print "
\n"; #年齢(elements40) print "年齢\n"; print "\n"; print "歳代\n"; print "
\n"; #性別(elements57) print "性別\n"; print "\n"; print "男性女性\n"; print "
\n"; #メモ欄(elements41) print "メモ欄

特に質問・ご要望等がある場合にご記入ください。\n"; print "
\n"; print "\n"; print "
\n"; @datalist = (); if(open(DATA,"<$datafile")) { while () {chop; push(@datalist, $_);} close(DATA); $dallinenum = $#datalist+1; foreach $eachdata (reverse @datalist) { ($dyear,$dmon,$dday, $dhour,$dmin,$dsec, $dhour_s,$dmin_s,$dhour_e,$dmin_e,$dplace, $dname,$demail,$dtitle,$dcontent, $dr_1,$dr_2,$dr_3,$dr_4,$dr_5,$dr_6,$dr_7, $db_1,$db_2,$db_3,$db_4,$db_5,$db_6,$db_7, $dc_1,$dc_2,$dc_3,$dc_4,$dc_5,$dc_6,$dc_7, $dc_1b,$dc_2b,$dc_3b,$dc_4b,$dc_5b,$dc_6b,$dc_7b, $dc_1d,$dc_2d,$dc_3d,$dc_4d,$dc_5d,$dc_6d,$dc_7d, $drhost,$dpasswd) = split(/\t/,$eachdata); print "
"; $dallinenum--; } } else { print "\n"; } # $query_year = $inyear; $query_mon = $QUERY{'inmon'}; $query_day = $QUERY{'inday'}; &repeat_sc; if ($yearly_dat2 eq "") { $hol = 0; } else { $hol = 1; } if ($youbi_tmp eq 6) { $hantei = 1; } else { if ($hol eq 1) { $hantei = 1; } else { if ($youbi_tmp eq 5) { $hantei = 2; } else { $hantei = 3; } } } print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
お願い
入力の際、メールアドレス又は連絡先に不具合が有った場合は、確認の連絡が取れませんので、正確にご入力をお願いいたします。連絡が取れない場合は「\予\約成立」と成りませんので、ご了承ください。
ご夕食プランご利用のお客様は、ご夕食希望時間をご指定下さい。ご希望のお時間が、ご用意出来ない場合には、メール又はお電話にてご連絡をさせていただきます。
担当者からの\予\約\受理の連絡をさせていただいた時点で\予\約\成立といたします。
お\申\し込みから「24時間以上」連絡が無い場合には通信障害が考えられますので、
お電話での確認をお願いいたします。
\n"; print "
\n"; print "☆このホームページを最初に見つけられたのはどのような媒体でしたか?
 もし、よろしければ、参考までにお答え下さい。
\n"; print "
\n"; print "検索エンジン雑誌関係チラシ口コミその他\n"; print "
\n"; print "
\n"; print "\n"; print "

\n"; print "\n"; print "
\n"; print "\n"; } #================================HTMLドキュメントのヘッダーを宣言================================= sub html_head { print "\n"; print "\n"; print "\n"; # print "\n"; print "$titl\n"; print qq( ); print "\n"; # print "\n"; # print "\n"; print "\n"; print "
\n"; print "
\n"; print "
\n"; print "
\n"; } #======================================エラー処理ルーチン================================= sub error { $error = $_[0]; if ($error eq "bad_file") { $msg = 'ファイルのオープン、入出力に失敗しました。'; } elsif ($error eq "bad_name") { $msg = 'ニックネームが記入されていません。'; } elsif ($error eq "bad_data") { $msg = 'すべての項目を記入して下さい。'; } elsif ($error eq "bad_email") { $msg = 'メールアドレスが不正です。'; } else { $msg = '原因不明のエラーで処理を継続できません。'; } &html_head; print "ERROR
\n"; print "" . $msg . "
\n"; print "
\n"; print "\n"; exit; } sub camma { local($_) = @_; 1 while s/(.*\d)(\d\d\d)/$1,$2/; $_; } sub getyearly { for($ii = 0; $ii <= $yearlysize; $ii++){ ($yearly_mon,$yearly_day,$yearly_dat,$yearly_flag) = split(/\t/,@yearly[$ii]); if("$query_mon/$query_day" eq "$yearly_mon/$yearly_day"){ return($yearly_dat,$yearly_flag); } } return("",0); } sub getyearly2 { for($ii = 0; $ii <= $yearlysize; $ii++){ ($yearly_mon2,$yearly_day2,$yearly_dat2,$yearly_flag2) = split(/\t/,@yearly[$ii]); $qday = $query_day + 1; if("$query_mon/$qday" eq "$yearly_mon2/$yearly_day2"){ return($yearly_dat2,$yearly_flag2); } } return("",0); } sub getmonthly { for($ii = 0; $ii <= $monthlysize; $ii++){ ($monthly_day,$monthly_hour,$monthly_minits,$monthly_dat,$monthly_flag) = split(/\t/,@monthly[$ii]); if("$query_day" eq "$monthly_day"){ return($monthly_dat,$monthly_flag,$monthly_hour,$monthly_minits); } } return("",0,"",""); } sub getweekly { for($ii = 0; $ii <= $weeklysize; $ii++){ ($weekly_wday,$weekly_hour,$weekly_minits,$weekly_dat,$weekly_flag) = split(/\t/,@weekly[$ii]); if($youbi_tmp == $weekly_wday){ return($weekly_dat,$weekly_flag,$weekly_hour,$weekly_minits); } } return("",0,"",""); } sub repeat_sc { print ""; ($yearly_dat,$yearly_flag) = &getyearly; if($yearly_dat ne ""){ print ""; } ($yearly_dat2,$yearly_flag2) = &getyearly2; if($yearly_dat2 ne ""){ print ""; } ($monthly_dat,$monthly_flag,$monthly_hour,$monthly_minits) = &getmonthly; if($monthly_hour ne ""){ print "毎月繰返し:$monthly_hour:$monthly_minits/"; } if($monthly_dat ne ""){ if($monthly_hour ne ""){ print "$monthly_dat
"; }else{ print "毎月繰返し:$monthly_dat
"; } } ($weekly_dat,$weekly_flag,$weekly_hour,$weekly_minits) = &getweekly; if($weekly_hour ne ""){ print "毎週繰返し:$weekly_hour:$weekly_minits/"; } if($weekly_dat ne ""){ if($weekly_hour ne ""){ print "$weekly_dat
"; }else{ print "毎週繰返し:$weekly_dat
"; } } print "
"; }