'}} /* $checkbox_1 = array ( 'HP' => 'HP
', ); if($_SERVER['REQUEST_METHOD'] == 'POST') { foreach($_POST as $k => $v) { if($k == 'catalog1'){ foreach($v as $vv){ foreach($checkbox_1 as $selected_k => $selected_v ) { if($vv == $selected_k){ $checkbox_selected_1[] = $selected_k; } } } } } } $smarty->assign('checkbox_1', $checkbox_1); $smarty->assign('checkbox_selected_1', $checkbox_selected_1); */ // ========================================================= // 入力データチェック // ========================================================= // カスタムのエラーは入力データチェックの項目に直接記載してください。 $prm_check = array ( 'name' => 'お名前をご入力ください', 'name_kana' => 'フリガナを入力してください', 'mail' => 'メールアドレスを入力してください', 'pref' => 'ご住所を選択してください', 'confirm' => '送信確認をチェックしてください', ); $check_mail = 'true'; // ========================================================= // Logic // ========================================================= // フォームデータの変換 $param = ''; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $param = $_POST; $error = chk_data($_POST,$prm_check); if (isset($error) ) { $param['act'] = DEF_ACT; $smarty->assign('error', $error); } } // 処理ページの決定 $act = isset($param['act']) ? $param['act'] : DEF_ACT; $screen_function_name = 'screen_' . $act; if (!function_exists($screen_function_name)) { exit(); } call_user_func($screen_function_name, $param); $temp_name = $act . '.html'; // テンプレートを表示 $smarty->assign('url', $php_self); $smarty->display($template_name.$temp_name); // ========================================================= // 入力画面 // ========================================================= function screen_entry($param) { global $smarty; $smarty->assign('prm', $param); $_SESSION['entry'] = true; return TRUE; } // ========================================================= // 確認画面 // ========================================================= function screen_confirm($param) { global $smarty; // actの初期化 unset($param['act']); $smarty->assign('prm', $param); $smarty->assign('hidden', $param); return TRUE; } // ========================================================= // 完了画面 // ========================================================= function screen_submit($param) { global $smarty; global $mail_txt; global $mail_copy; global $log_file; // ログ書き出し if($log_file != ""){ $log_file = APP_DIR .'data'. DS . $log_file; $handle = @fopen($log_file, 'a+'); if($handle){ flock($handle, LOCK_EX); rewind($handle); foreach($param as $v) { if(is_array($v)) { foreach($v as $vv) { $put_data[] = str_replace(array("\r\n", "\n", "\r"),'
', $vv); } }else{ $put_data[] = str_replace(array("\r\n", "\n", "\r"),'
', $v); } } $put_data = implode(',', $put_data . '\n'); fputs($handle, $put_data); flock($handle, LOCK_UN); fclose($handle); } } extract($param); // メール送信 require_once ($mail_txt); #if( $_SESSION['entry'] === true ) { mb_language('Japanese'); mb_internal_encoding( APP_ENC ); //管理者へメール if(defined('MAIL_TO')){ if(!mb_send_mail(MAIL_TO, $mailtitle, $temp , 'From:'. MAIL_TO)) { echo 'メール送信が失敗しました。'; exit(); } } //ユーザー($from)へメール if(!empty($mail) && $mail_copy == 1){ if(!mb_send_mail($mail, $mailtitle, $temp , 'From:'. MAIL_TO)) { echo '控えのメール送信が失敗しました。'; exit(); } } #}else{ # echo 'タイムアウトエラー。お手数ですが再送信してください。'; # exit(); #} session_destroy(); return TRUE; } // ========================================================= // 入力データチェック // ========================================================= function chk_data($prm_data,$prm_check) { global $check_mail; $error = null; foreach ($prm_data as $k => $v) { foreach ($prm_check as $kk => $vv) { if($k == $kk){ if(empty($v)) { $error[$k] = $vv; } } } } if (!empty($prm_data['mail']) && (chk_mail($prm_data['mail']) === false || $prm_data['mail'] != $prm_data['mail_confirm']) ){ $error['mail_confirm'] = 'メールアドレスをご確認ください'; } return $error; } function chk_mail($mail, $domainCheck = false) { if (preg_match('/^[a-zA-Z0-9\.\_\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+\@(\[?)[a-zA-Z0-9\-\.]+'. '\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/', $mail)) { if ($domainCheck && function_exists('checkdnsrr')) { list (, $domain) = explode('@', $mail); if (checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')) { return true; } return false; } return true; } return false; } ?>