doValidation($validData); } // エラーが発生した場合 if($validator->anErrorOccurred()) { $arrErr = $validator->arrErr; foreach($params->params as $key => $value) { switch($key) { case "prefectures": $pref = $value; break; case "situation": $situation = $value; break; case "time": $time = $value; break; case "design": $cbDefaults[0] = $value; break; case "appli": $cbDefaults[1] = $value; break; case "cost": $cbDefaults[2] = $value; break; case "gps": $cbDefaults[3] = $value; break; case "otherwise": $cbDefaults[4] = $value; break; case "other": $other = $value; break; default: $tmpl->assign($key, $value); break; } } $template = "index.html"; } else { $dispData = $params->getDisplayData($indications, $relations); if(!isset($dispData['other'])) { $dispData['other'] = ""; } if(!isset($dispData['interested'])) { $dispData['interested'] = ""; } foreach($dispData as $key => $val) { $tmpl->assign($key, $val); } // 値の引き継ぎ $tmpl->assign("hidden", $params->getHiddenTags()); $template = "confirm.html"; } } break; // ================================================================ // メール送信・完了 case MODE_COMPLETE : $mData = $params->getDisplayData($indications, $relations); // 内部へのメール送信 $mTemp = new TemplateHandler("mailBody.txt"); $req = array(); if(!isset($mData['other'])) { $mData['other'] = ""; } if(!isset($mData['interested'])) { $mData['interested'] = ""; } foreach($mData as $key => $val) { if(strcmp($key, "interested") == 0) { $val = str_replace("
", "\n", $val); } $mTemp->assign($key, $val); array_push($req, $key,$val); } $mBody = $mTemp->display(false); MailSender::sendMail($mailTo, sprintf($subject,$mData['type']), $mBody, $mailFrom); //顧客管理システムにReuest $res = httpRequest("http://serv.diamond-portal.jp/DPManagement/request_online_demo.do","POST","",$req); $tmp_res = split(",",$res); $status = split("=",$tmp_res[0]); $message = split("=",$tmp_res[1]); if($status[1]=="1"){ // お客様へのメール送信(成功時) $mcTemp = new TemplateHandler("mailBody_to_onlinedemo.txt"); foreach($mData as $key => $val) { $mcTemp->assign($key, $val); } $mcTemp->assign('hash', $message[1]); $mcBody = $mcTemp->display(false); MailSender::sendMail($mData['mail'], $subject, $mcBody, $mailFrom); }else{ // お客様へのメール送信(失敗時) $mcTemp = new TemplateHandler("mailBody_to_onlinedemo_err.txt"); foreach($mData as $key => $val) { $mcTemp->assign($key, $val); } $mcTemp->assign('hash', $message[1]); $mcBody = $mcTemp->display(false); MailSender::sendMail($mData['mail'], $subject, $mcBody, $mailFrom); } // 完了画面 $template = "complete.html"; break; // ================================================================ // 確認画面から戻る case MODE_BACK : foreach($params->params as $key => $value) { switch($key) { case "prefectures": $pref = $value; break; case "situation": $situation = $value; break; case "time": $time = $value; break; case "design": $cbDefaults[0] = $value; break; case "appli": $cbDefaults[1] = $value; break; case "cost": $cbDefaults[2] = $value; break; case "gps": $cbDefaults[3] = $value; break; case "otherwise": $cbDefaults[4] = $value; break; case "other": $other = $value; break; default: $tmpl->assign($key, $value); break; } } $template = "index.html"; break; // ================================================================ // デフォルト(入力画面) default : foreach($elementKeys as $key) { $tmpl->assign($key, ""); } $template = "index.html"; break; } // ================================================================ // 出力 $tmpl->setTemplate($template); $tmpl->assign("action", $action); // エラーメッセージ $tmpl->assign("err_company", ((!empty($arrErr['company'])) ? '
'.$arrErr['company'].'' : "")); $tmpl->assign("err_category", ((!empty($arrErr['category'])) ? '
'.$arrErr['category'].'' : "")); $tmpl->assign("err_scale", ((!empty($arrErr['scale'])) ? '
'.$arrErr['scale'].'' : "")); $tmpl->assign("err_belong", ((!empty($arrErr['belong'])) ? '
'.$arrErr['belong'].'' : "")); $tmpl->assign("err_position", ((!empty($arrErr['position'])) ? '
'.$arrErr['position'].'' : "")); $tmpl->assign("err_name", ((!empty($arrErr['name'])) ? '
'.$arrErr['name'].'' : "")); $tmpl->assign("err_post_no1", ((!empty($arrErr['post_no1'])) ? '
'.$arrErr['post_no1'].'' : "")); $tmpl->assign("err_prefectures", ((!empty($arrErr['prefectures'])) ? '
'.$arrErr['prefectures'].'' : "")); $tmpl->assign("err_address", ((!empty($arrErr['address'])) ? '
'.$arrErr['address'].'' : "")); $tmpl->assign("err_tel1", ((!empty($arrErr['tel1'])) ? '
'.$arrErr['tel1'].'' : "")); $tmpl->assign("err_fax1", ((!empty($arrErr['fax1'])) ? '
'.$arrErr['fax1'].'' : "")); $tmpl->assign("err_mail", ((!empty($arrErr['mail'])) ? '
'.$arrErr['mail'].'' : "")); $tmpl->assign("err_reason", ((!empty($arrErr['reason'])) ? '
'.$arrErr['reason'].'' : "")); $tmpl->assign("err_interested", ((!empty($arrErr['interested'])) ? '
'.$arrErr['interested'].'' : "")); $tmpl->assign("err_other", ((!empty($arrErr['other'])) ? '
'.$arrErr['other'].'' : "")); $tmpl->assign("err_situation", ((!empty($arrErr['situation'])) ? '
'.$arrErr['situation'].'' : "")); $tmpl->assign("err_time", ((!empty($arrErr['time'])) ? '
'.$arrErr['time'].'' : "")); $tmpl->assign("err_contents", ((!empty($arrErr['contents'])) ? '
'.$arrErr['contents'].'' : "")); // お問い合わせ種別のoptionタグ $tmpl->assign("prefectures_option", HTMLUtility::optionMake($indications['prefectures'], $pref)); $tmpl->assign("situation_option", HTMLUtility::optionMake($indications['situation'], $situation)); $tmpl->assign("time_option", HTMLUtility::optionMake($indications['time'], $time)); CheckboxMake($checkboxItems, $tmpl, $other, $cbDefaults); $tmpl->display(); function CheckboxMake(&$checkboxItems, &$tmpl, $other, $checked = null) { // チェックボックス出力 if(isset($checkboxItems) && count($checkboxItems) > 0) { foreach($checkboxItems as $key => $properties) { $checkboxes = ""; $loop = 0; foreach($properties as $property) { list($label, $elements) = $property; // デフォルト値の取得 $default = $checked[$loop]; // チェックボックスの作成 $checkboxes .= '
  • '.HTMLUtility::checkboxMake($elements, $label, $default); if(strcmp($elements['value'], "otherwise") == 0) { $checkboxes .= ' '; } $checkboxes .= '
  • '; $loop++; } $tmpl->assign($key.'_checkbox', $checkboxes); } } } function httpRequest($url, $method="GET", $headers="", $post=array("")) { $URL = parse_url($url); if (isset($URL['query'])) { $URL['query'] = "?".$URL['query']; } else { $URL['query'] = ""; } if (!isset($URL['port'])) $URL['port'] = 80; $request = $method." ".$URL['path'].$URL['query']." HTTP/1.0\r\n"; $request .= "Host: ".$URL['host']."\r\n"; $request .= "User-Agent: PHP/".phpversion()."\r\n"; if (isset($URL['user']) && isset($URL['pass'])) { $request .= "Authorization: Basic ".base64_encode($URL['user'].":".$URL['pass'])."\r\n"; } $request .= $headers; if (strtoupper($method) == "POST") { while (list($name, $value) = each($post)) { $POST[] = $name."=".urlencode($value); } $postdata = implode("&", $POST); $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; $request .= "Content-Length: ".strlen($postdata)."\r\n"; $request .= "\r\n"; $request .= $postdata; } else { $request .= "\r\n"; } $fp = fsockopen($URL['host'], $URL['port']); if (!$fp) { die("ERROR\n"); } fputs($fp, $request); $response = ""; while (!feof($fp)) { $response .= fgets($fp, 4096); } fclose($fp); $DATA = split("\r\n\r\n", $response, 2); return $DATA[1]; } ?>