"); print_r($ar); print(""); } /** * 依存ファイルの読み込み */ require_once('../MySmarty.php'); //Smartyクラス require_once('../MyMailSmarty.php'); //メール送信用Smartyクラス //smartyインスタンスの作成 $smarty = new MySmarty(); //フォーム情報の処理 $input = $_POST; $mode = (array_key_exists('mode', $input)) ? $input['mode'] : false; $input[F_NAME_DMAN] = (array_key_exists(F_NAME_DMAN, $input)) ? 1 : 0; if ($mode == 'check') { $errs = array(); //エラー情報格納配列 $dman = $input[F_NAME_DMAN]; //資料請求フラグ //エラーチェック。エラーがあれば再入力支援POST情報とエラー情報をアサイン //名前チェック $name = htmlspecialchars($input[F_NAME_NAME]); $err = ''; if (!$err and preg_match(REGEX_EMPTY, $name)) { $err = F_CAP_NAME.'を入力して下さい。'; array_push($errs, $err); } if (!$err and (mb_strlen($name) > F_LIMIT_NAME)) { $err = F_CAP_NAME.'の入力文字数が多すぎます。(全角'.F_LIMIT_NAME.'文字以内)'; array_push($errs, $err); } //カタカナチェック $kana = htmlspecialchars($input[F_NAME_KANA]); $err = ''; if (!$err and preg_match(REGEX_EMPTY, $kana)) { $err = F_CAP_KANA.'を入力して下さい。'; array_push($errs, $err); } if (!$err and (mb_strlen($kana) > F_LIMIT_KANA)) { $err = F_CAP_KANA.'の入力文字数が多すぎます。(全角'.F_LIMIT_KANA.'文字以内)'; array_push($errs, $err); } //メールアドレスチェック require('Validate.php'); $mail = $input[F_NAME_MAIL]; $err = ''; if (!$err and !Validate::email($mail, true)) { $err = F_CAP_MAIL.'を正しく入力して下さい。'; array_push($errs, $err); } if (!$err and (strlen($mail) > F_LIMIT_MAIL)) { $err = F_CAP_MAIL.'の入力文字数が多すぎます。(半角'.F_LIMIT_MAIL.'文字以内)'; array_push($errs, $err); } //本文チェック $cont = htmlspecialchars($input[F_NAME_CONT]); $err = ''; if (!$err and preg_match(REGEX_EMPTY, $cont)) { $err = F_CAP_CONT.'を入力して下さい。'; array_push($errs, $err); } if (!$err and (mb_strlen($cont) > F_LIMIT_CONT)) { $err = F_CAP_CONT.'の入力文字数が多すぎます。(全角'.F_LIMIT_CONT.'文字以内)'; array_push($errs, $err); } //郵便番号 $err = ''; if ($dman or $input[F_NAME_ZIP1] or $input[F_NAME_ZIP2]) { $postal = htmlspecialchars($input[F_NAME_ZIP1].'-'.$input[F_NAME_ZIP2]); $postal = mb_convert_kana($postal, 'a'); if (!$err and !preg_match(REGEX_POSTAL, $postal)) { $err = F_CAP_ZIP1.'を正しく入力して下さい。'; array_push($errs, $err); } } //住所 $err = ''; if ($dman or $input[F_NAME_ADD1]) { $add1 = htmlspecialchars($input[F_NAME_ADD1]); if (!$err and preg_match(REGEX_EMPTY, $add1)) { $err = F_CAP_ADD1.'を入力して下さい。'; array_push($errs, $err); } if (!$err and (mb_strlen($add1) > F_LIMIT_ADD1)) { $err = F_CAP_ADD1.'の入力文字数が多すぎます。(全角'.F_LIMIT_ADD1.'文字以内)'; array_push($errs, $err); } } $err = ''; $add2 = htmlspecialchars($input[F_NAME_ADD2]); if (!$err and (mb_strlen($add2) > F_LIMIT_ADD2)) { $err = F_CAP_ADD2.'の入力文字数が多すぎます。(全角'.F_LIMIT_ADD2.'文字以内)'; array_push($errs, $err); } //電話番号 $err = ''; if ($dman or $input[F_NAME_PHON]) { $phon = htmlspecialchars($input[F_NAME_PHON]); $phon = mb_convert_kana($phon, 'a'); if (!$err and !preg_match(REGEX_PHONE, $phon)) { $err = F_CAP_PHON.'を正しく入力して下さい。'; array_push($errs, $err); } } } //確認でOKの場合は、入力内容をまとめてメールで配信 if ($mode == 'confirm') { //戻るボタンだった場合はモードをリセット if (array_key_exists('back', $input)) { $mode = ''; } else { //メール送信用Smartyを生成 $mail_smarty = new MyMailSmarty(MAIL_CHARSET, PAGE_CHARSET); //メール送信用smartyにアサイン $mail_smarty->assign('MAIL_FROM_ADMIN', MAIL_FROM_ADMIN); //送信元 $mail_smarty->assign('MAIL_TO', MAIL_TO); //送信先 $mail_smarty->assign('input', $input); //入力情報 $mail_smarty->assign('F_NAME_NAME', F_NAME_NAME); //変数キー名 $mail_smarty->assign('F_NAME_KANA', F_NAME_KANA); $mail_smarty->assign('F_NAME_MAIL', F_NAME_MAIL); $mail_smarty->assign('F_NAME_CONT', F_NAME_CONT); $mail_smarty->assign('F_NAME_DMAN', F_NAME_DMAN); $mail_smarty->assign('F_NAME_ZIP1', F_NAME_ZIP1); $mail_smarty->assign('F_NAME_ZIP2', F_NAME_ZIP2); $mail_smarty->assign('F_NAME_ADD1', F_NAME_ADD1); $mail_smarty->assign('F_NAME_ADD2', F_NAME_ADD2); $mail_smarty->assign('F_NAME_PHON', F_NAME_PHON); //メールを送信 $noerr = $mail_smarty->send_mail('mail.inquiry.txt'); //エラーだった場合は、エラーを追加 if (!$noerr) { $err = 'お問い合わせ送信時に不具合がありました。 しばらく送信してもできない場合は直接メールにてお問い合わせ下さい。'; array_push($errs, $err); } } } /** * 変数のアサイン */ if (count($errs)) { //エラーがあれば、モードをリセットしてエラー配列をアサイン $mode = ''; $smarty->assign('errs', $errs); } else { //チェックでエラーがなければ、モードを確認モードに if ($mode == 'check') { $mode = 'confirm'; //確認でOKであれば、モードを完了モードに } else if ($mode == 'confirm') { $mode = 'complete'; } } $smarty->assign('mode', $mode); $smarty->assign('input', $input); /** * 定数のアサイン */ //変数キー名 $smarty->assign('F_NAME_NAME', F_NAME_NAME); $smarty->assign('F_NAME_KANA', F_NAME_KANA); $smarty->assign('F_NAME_MAIL', F_NAME_MAIL); $smarty->assign('F_NAME_CONT', F_NAME_CONT); $smarty->assign('F_NAME_DMAN', F_NAME_DMAN); $smarty->assign('F_NAME_ZIP1', F_NAME_ZIP1); $smarty->assign('F_NAME_ZIP2', F_NAME_ZIP2); $smarty->assign('F_NAME_ADD1', F_NAME_ADD1); $smarty->assign('F_NAME_ADD2', F_NAME_ADD2); $smarty->assign('F_NAME_PHON', F_NAME_PHON); $smarty->display('inquiry/inquiry.html'); ?>