$formLabel) { if (isset($_REQUEST[$formName])) { $form[$formName] = sanitize($_REQUEST[$formName]); } else { $form[$formName] = ''; } } // フォームの入力チェック $errors = array(); foreach ($formRequired as $formName) { if (!$form[$formName]) { $errors[] = $forms[$formName] . 'が入力されていません。'; } } // エラーがある場合、エラー画面を表示して終了 if (count($errors)) { include('templates/error.php'); exit; } // 完了処理の場合 if (isset($_REQUEST['complete'])) { // メールクラスを読み込み require('Mail.php'); require('Mail/Send.php'); require('Mail/Address.php'); require('Util/String.php'); // メール本文を準備 ob_start(); include('templates/mail.php'); $mailBody = ob_get_contents(); ob_end_clean(); // メール送信 $mail = new Mail_Send(); $mail->setFrom($mailFrom); $mail->addTo($mailTo); $mail->setSubject($mailSubject); $mail->setBody($mailBody); $mail->send(); // 完了画面を表示して終了 include('templates/complete.php'); exit; } // 確認画面を表示して終了 include('templates/confirm.php'); exit; } else { // 入力画面を表示して終了 include('templates/index.php'); exit; } /** * 変数に対してサニタイズを行う。 * * 変数に対してサニタイズを行い、結果を元と同じ形の変数で返す。 * 変数が配列であった場合も、再帰的に処理を行うため、対応可能。 * * @param array $toSanitize サニタイズしたい変数 * @return array サニタイズした変数 */ function sanitize($toSanitize) { // サニタイズ後の値を保存する変数 $returnValue = array(); // 値が配列の場合 if (is_array($toSanitize)) { // 配列の各要素について処理 foreach ($toSanitize as $key => $val) { // 再帰呼び出しで処理 $returnValue[$key] = sanitize($val); } } else { // サニタイズしたものをクラス変数に追加 $returnValue = htmlspecialchars($toSanitize, ENT_QUOTES); } return $returnValue; } exit;