#!/usr/bin/perl -w #=========================================================# # 履歴 # #---------------------------------------------------------# # 2008.03.31 作成. # #---------------------------------------------------------# # Copyright (C) 2008 MANIFEST Ltd. All Rights Reserved. # #=========================================================# #=========================================================# # 初期設定 # #=========================================================# #------------------# # sendmailへのパス # #------------------# $sendmail = '/usr/sbin/sendmail'; #--------------------# # ライブラリへのパス # #--------------------# $jcode = '../../cgi-bin/jcode.pl'; $mimew = '../../cgi-bin/mimew.pl'; #--------# # 送付先 # #--------# $to = 'mitumori@mani-fest.com'; #------# # 題名 # #------# $subject = '引越見積もり問い合わせ'; #------------# # 確認ページ # #------------# $step1html = "skin_step1.html"; $step2html = "skin_step2.html"; $step3html = "skin_step3.html"; #---------------------------# # 呼出し元チェックURLを指定 # #---------------------------# $ref_step1html = 'http://www.mani-fest.com/mitumori/script/skin_step1.html'; $ref_step2html = 'http://www.mani-fest.com/mitumori/script/skin_step2.html'; #====================# # ライブラリのロード # #====================# require $jcode; require $mimew; #============# # FORMの表示 # #============# if ($ENV{'REQUEST_METHOD'} eq "GET") { print "Location: $step1html\n\n"; #------# # EXIT # #------# exit 0; #-----------------# # 診断(DEBUG用) # #-----------------# print "Content-type: text/html; charset=Shift_JIS\n"; print "\n"; print "\n"; print "
\n"; print "CGIは正常に動作しています。
\n"; unless (-f $sendmail) { print "$sendmail がありません。
\n"; } unless (-x $sendmail) { print "$sendmail が実行可能ではありません。
\n"; } unless (-f $jcode) { print "jcode.pl がありません。
\n"; } unless (-f $mimew) { print "mimew.pl がありません。
\n"; } print "\n"; print "\n"; #------# # EXIT # #------# exit 0; } #============# # FORMの送信 # #============# #================# # 呼出し元の確認 # #================# if(!($ref_step1html eq $ENV{HTTP_REFERER})){ &error_exit("呼出し元が不正です。"); } #===============# # QUERY復元処理 # #===============# if($ENV{REQUEST_METHOD} eq "POST"){ read(STDIN,$input,$ENV{CONTENT_LENGTH}); } else { $input = $ENV{QUERY_STRING}; } foreach ( split('&', $input ) ){ ($name, $value) = split('=',$_,2); $value =~ s/\+/ /g; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $html{$name} = $query{$name} = $value; } #=========================================================# # 入力データのチェック # #---------------------------------------------------------# # 入力データの一覧とID # # お名前 : name # # 電話番号 : denwa # # メールアドレス : mail # # メールアドレス(確認用) : mail2 # # 引越しコース : cose # # 家族またはオフィス収容人数 : ninzuu # # 間取り : madori # # 現在の住所 : osumai # # 引越し先の住所 : hikkosisaki # # 引越し予定希望日 年 : nen # # 月 : tuki # # 日 : niti # # 引越ご希望時間 : time # # テレビ(大) : tv1 # # テレビ(中) : tv2 # # テレビ(小) : tv3 # # ビデオ : video # # デスクトップパソコン : pc1 # # ノートブックパソコン : pc2 # # 電子レンジ : densi # # 洗濯機(大) : sentaku1 # # 洗濯機(中) : sentaku2 # # 洗濯機(小) : sentaku3 # # エアコン : eakon # # 扇風機 : eakon2 # # ストーブ : sutobu # # こたつ : sutobu2 # # 乾燥機 : kansou # # 冷蔵庫(大) : reizouko1 # # 冷蔵庫(中) : reizouko2 # # 冷蔵庫(小) : reizouko3 # # タンス(大) : tansu1 # # タンス(中) : tansu2 # # タンス(小) : tansu3 # # カラーボックス3以上 : karabox # # カラーボックス2以上 : karabox2 # # カラーボックス1 : karabox3 # # スチールラック(大) : rakku1 # # スチールラック(中) : rakku2 # # スチールラック(小) : rakku3 # # ドレッサー : doresu # # つくえ : desk # # ベット(大) : bed1 # # ベッド(中) : bed2 # # ベッド(小) : bed3 # # 布団5組以上 : huton # # 布団2組以上 : huton2 # # 布団 : huton22 # # カーペット : pet # # 食器棚(大) : syokki1 # # 食器棚(中) : syokki2 # # 食器棚(小) : syokki3 # # ダイニングセット6脚以上 : dainin # # ダイニングセット4脚以上 : dainin2 # # ダイニングセット2脚以上 : dainin3 # # ソファー(大) : sofa1 # # ソファー(中) : sofa2 # # ソファー(小) : sofa3 # # 単車 : norimono # # 原付 : norimono2 # # 自転車 : norimono3 # # 自転車子供用 : norimono4 # # ギター : gakki # # ドラム : gakki2 # # ピアノ : gakki3 # # ゴルフバック : sonota # # 水槽 : sonota2 # # その他(何でも記載可) : message # #=========================================================# #--------# # お名前 # #--------# if(!$query{name}) { &error_exit("お名前が入力されていません。"); } #----------# # 電話番号 # #----------# if(!$query{denwa}) { &error_exit("電話番号が入力されていません。"); } #----------------# # メールアドレス # #----------------# if(!$query{mail}) { &error_exit("メールアドレスが入力されていません。"); } #--------------------------# # メールアドレスの形式確認 # #--------------------------# if($query{mail} !~ /.+\@.+\..+/ || $query{mail} =~ /,/){ &error_exit("メールアドレスの書式が不正です"); } #=========================================================# # 送信・表示データの作成 # #=========================================================# #--------# # お名前 # #--------# if ($query{name}){ $mail_body = "\n【お名前】$query{name}\n"; } #----------# # 電話番号 # #----------# if ($query{denwa}){ $mail_body .= "【電話番号】$query{denwa}\n"; } #----------------# # メールアドレス # #----------------# if ($query{mail}){ $mail_body .= "【メールアドレス】$query{mail}\n"; } #--------------# # 引越しコース # #--------------# if ($query{cose}){ $mail_body .= "【引越しコース】$query{cose}\n"; } #----------------------------# # 家族またはオフィス収容人数 # #----------------------------# if ($query{ninzuu}){ $mail_body .= "【家族またはオフィス収容人数】$query{ninzuu} 人\n"; } #--------# # 間取り # #--------# if ($query{madori}){ $mail_body .= "【間取り】$query{madori}\n"; } #------------# # 現在の住所 # #------------# if ($query{osumai}){ $mail_body .= "【現在の住所】$query{osumai}\n"; } #----------------# # 引越し先の住所 # #----------------# if ($query{hikkosisaki}){ $mail_body .= "【引越し先の住所】$query{hikkosisaki}\n"; } #------------------# # 引越し予定希望日 # #------------------# if (($query{nen})||($query{tuki})||($query{niti})){ $mail_body .= "【引越し\予\定\希\望\日】"; if ($query{nen }){ $mail_body .= "$query{nen }年"; } if ($query{tuki}){ $mail_body .= "$query{tuki}月"; } if ($query{niti}){ $mail_body .= "$query{niti}日"; } $mail_body .= "\n"; } #----------------# # 引越ご希望時間 # #----------------# if ($query{time}){ $mail_body .= "【引越ご希望時間】$query{time}\n"; } #--------# # テレビ # #--------# if (($query{tv1})||($query{tv2})||($query{tv3})){ $mail_body .= "【テレビ】"; if ($query{tv1}){ $mail_body .= "大 "; } if ($query{tv2}){ $mail_body .= "中 "; } if ($query{tv3}){ $mail_body .= "小 "; } $mail_body .= "\n"; } #--------# # ビデオ # #--------# if ($query{video}){ $mail_body .= "【ビデオ】○\n"; } #----------# # パソコン # #----------# if (($query{pc1})||($query{pc2})){ $mail_body .= "【\パ\ソ\コ\ン】"; if ($query{pc1}){ $mail_body .= "\デ\ス\ク\ト\ッ\プ\パ\ソ\コ\ン "; } if ($query{pc2}){ $mail_body .= "\ノ\ー\ト\ブ\ッ\ク\パ\ソ\コ\ン "; } $mail_body .= "\n"; } #------------# # 電子レンジ # #------------# if ($query{densi}){ $mail_body .= "【電子レンジ】○\n"; } #--------# # 洗濯機 # #--------# if (($query{sentaku1})||($query{sentaku2})||($query{sentaku3})){ $mail_body .= "【洗濯機】\n"; if ($query{sentaku1}) { $mail_body .= "大 "; } if ($query{sentaku2}) { $mail_body .= "中 "; } if ($query{sentaku3}) { $mail_body .= "小 "; } $mail_body .= "\n"; } #--------# # 冷房系 # #--------# if (($query{eakon})||($query{eakon2})){ $mail_body .= "【冷房系】"; if ($query{eakon }) { $mail_body .= "エアコン "; } if ($query{eakon2}) { $mail_body .= "扇風機 "; } $mail_body .= "\n"; } #--------# # 暖房系 # #--------# if (($query{sutobu})||($query{sutobu2})){ $mail_body .= "【暖房系】"; if ($query{sutobu }) { $mail_body .= "ストーブ "; } if ($query{sutobu2}) { $mail_body .= "こたつ "; } $mail_body .= "\n"; } #--------# # 乾燥機 # #--------# if ($query{kansou}){ $mail_body .= "【乾燥機】○\n"; } #--------# # 冷蔵庫 # #--------# if (($query{reizouko1})||($query{reizouko2})||($query{reizouko3})){ $mail_body .= "【冷蔵庫】"; if ($query{reizouko1}) { $mail_body .= "大 "; } if ($query{reizouko2}) { $mail_body .= "中 "; } if ($query{reizouko3}) { $mail_body .= "小 "; } $mail_body .= "\n"; } #--------# # タンス # #--------# if (($query{tansu1})||($query{tansu2})||($query{tansu3})){ $mail_body .= "【タンス】"; if ($query{tansu1}) { $mail_body .= "大 "; } if ($query{tansu2}) { $mail_body .= "中 "; } if ($query{tansu3}) { $mail_body .= "小 "; } $mail_body .= "\n"; } #----------------# # カラーボックス # #----------------# if (($query{karabox1})||($query{karabox2})||($query{karabox3})){ $mail_body .= "【カラーボックス】"; if ($query{karabox1}) { $mail_body .= "3以上"; } if ($query{karabox2}) { $mail_body .= "2以上"; } if ($query{karabox3}) { $mail_body .= "1"; } $mail_body .= "\n"; } #----------------# # スチールラック # #----------------# if (($query{rakku1})||($query{rakku2})||($query{rakku3})){ $mail_body .= "【スチールラック】"; if ($query{tansu1}) { $mail_body .= "大 "; } if ($query{tansu2}) { $mail_body .= "中 "; } if ($query{tansu3}) { $mail_body .= "小 "; } $mail_body .= "\n"; } #------------# # ドレッサー # #------------# if ($query{doresu}){ $mail_body .= "【ドレッサー】○\n"; } #--------# # つくえ # #--------# if ($query{desk}){ $mail_body .= "【つくえ】○\n"; } #--------# # ベット # #--------# if (($query{bed1})||($query{bed2})||($query{bed3})){ $mail_body .= "【ベット】"; if ($query{bed1}) { $mail_body .= "大 "; } if ($query{bed2}) { $mail_body .= "中 "; } if ($query{bed3}) { $mail_body .= "小 "; } $mail_body .= "\n"; } # 布団5組以上 : huton # # 布団2組以上 : huton2 # # 布団 : huton22 # #----------# # 布団 # #----------# if (($query{huton})||($query{huton2})||($query{huton22})){ $mail_body .= "【布団】"; if ($query{karabox1}) { $mail_body .= "5組以上"; } if ($query{karabox2}) { $mail_body .= "2組以上"; } if ($query{karabox3}) { $mail_body .= "1組"; } $mail_body .= "\n"; } #------------# # カーペット # #------------# if ($query{pet}){ $mail_body .= "【カーペット】○\n"; } #--------# # 食器棚 # #--------# if (($query{syokki1})||($query{syokki2})||($query{syokki3})){ $mail_body .= "【食器棚】"; if ($query{syokki1}) { $mail_body .= "大 "; } if ($query{syokki2}) { $mail_body .= "中 "; } if ($query{syokki3}) { $mail_body .= "小 "; } $mail_body .= "\n"; } #------------------# # ダイニングセット # #------------------# if (($query{dainin1})||($query{dainin2})||($query{dainin3})){ $mail_body .= "【ダイニングセット】"; if ($query{dainin1}) { $mail_body .= "6脚以上"; } if ($query{dainin2}) { $mail_body .= "4脚以上"; } if ($query{dainin3}) { $mail_body .= "2脚以上"; } $mail_body .= "\n"; } #----------# # ソファー # #----------# if (($query{sofa1})||($query{sofa2})||($query{sofa3})){ $mail_body .= "【\ソ\フ\ァ\ー】"; if ($query{sofa1}) { $mail_body .= "大 "; } if ($query{sofa2}) { $mail_body .= "中 "; } if ($query{sofa3}) { $mail_body .= "小 "; } $mail_body .= "\n"; } #--------# # 乗り物 # #--------# if (($query{norimono})||($query{norimono2})||($query{norimono3})||($query{norimono4})){ $mail_body .= "【乗り物】"; if ($query{norimono }) { $mail_body .= "単車 "; } if ($query{norimono2}) { $mail_body .= "原付 "; } if ($query{norimono3}) { $mail_body .= "自転車 "; } if ($query{norimono4}) { $mail_body .= "自転車子供用 "; } $mail_body .= "\n"; } #------# # 楽器 # #------# if (($query{gakki})||($query{gakki2})||($query{gakki3})){ $mail_body .= "【楽器】"; if ($query{gakki }) { $mail_body .= "ギター "; } if ($query{gakki2}) { $mail_body .= "ドラム "; } if ($query{gakki3}) { $mail_body .= "ピアノ "; } $mail_body .= "\n"; } #--------# # その他 # #--------# if (($query{sonota})||($query{sonota2})){ $mail_body .= "【その他】"; if ($query{sonota }){ $mail_body .= "ゴルフバック"; } if ($query{sonota2}){ $mail_body .= "水槽"; } $mail_body .= "\n"; } #------------------------# # その他(何でも記載可) # #------------------------# if ($query{message}){ $mail_body .= "【その他(何でも記載可)】\n $query{message}\n"; } #------------------------------# # ピリオド1つだけの行を無くす # #------------------------------# $mail_body =~ s/\x0D\x0A|\x0D|\x0A/\n/g; #$mail_body =~ s/(\n)\.(\n)/\1\.\.\2/g; #=========================================================# # MAIL送信 # #=========================================================# #------------# # コード変換 # #------------# &jcode'convert(*mail_body,'jis'); &jcode'convert(*subject,'jis'); #------# # OPEN # #------# open(MAIL,"| $sendmail -t") || &error_exit("sendmailの起動に失敗しました"); #--------# # ヘッダ # #--------# print MAIL "To: $to\n"; print MAIL "From: $query{mail}\n"; print MAIL "Subject: $subject\n"; #------# # 本文 # #------# print MAIL "$mail_body\n"; #-------# # CLOSE # #-------# close(MAIL) || &error_exit("メールの送信に失敗しました"); #================# # 送信結果の表示 # #================# if(!$step3html){ #------# # EXIT # #------# exit 0; } #--------------------# # HTMLファイルのOPEN # #--------------------# open(FH,"<$step3html"); #------# # 置換 # #------# print "Content-type: text/html; charset=Shift_JIS\n"; print "\n"; while('."\n"; print '