require_once("setting_config.inc");
require_once("arrContact.inc");
$pageTitle = "お問合わせ"; // meta title
//$pageDesc = $pageTitle; // meta description
//$pageKey = ","; // meta keywords
//$pageH1 = $pageTitle; // SEO h1 text
//$pankuzu_1 = "
" . $pageTitle . ""; // breadcrumb text
$act = $_REQUEST["act"];
// 入力情報取得
if ($_POST["val"]) {
$val = $_POST["val"];
} else {
$val = $_GET["val"];
}
//print_r($val);
// テンプレート
$tpl = "form.tpl";
// 処理モード
switch($act) {
// 問い合わせ確認
case "cnf":
// 入力内容変換
$val = changeInputData($val);
// 入力内容チェック
if (checkInputData($val, $arrErr)) {
// 表示用に変換
$val = getDspData($val);
$tpl = "confirm.tpl";
} else {
// 表示用に変換
$val = getDspData($val);
}
break;
// 問い合わせ完了
case "cmp":
// 登録&メール送信
if (setContactCmp($_SESSION["contact"])) {
$val = $_SESSION["contact"];
$tpl = "complete.tpl";
}
break;
// 問い合わせフォームへ戻る
case "back":
$val = $_SESSION["contact"];
$_SESSION["contact_flg"] = "1";
break;
// 問い合わせフォーム
default:
// デフォルト設定
$val["member_reg"] = "1";
$val["mail_reg"] = "1";
$val["term_type"] = "1";
$_SESSION["contact_flg"] = "1";
}
// テンプレート展開
require_once("./tpl/include_header.tpl");
require_once("./tpl/".$tpl);
require_once("./tpl/include_footer.tpl");
/*
* 入力内容変換
* @param array $val 変換前データ
* @return array $val 変換後データ
*/
function changeInputData($val)
{
global $arrPref;
// 引っ越し予定日
/*
$val["move_year_month"] = mb_convert_kana($val["move_year_month"], "n"
, CHARA_CODE);
$val["move_day"] = mb_convert_kana($val["move_day"], "n", CHARA_CODE);
$val["dsp_move_date"] = sprintf("%s年%s月%s日"
, substr($val["move_year_month"], 0, 4)
, substr($val["move_year_month"], 4, 2)
, ($val["move_day"] == "32") ? "未定" : $val["move_day"]);
// 見積り希望日
$val["estimate_year_month"] = mb_convert_kana($val["estimate_year_month"]
, "n", CHARA_CODE);
$val["estimate_day"] = mb_convert_kana($val["estimate_day"], "n"
, CHARA_CODE);
$val["dsp_estimate_date"] = sprintf("%s年%s月%s日"
, substr($val["estimate_year_month"], 0, 4)
, substr($val["estimate_year_month"], 4, 2)
, ($val["estimate_day"] == "32") ? "未定" : $val["estimate_day"]);
// 引っ越し内容
$val["move_kbn"] = mb_convert_kana($val["move_kbn"], "n"
, CHARA_CODE);
$val["dsp_move_kbn"] = "";
if ($val["move_kbn"] == "1") {
$val["dsp_move_kbn"] = "ご単身";
} else if ($val["move_kbn"] == "2") {
$val["dsp_move_kbn"] = "ご家族";
}
$val["move_num"] = mb_convert_kana($val["move_num"], "n"
, CHARA_CODE);
$val["dsp_move_num"] = "";
if ($val["move_num"]) {
$val["dsp_move_num"] = sprintf("(%s名)", $val["move_num"]);
}
// 間取り
$val["now_layout"] = mb_convert_kana($val["now_layout"], "n", CHARA_CODE);
$val["dsp_now_layout"] = "";
if ($val["now_layout"]) {
$val["dsp_now_layout"] = $arrLayout[$val["now_layout"]];
}
*/
// 名前
$val["company_name"] = mb_convert_kana($val["company_name"], "KV", CHARA_CODE);
$val["company_busyo"] = mb_convert_kana($val["company_busyo"], "KV", CHARA_CODE);
$val["name"] = mb_convert_kana($val["name"], "KV", CHARA_CODE);
// フリガナ
$val["company_kana"] = mb_convert_kana($val["company_kana"], "CKV", CHARA_CODE);
$val["kana"] = mb_convert_kana($val["kana"], "CKV", CHARA_CODE);
// メールアドレス
$val["mail_addr"] = mb_convert_kana($val["mail_addr"], "a", CHARA_CODE);
// 電話番号
$val["tel1"] = mb_convert_kana($val["tel1"], "n", CHARA_CODE);
$val["tel2"] = mb_convert_kana($val["tel2"], "n", CHARA_CODE);
$val["tel3"] = mb_convert_kana($val["tel3"], "n", CHARA_CODE);
$val["dsp_tel"] = sprintf("%s-%s-%s", $val["tel1"]
, $val["tel2"]
, $val["tel3"]);
/*
// 連絡先電話番号
$val["connect_tel1"] = mb_convert_kana($val["connect_tel1"], "n", CHARA_CODE);
$val["connect_tel2"] = mb_convert_kana($val["connect_tel2"], "n", CHARA_CODE);
$val["connect_tel3"] = mb_convert_kana($val["connect_tel3"], "n", CHARA_CODE);
$val["dsp_connect_tel"] = sprintf("%s-%s-%s", $val["connect_tel1"]
, $val["connect_tel2"]
, $val["connect_tel3"]);
*/
// 郵便番号
$val["now_zip1"] = mb_convert_kana($val["now_zip1"], "n", CHARA_CODE);
$val["now_zip2"] = mb_convert_kana($val["now_zip2"], "n", CHARA_CODE);
$val["dsp_now_zip"] = sprintf("%s-%s", $val["now_zip1"]
, $val["now_zip2"]);
/*
// 入居時期
$val["move_month"] = mb_convert_kana($val["move_month"], "n", CHARA_CODE);
$val["dsp_move_month"] = "";
if ($val["move_month"]) {
$val["dsp_move_month"] = sprintf("%s月", $val["move_month"]);
}
*/
// 都道府県
$val["now_pref"] = mb_convert_kana($val["now_pref"], "n", CHARA_CODE);
$val["dsp_now_pref"] = "";
if ($val["now_pref"]) {
$val["dsp_now_pref"] = $arrPref[$val["now_pref"]];
}
// 現在の住所
$val["now_address"] = mb_convert_kana($val["now_address"], "aKV", CHARA_CODE);
// 引っ越し先の住所
//$val["next_address"] = mb_convert_kana($val["next_address"], "aKV", CHARA_CODE);
// お問合わせ内容
$val["note"] = mb_convert_kana($val["note"], "aKV", CHARA_CODE);
/*
// 連絡方法
$val["connect_kbn"] = mb_convert_kana($val["connect_kbn"], "n", CHARA_CODE);
if ($val["connect_kbn"]) {
$val["dsp_connect_kbn"] = $arrConnectKbn[$val["connect_kbn"]];
}
$val["db_connect_kbn"] = $val["connect_kbn"];
*/
// SESSIONに入力情報を保存
$_SESSION["contact"] = $val;
return $val;
}
/*
* 入力内容エラーチェック
* @param array $val 入力データ
* @param array $arrErr エラーデータ
* @return boolean エラーなし:エラーあり
*/
function checkInputData($val, &$arrErr)
{
$res = true;
/*
// 引っ越し予定日(必須チェック)
if (!$val["move_year_month"] || !$val["move_day"]) {
$arrErr["move_year_month"] = setErrMsg("お引越し予定日が選択されていません"
, $arrErr["move_year_month_tag"]);
$res = false;
}
// 見積り希望日(必須チェック)
if (!$val["estimate_year_month"] || !$val["estimate_day"]) {
$arrErr["estimate_year_month"] = setErrMsg("お見積もりの希望日が選択されていません"
, $arrErr["estimate_year_month_tag"]);
$res = false;
}
*/
// 名前
if (!strlen($val["name"])) {
$arrErr["name"] = setErrMsg("お名前が入力されていません"
, $arrErr["name_tag"]);
$res = false;
}
// フリガナ
if (!strlen($val["kana"])) {
$arrErr["kana"] = setErrMsg("フリガナが入力されていません"
, $arrErr["kana_tag"]);
$res = false;
}
// メールアドレス
if (!strlen($val["mail_addr"])) {
$arrErr["mail_addr"] = setErrMsg("メールアドレスが入力されていません"
, $arrErr["mail_addr_tag"]);
$res = false;
// メールアドレスフォーマットチェック
} else if (!chkMailAddr($val["mail_addr"])) {
$arrErr["mail_addr"] = setErrMsg("メールアドレスの形式が間違っています"
, $arrErr["mail_addr_tag"]);
$res = false;
}
// 電話番号
// 1つでも入力がある場合
if (strlen($val["tel"])) {
// チェック用に電話番号を変換
$chkTel = sprintf("%s", $val["tel"]);
// 電話番号フォーマットチェック
if (!chkTelNo($chkTel)) {
$arrErr["tel"] = setErrMsg("電話番号の形式が間違っています"
, $arrErr["tel_tag"]);
$res = false;
}
} else {
$arrErr["tel"] = setErrMsg("電話番号が入力されていません"
, $arrErr["tel_tag"]);
$res = false;
}
// 住所
/*
if (strlen($val["now_zip1"]) && strlen($val["now_zip2"])) {
// 郵便番号フォーマットチェック
if (!chkZipNo($val["now_zip1"] . $val["now_zip2"])) {
$arrErr["now_zip1"] = setErrMsg("郵便番号の形式が間違っています"
, $arrErr["now_zip1_tag"]);
$res = false;
}
} else {
$arrErr["now_zip1"] = setErrMsg("郵便番号が入力されていません"
, $arrErr["now_zip1_tag"]);
$res = false;
}
*/
// 都道府県
/*
if (!strlen($val["now_pref"])) {
$arrErr["now_pref"] = setErrMsg("都道府県が選択されていません"
, $arrErr["now_zip1_tag"]);
$res = false;
}
*/
// 住所
/*
if (!strlen($val["now_address"])) {
$arrErr["now_address"] = setErrMsg("都道府県以下の住所が入力されていません"
, $arrErr["now_zip1_tag"]);
$res = false;
}
*/
// お問合わせ内容
//if (mb_strlen($val["note"], CHARA_CODE) > 1000) {
// $arrErr["note"] = setErrMsg("お問合わせ内容は1000文字以内で入力してください"
// , $arrErr["note_tag"]);
// $res = false;
//}
// 個人情報の確認
if ($val["consent"] != "1") {
$arrErr["consent"] = setErrMsg("個人情報取り扱いを確認してください"
, $arrErr["consent_tag"]);
$res = false;
}
return $res;
}
/**
* 電話番号チェック
*
* @param string $str チェック対象文字列
* @return bool true: 電話番号、false: 電話番号以外
*/
function chkTelNo($str)
{
$ptn = "/^0\d{1,4}[-\(]?\d{1,4}[-\)]?\d{4}$/";
return preg_match($ptn, $str) ? true : false;
}
/**
* メールアドレスチェック
*
* @param string $str チェック対象文字列
* @return bool true: メールアドレス、false: メールアドレス以外
*/
function chkMailAddr($str)
{
$ptn = "/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*"
. "@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/";
return preg_match($ptn, $str) ? true : false;
}
/**
* 郵便番号チェック
*
* @access public
* @param string $str チェック対象文字列
* @return bool true: 郵便番号、false: 郵便番号以外
*/
/*
function chkZipNo($str)
{
$ptn = "/^\d{3}[-]?\d{4}$/";
return preg_match($ptn, $str) ? true : false;
}
*/
/*
* 表示用に変換
* @param array $arrData 変換前データ
* @return array $arrData 変換後データ
*/
function getDspData($arrData)
{
// 配列の場合
if (is_array($arrData)) {
foreach($arrData as $key => $val) {
// 2次元配列より階層が深い場合再起する
if (is_array($arrData[$key])) {
// 表示用に変換関数呼び出し
$arrData[$key] = getDspData($arrData[$key]);
} else {
// 表示用に変換する
$arrData[$key] = htmlspecialchars($val, ENT_QUOTES);
}
}
} else {
// 表示用に変換する
$arrData = htmlspecialchars($arrData, ENT_QUOTES);
}
return $arrData;
}
/*
* エラーメッセージを表示用に変換
* @param string $msg メッセージ
* @return string $msg 表示用メッセージ
*/
function setErrMsg($msg, &$tag)
{
$fmt = "\t\t\t\t\t\t\t\t%s
\n";
$tag = " class=\"formErrorTbl\"";
return sprintf($fmt, $msg);
}
/*
* 問い合わせ内容登録&メール送信
* @param array $arrData 入力情報
* @return boolean エラーなし:エラーあり
*/
function setContactCmp($arrData)
{
$res = true;
// リロード対応
if ($_SESSION["contact_flg"] != "1") {
return $res;
}
$_SESSION["contact_flg"] = "0";
unset($_SESSION["contact_flg"]);
$arrData["sys_date"] = date("Y/m/d H:i:s");
$arrData["form_type"] = FORM_TYPE_MOVE;
// メール送信
setSendmail($arrData);
return $res;
}
/*
* 問い合わせ内容登録&メール送信
* @param array $arrData 入力情報
* @return boolean エラーなし:エラーあり
*/
function setSendMail($arrData)
{
global $subject_arr;
global $header_arr;
global $sender_arr;
$res = true;
// ユーザ情報セット
$body = getSendUserInfo($arrData);
// ユーザメール送信内容セット
$userMsg = setUserMail($body, $arrData["sys_date"]);
// 管理者メール送信内容セット
$adminMsg = setAdminMail($body, $arrData["sys_date"]);
mb_language("Ja") ;
mb_internal_encoding(CHARA_CODE) ;
// 送信元
$adminFrom = "From:" .mb_encode_mimeheader($header_arr[0]) ." <".$sender_arr[0].">\r\n";
$userFrom = "From:" .$arrData["mail_addr"];
// 件名
$title = $subject_arr[0];
// ユーザー用 メール送信
mb_send_mail($arrData["mail_addr"],$title,$userMsg,$adminFrom);
// 店舗用 メール送信
//mb_language("Ja") ;
//mb_internal_encoding(CHARA_CODE) ;
mb_send_mail($sender_arr[0],$title,$adminMsg,$userFrom);
return $res;
}
/*
* 問い合わせ内容生成(ユーザ側)
* @param array $arrData 入力情報
* @return string $body 問い合わせ情報
*/
function getSendUserInfo($arrData)
{
$body =<<