header("Cache-control:nocache"); header("Pragma:no-cache"); global $mailForm,$replyTo,$systemAdmin; global $accessLogPath,$formLogPath,$errorLogPath; /* #==送受信用の適切なメールアドレス $mailForm = 'test@aobadc.com'; $replyTo = 'test@aobadc.com'; $systemAdmin = 'postmaster@aobadc.com'; #==logデータパス $logPath = "/home/aoba-dc/usrdata/log/"; */ #==送受信用の適切なメールアドレス $mailForm = 'mailform@aobadc.com'; $replyTo = 'information@aobadc.com'; $systemAdmin = 'postmaster@aobadc.com'; #==logデータパス $logPath = "/home/aoba-dc/usrdata/log/"; $writeDir = $logPath.date("Ym", time()); if(is_readable($writeDir) == FALSE) { mkdir($writeDir,0755); } $accessLogPath = $writeDir."/".$_SERVER["REMOTE_ADDR"]."_log.txt"; $formLogPath = $writeDir."/log_".date("Ym", time()).".txt"; $errorLogPath = $writeDir."/error_".date("Ym", time()).".txt"; # # メインルーチン # { # カレントディレクトリの移動 # chdir($g_dir); if($_POST['act'] == "checkThisSubmit"){ formLog("▲"); checkThisSubmit(); }elseif($_POST['act'] == "pushThisSubmit"){ formLog("●"); pushThisSubmit(); }else{ formLog("■"); onDrawForm(); } exit; } //============================================================================ function pushThisSubmit() //---------------------------------------------------------------------------- { global $mailForm,$replyTo; $_f_name = mb_convert_kana($_POST['F-NAME'],KVas); $_f_name = htmlspecialchars($_f_name); $_f_kana = mb_convert_kana($_POST['F-KANA'],KVas); $_f_mail = mb_convert_kana($_POST['F-MAIL'],a); $_f_tel = mb_convert_kana($_POST['F-TEL'],a); $_f_sex = mb_convert_kana($_POST['F-SEX'],KVas); $_f_trigger = mb_convert_kana($_POST['F-TRIGGER'],KVas); $_f_trigger_other_text = mb_convert_kana($_POST['F-TRIGGER_OTHER_TEXT'],KVas); $_f_massage = mb_convert_kana($_POST['F-MESSAGE'],KVa); $_f_massage = htmlspecialchars($_f_massage); formPostCheck(); #現在の日時 $arrWday = array("日", "月", "火", "水", "木", "金", "土"); list($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime(); $year += 1900; $mon++; $dateTimeString = $year."年".$mon."月".$mday."日(".$arrWday[$wday].") ".$hour."時".$min."分".$sec."秒"; #患者様向けメール本文の作成 if(($fileData = fopen('template/return_mail.txt', 'r')) == FALSE) { errorHTML(0,"return_mail.txtが読み込めません","f901"); }else{ $mailBody = stream_get_contents($fileData); fclose($fileData); $mailBody = str_replace("",$_f_name,$mailBody); $mailBody = str_replace("",$_f_kana,$mailBody); $mailBody = str_replace("",$_f_mail,$mailBody); $mailBody = str_replace("",$_f_tel,$mailBody); $mailBody = str_replace("",$_f_sex,$mailBody); $mailBody = str_replace("",$_f_trigger,$mailBody); $mailBody = str_replace("",$_f_trigger_other_text,$mailBody); $mailBody = str_replace("",$_f_massage,$mailBody); $mailBody = str_replace("",$dateTimeString,$mailBody); #メール送信 mb_send_mail($_f_mail, "【お問い合わせありがとうございました】", $mailBody, "From: $mailForm\r\n" . "Reply-To: $replyTo\r\n" . "Return-path: $mailForm\r\n" . "X-Mailer: FormMail"); } #クリニック向けメール本文の作成 if(($fileData = fopen('template/inquire_mail.txt', 'r')) == FALSE) { errorHTML(0,"inquire_mail.txtが読み込めません","f902"); }else{ $mailBody = stream_get_contents($fileData); fclose($fileData); $mailBody = str_replace("",$_f_name,$mailBody); $mailBody = str_replace("",$_f_kana,$mailBody); $mailBody = str_replace("",$_f_mail,$mailBody); $mailBody = str_replace("",$_f_tel,$mailBody); $mailBody = str_replace("",$_f_sex,$mailBody); $mailBody = str_replace("",$_f_trigger,$mailBody); $mailBody = str_replace("",$_f_trigger_other_text,$mailBody); $mailBody = str_replace("",$_f_massage,$mailBody); $mailBody = str_replace("",$dateTimeString,$mailBody); #メール送信 mb_send_mail($mailForm, "【問い合わせがありました】", $mailBody, "From: $mailForm\r\n" . "Reply-To: $_f_mail\r\n" . "X-Mailer: FormMail"); } #Thanxメッセージ描画 if(($fileData = fopen('template/thanks.html', 'r')) == FALSE) { errorHTML(0,"thanx.htmが読み込めません","e901"); }else{ $htmlData = stream_get_contents($fileData); fclose($fileData); $htmlData = str_replace("",$_POST['F-NAME'],$htmlData); print $htmlData; } } //============================================================================ function checkThisSubmit() //---------------------------------------------------------------------------- { formPostCheck(); if(($fileData = fopen('template/check.html', 'r')) == FALSE) { errorHTML(0,"input_check.htmlが読み込めません","c901"); }else{ $htmlData = stream_get_contents($fileData); fclose($fileData); $htmlData = str_replace("",htmlspecialchars($_POST['F-NAME'],ENT_QUOTES),$htmlData); $htmlData = str_replace("",htmlspecialchars($_POST['F-KANA'],ENT_QUOTES),$htmlData); $htmlData = str_replace("",$_POST['F-MAIL'],$htmlData); $htmlData = str_replace("",htmlspecialchars($_POST['F-TEL'],ENT_QUOTES),$htmlData); $htmlData = str_replace("",htmlspecialchars($_POST['F-SEX'],ENT_QUOTES),$htmlData); $trigger = ""; if($_POST['F-TRIGGER_HP'] == "ホームページ") { $trigger = "ホームページ"; } if($_POST['F-TRIGGER_TV'] == "テレビ") { if($trigger){ $trigger .= "、テレビ"; }else{ $trigger = "テレビ"; } } if($_POST['F-TRIGGER_MAGAZINE'] == "雑誌") { if($trigger){ $trigger .= "、雑誌"; }else{ $trigger = "雑誌"; } } if($_POST['F-TRIGGER_INTRODUCTION'] == "知人・友人からの紹介") { if($trigger){ $trigger .= "、知人・友人からの紹介"; }else{ $trigger = "知人・友人からの紹介"; } } if($_POST['F-TRIGGER_OTHER'] == "その他") { if($trigger){ $trigger .= "、その他"; }else{ $trigger = "その他"; } } $htmlData = str_replace("",$trigger,$htmlData); $htmlData = str_replace("",htmlspecialchars($_POST['F-TRIGGER_OTHER_TEXT'],ENT_QUOTES),$htmlData); $htmlData = str_replace("",nl2br(htmlspecialchars($_POST['F-MESSAGE'],ENT_QUOTES)),$htmlData); $htmlData = str_replace("",htmlspecialchars($_POST['F-MESSAGE'],ENT_QUOTES),$htmlData); print $htmlData; } } //============================================================================ function onDrawForm() //---------------------------------------------------------------------------- { if(($fileData = fopen('template/input.htm', 'r')) == FALSE) { errorHTML(0,"input.htmが読み込めません","a901"); }else{ $htmlData = stream_get_contents($fileData); fclose($fileData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); $htmlData = str_replace("","",$htmlData); # $htmlData = str_replace("","checkThisSubmit",$htmlData); print $htmlData; } accessLog(); } //============================================================================ function formPostCheck() //---------------------------------------------------------------------------- { #参照元チェック if(preg_match('/index.php$/',$_SERVER['HTTP_REFERER'])){ $httpRererer = $_SERVER['HTTP_REFERER']; }else{ $httpRererer = $_SERVER['HTTP_REFERER']."index.php"; } if("http://".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"] != $httpRererer){ errorHTML(1,"不正なアクセスです。","c901"); } #必須項目のチェック if(!$_POST['F-NAME']){ errorHTML(1,'お名前の入力は必須となっております。','c101'); }elseif(!$_POST['F-KANA']){ errorHTML(1,'ふりがなの入力は必須となっております。','c102'); }elseif(!$_POST['F-MAIL']){ errorHTML(1,'メールアドレスの入力は必須となっております。','c103'); }elseif(!$_POST['F-TEL']){ errorHTML(1,'電話番号の入力は必須となっております。','c104'); }elseif(!$_POST['F-MESSAGE']){ errorHTML(1,'ご質問・ご相談内容の入力は必須となっております。','c105'); } #氏名のチェック # if(5 > strlen($_POST['F-NAME'])){errorHTML(1,'入力いただいたお名前が短すぎるようです。','c1145');} if(31 < strlen($_POST['F-NAME'])){errorHTML(1,'入力いただいたお名前が長すぎるようです。','c11431');} #メールアドレスのチェック # if(strlen($_POST['F-MAIL']) != strlen($_POST['F-MAIL'])){errorHTML(1,'確認用のメールアドレスと一致しません。','c290');} # if($_POST['F-MAIL'] != $_POST['F-MAIL']){errorHTML(1,'確認用のメールアドレスと一致しません。','c2120');} if(128 < strlen($_POST['F-MAIL'])){errorHTML(1,'メールアドレスが正しく入力されていません。','c2128');} if(!preg_match("/^[\w\-\.]+\@[\w\-]+\.[\w\-\.]+[\w]$/",$_POST['F-MAIL'])){errorHTML(1,'メールアドレスが正しく入力されていません。','c299');} #問合せ内容のチェック # if(10 > strlen($_POST['F-MESSAGE'])){errorHTML(1,'入力いただいたお問合せ内容が短すぎるようです。','c310');} # if(501 < strlen($_POST['F-MESSAGE'])){errorHTML(1,'入力いただいたお問合せ内容が長すぎるようです。','c390');} $_f_massage = htmlspecialchars($_POST['F-MESSAGE']); $_y2c4output = nl2br($_POST['F-MESSAGE']); } //============================================================================ function accessLog() //---------------------------------------------------------------------------- { global $accessLogPath; if(($fp = fopen($accessLogPath, 'a','g0')) == FALSE) { errorHTML(0,"accesslogが書き込めません",'h901'); }else{ foreach($_SERVER as $key => $value) { $env_all[] = "$key=$value"; } $env_all[] = date("Y/m/d H:i:s", time()); $env_all[] = "--------------------------------------------------\n"; $size = fwrite($fp,implode("\n",$env_all)); fclose($fp); } } //============================================================================ function formLog($flg) //---------------------------------------------------------------------------- { global $formLogPath; if(($fp = fopen($formLogPath, 'a')) == FALSE) { errorHTML(0,"formLogが書き込めません",'i901'); }else{ $logData[] = $flg; $logData[] = $_SERVER['HTTP_REFERER']; $logData[] = $_SERVER["REMOTE_ADDR"]; $logData[] = date("Y/m/d H:i:s", time()); $logData[] = implode(",",$_POST); $logData[] = "\n----------------------------------------\n"; $size = fwrite($fp,implode(",",$logData)); fclose($fp); } } //============================================================================ function errorHTML($msgFlag,$message,$errorCode) //---------------------------------------------------------------------------- { global $errorLogPath; if($msgFlag == 1) { if(($fileData = fopen('template/input.htm', 'r')) == FALSE) { errorHTML(0,"input.htmが読み込めません",'j901'); }else{ $htmlData = stream_get_contents($fileData); fclose($fileData); $htmlData = str_replace("","
予期せぬエラーです。以下エラーコードをご連絡ください。
\n"; print "エラーコード:z999
"; }else{ $htmlData = stream_get_contents($fileData); fclose($fileData); $messageHtml = "予期せぬエラーです。再度初めから入力をお願いします。
\n";
$messageHtml .= "繰り返し表示される場合は以下エラーコードをご連絡ください。
エラーコード:r999
"; $htmlData = str_replace("",$messageHtml,$htmlData); print $htmlData; } #メール本文の作成 $mailBody = ""; #メール送信 mb_send_mail($mailForm, "問い合わせフォームエラー", $mailBody, "From: $mailForm\r\n" . "Reply-To: $systemAdmin\r\n" . "X-Mailer: FormMail"); } if(($fp = fopen($errorLogPath, 'a')) == FALSE) { errorHTML(0,"error.htmが読み込めません",'j901'); }else{ $logData[] = "ErrorCode = ".$errorCode; $logData[] = "Masseage = ".$message; $logData[] = implode(",",$_POST); $logData[] = date("Y/m/d H:i:s", time()); $logData[] = "----------------------------------------\n\n"; $size = fwrite($fp,implode("\n",$logData)); fclose($fp); accessLog(); } exit; } ?>