setAdminMail(SYSADMIN_MAIL); $el->setTemplate(TEMPLATE_DIR."error.htm"); $el->setErrorMsg("エラーが発生しました。"); $el->setLogFile(DATA_DIR."error.log"); } //---------------------------------------------------------------------------------------- // ライブラリの読み込み //---------------------------------------------------------------------------------------- require_once("common/webbase/View.class"); require_once("common/validator/RequestValidator.class"); require_once("common/webbase/Session.class"); require_once(API_DIR."contact/MailInfo.class"); //---------------------------------------------------------------------------------------- // フレームワーク初期化 //---------------------------------------------------------------------------------------- //ビュー管理オブジェクトを生成 $view=new View(); //リクエスト検査オブジェクトを生成 $validator=new RequestValidator(); //---------------------------------------------------------------------------------------- // 前準備 //---------------------------------------------------------------------------------------- //通知メールを送信する関数 function sendNotifyMail(&$mails, &$form){ if(!is_array($mails)){ user_error("invalid mail array", E_USER_ERROR); exit; } foreach($mails as $m){ if(!is_a($m, "MailInfo")){ user_error("invalid mail object.", E_USER_ERROR); exit; } } //オブジェクトをテンプレートからアクセスできるようにローカル変数として準備 $system=$_SERVER; //各メールを送信 foreach($mails as $m){ //出力バッファリングを有効にする ob_start(); //メールテンプレートを展開 include($m->getTmplFile()); //バッファの内容を取得 $msg=ob_get_contents(); //バッファをクリアし、出力バッファリングを無効にする ob_end_clean(); $headers="From: ".$m->getMailFrom()."\n"; if($m->getMailCc()!=""){ $headers.="Cc: ".$m->getMailCc()."\n"; } if($m->getMailBcc()!=""){ $headers.="Bcc: ".$m->getMailBcc()."\n"; } //メールを送信 mb_send_mail($m->getMailTo(), str_replace(":no:", $orderno, $m->getSubject()), $msg, $headers); } } //---------------------------------------------------------------------------------------- // アクションの割り振り //---------------------------------------------------------------------------------------- switch($_REQUEST["ac"]){ case "finish": $form = $_GET; $view->display(TEMPLATE_DIR."finish.php"); break; case "send": if(!Session::getVar("checked", $_SERVER["PHP_SELF"])){ user_error("不正なアクセスです。最初から順番にアクセスしてください。", E_USER_WARNING); exit; } //フォーム値をセッションから読み込み $form = &Session::getVar("form", $_SERVER["PHP_SELF"]); //メール送信 if(OWNER_MAIL_TO != ""){ $mail_tos = explode(",", OWNER_MAIL_TO); foreach($mail_tos as $mail_to){ $mail=new MailInfo(); $mail->setMailTo($mail_to); if(preg_match(" /^:([a-zA-Z\-\_]+):$/", OWNER_MAIL_FROM, $matches)){ $mail->setMailFrom($form[$matches[1]]); }else{ $mail->setMailFrom(OWNER_MAIL_FROM); } $mail->setSubject(OWNER_MAIL_SUBJECT); $mail->setTmplFile(MAIL_DIR."owner_mail.txt"); $mails[]=$mail; } } if(OWNER_MAIL_BCC != ""){ $mail_tos = explode(",", OWNER_MAIL_BCC); foreach($mail_tos as $mail_to){ $mail=new MailInfo(); $mail->setMailTo($mail_to); if(preg_match(" /^:([a-zA-Z\-\_]+):$/", OWNER_MAIL_FROM, $matches)){ $mail->setMailFrom($form[$matches[1]]); }else{ $mail->setMailFrom(OWNER_MAIL_FROM); } $mail->setSubject(OWNER_MAIL_SUBJECT); $mail->setTmplFile(MAIL_DIR."owner_mail.txt"); $mails[]=$mail; } } if($form[USER_MAIL_TO_FIELD] != ""){ $mail=new MailInfo(); $mail->setMailTo($form[USER_MAIL_TO_FIELD]); $mail->setMailFrom(USER_MAIL_FROM); $mail->setSubject(USER_MAIL_SUBJECT); $mail->setTmplFile(MAIL_DIR."user_mail.txt"); $mails[]=$mail; } sendNotifyMail($mails, $form); //セッションをクリア Session::unsetVar("form", $_SERVER["PHP_SELF"]); Session::unsetVar("checked", $_SERVER["PHP_SELF"]); header("Location: ".$_SERVER["PHP_SELF"]."?ac=finish"); break; case "confirm": $form = $_POST; //フォーム値をチェック $validator->check(VALIDATE_DIR."form.xml", $form); $error = &$validator->getError(); //エラーがあればフォームを再表示 if($error->hasError()){ Session::setVar("checked", false, $_SERVER["PHP_SELF"]); $view->setVar("form", $form); $errors = $error->getMessages(); $view->setVar("errors", $errors); $view->display(TEMPLATE_DIR."form.php"); exit; } //フォーム値をセッションに保存 Session::setVar("form", $form, $_SERVER["PHP_SELF"]); Session::setVar("checked", true, $_SERVER["PHP_SELF"]); $view->setVar("form", $form); $view->display(TEMPLATE_DIR."confirm.php"); break; default: //フォーム値を読み込み if(Session::getVar("checked", $_SERVER["PHP_SELF"])){ $form = Session::getVar("form", $_SERVER["PHP_SELF"]); }else{ $form = $_GET; } $view->setVar("form", $form); $view->display(TEMPLATE_DIR."form.php"); break; } ?>