/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $objView = new SC_SiteView(); $objCustomer = new SC_Customer(); $objCampaignSess = new SC_CampaignSession(); // レイアウトデザインを取得 $layout = new SC_Helper_PageLayout_Ex(); $layout->sfGetPageLayout($this, false, DEF_LAYOUT); // 規約内容の取得 $objQuery = new SC_Query(); $objQuery->setorder("rank DESC"); $arrRet = $objQuery->select("kiyaku_title, kiyaku_text", "dtb_kiyaku", "del_flg <> 1"); $max = count($arrRet); $this->tpl_kiyaku_text = ""; for ($i = 0; $i < $max; $i++) { $this->tpl_kiyaku_text .= $arrRet[$i]['kiyaku_title'] . "\n\n"; $this->tpl_kiyaku_text .= $arrRet[$i]['kiyaku_text'] . "\n\n"; } // キャンペーンからの遷移がチェック $this->is_campaign = $objCampaignSess->getIsCampaign(); $this->campaign_dir = $objCampaignSess->getCampaignDir(); $objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); }
/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $objView = new SC_SiteView(); $objCampaignSess = new SC_CampaignSession(); // レイアウトデザインを取得 $layout = new SC_Helper_PageLayout_Ex(); $layout->sfGetPageLayout($this, false, DEF_LAYOUT); // キャンペーンからの遷移かチェック $this->is_campaign = $objCampaignSess->getIsCampaign(); $this->campaign_dir = $objCampaignSess->getCampaignDir(); $objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); }
/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $objView = new SC_SiteView(); $objCampaignSess = new SC_CampaignSession(); // transaction check if (!$this->isValidToken()) { SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); } // レイアウトデザインを取得 $layout = new SC_Helper_PageLayout_Ex(); $layout->sfGetPageLayout($this, false, DEF_LAYOUT); // キャンペーンからの遷移がチェック $this->is_campaign = $objCampaignSess->getIsCampaign(); $this->campaign_dir = $objCampaignSess->getCampaignDir(); $objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); }
// 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // 確認ページへ移動 header("Location: " . URL_SHOP_CONFIRM); exit; break; } $objDate = new SC_Date(); $objDate->setStartYear(RELEASE_YEAR); $objDate->setEndYear(RELEASE_YEAR + CREDIT_ADD_YEAR); $objPage->arrYear = $objDate->getZeroYear(); $objPage->arrMonth = $objDate->getZeroMonth(); $objPage->arrForm = $objFormParam->getFormParamList(); $objView->assignobj($objPage); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); //----------------------------------------------------------------------------------------------------------------------------------- /* パラメータ情報の初期化 */ function lfInitParam() { global $objFormParam; $objFormParam->addParam("カード番号1", "card_no01", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); $objFormParam->addParam("カード番号2", "card_no02", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); $objFormParam->addParam("カード番号3", "card_no03", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); $objFormParam->addParam("カード番号4", "card_no04", CREDIT_NO_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); $objFormParam->addParam("カード期限年", "card_year", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK")); $objFormParam->addParam("カード期限月", "card_month", 2, "n", array("EXIST_CHECK", "NUM_COUNT_CHECK", "NUM_CHECK")); $objFormParam->addParam("姓", "card_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK")); $objFormParam->addParam("名", "card_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALPHA_CHECK")); $objFormParam->addParam("お支払い方法", "jpo_info", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "ALNUM_CHECK")); }
/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $conn = new SC_DBConn(); $objView = new SC_SiteView(); $objSiteSess = new SC_SiteSession(); $objCartSess = new SC_CartSession(); $objCampaignSess = new SC_CampaignSession(); $objCustomer = new SC_Customer(); $objCookie = new SC_Cookie(); $this->objFormParam = new SC_FormParam(); // フォーム用 $this->lfInitParam(); // パラメータ情報の初期化 $this->objFormParam->setParam($_POST); // POST値の取得 // ユーザユニークIDの取得と購入状態の正当性をチェック $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); $this->tpl_uniqid = $uniqid; // ログインチェック if ($objCustomer->isLoginSuccess()) { // すでにログインされている場合は、お届け先設定画面に転送 $this->sendRedirect($this->getLocation("./deliv.php"), array()); exit; } if ($_SERVER["REQUEST_METHOD"] == "POST") { if (!$this->isValidToken()) { SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); } } if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } switch ($_POST['mode']) { case 'nonmember_confirm': $this->lfSetNonMember($this); // ※breakなし // ※breakなし case 'confirm': // 入力値の変換 $this->objFormParam->convParam(); $this->objFormParam->toLower('order_mail'); $this->objFormParam->toLower('order_mail_check'); $this->arrErr = $this->lfCheckError(); // 入力エラーなし if (count($this->arrErr) == 0) { // DBへのデータ登録 $this->lfRegistData($uniqid); // お届け先のコピー $this->lfCopyDeliv($uniqid, $_POST); // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // お支払い方法選択ページへ移動 $this->sendRedirect($this->getLocation(URL_SHOP_PAYMENT)); exit; } break; // 前のページに戻る // 前のページに戻る case 'return': // 確認ページへ移動 $this->sendRedirect($this->getLocation(URL_CART_TOP)); exit; break; case 'nonmember': $this->lfSetNonMember($this); // ※breakなし // ※breakなし default: if (isset($_GET['from']) && $_GET['from'] == 'nonmember') { $this->lfSetNonMember($this); } // ユーザユニークIDの取得 $uniqid = $objSiteSess->getUniqId(); $objQuery = new SC_Query(); $where = "order_temp_id = ?"; $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); if (empty($arrRet)) { $arrRet = array(array('order_email' => "", 'order_birth' => "")); } // DB値の取得 $this->objFormParam->setParam($arrRet[0]); $this->objFormParam->setValue('order_email_check', $arrRet[0]['order_email']); $this->objFormParam->setDBDate($arrRet[0]['order_birth']); break; } // クッキー判定 $this->tpl_login_email = $objCookie->getCookie('login_email'); if ($this->tpl_login_email != "") { $this->tpl_login_memory = "1"; } // 選択用日付の取得 $objDate = new SC_Date(START_BIRTH_YEAR); $this->arrYear = $objDate->getYear('', 1950); // 日付プルダウン設定 $this->arrMonth = $objDate->getMonth(); $this->arrDay = $objDate->getDay(); if ($this->year == '') { $this->year = '----'; } // 入力値の取得 $this->arrForm = $this->objFormParam->getFormParamList(); if (empty($this->arrForm['year']['value'])) { $this->arrForm['year']['value'] = '----'; } $this->transactionid = $this->getToken(); $objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); }
/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $conn = new SC_DBConn(); $this->objView = new SC_SiteView(); $objCampaignSess = new SC_CampaignSession(); $objDb = new SC_Helper_DB_Ex(); $CONF = $objDb->sf_getBasisData(); // 店舗基本情報 SC_Utils_Ex::sfDomainSessionStart(); $objCustomer = new SC_Customer(); $this->arrData = isset($_SESSION['customer']) ? $_SESSION['customer'] : ""; // レイアウトデザインを取得 $layout = new SC_Helper_PageLayout_Ex(); $layout->sfGetPageLayout($this, false, DEF_LAYOUT); //フォーム値変換用カラム $arrConvertColumn = array(array("column" => "name01", "convert" => "aKV"), array("column" => "name02", "convert" => "aKV"), array("column" => "kana01", "convert" => "CKV"), array("column" => "kana02", "convert" => "CKV"), array("column" => "zip01", "convert" => "n"), array("column" => "zip02", "convert" => "n"), array("column" => "pref", "convert" => "n"), array("column" => "addr01", "convert" => "aKV"), array("column" => "addr02", "convert" => "aKV"), array("column" => "email", "convert" => "a"), array("column" => "tel01", "convert" => "n"), array("column" => "tel02", "convert" => "n"), array("column" => "tel03", "convert" => "n"), array("column" => "contents", "convert" => "aKV")); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } switch ($_POST['mode']) { case 'confirm': // エラーチェック $this->arrForm = $_POST; $this->arrForm['email'] = isset($_POST['email']) ? strtolower($_POST['email']) : ''; $this->arrForm['email02'] = isset($_POST['email02']) ? strtolower($_POST['email02']) : ''; $this->arrForm = $this->lfConvertParam($this->arrForm, $arrConvertColumn); $this->arrErr = $this->lfErrorCheck($this->arrForm); if (!$this->arrErr) { // エラー無しで完了画面 $this->tpl_mainpage = 'contact/confirm.tpl'; $this->tpl_title = 'お問い合わせ(確認ページ)'; } else { foreach ($this->arrForm as $key => $val) { $this->{$key} = $val; } } break; case 'return': foreach ($_POST as $key => $val) { $this->{$key} = $val; } break; case 'complete': $this->arrForm = $_POST; $this->arrForm['email'] = strtolower($_POST['email']); $this->arrForm = $this->lfConvertParam($this->arrForm, $arrConvertColumn); $this->arrErr = $this->lfErrorCheck($this->arrForm); if (!$this->arrErr) { $this->lfSendMail($CONF, $this); // 完了ページへ移動する $this->sendRedirect($this->getLocation("./complete.php", array(), true)); exit; } else { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } break; default: break; } //---- ページ表示 $this->objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($this->objView); }
/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $objConn = new SC_DbConn(); $objQuery = new SC_Query(); $objView = new SC_SiteView(); $CONF = $objView->objSiteInfo->data; $objCampaignSess = new SC_CampaignSession(); // レイアウトデザインを取得 $objLayout = new SC_Helper_PageLayout_Ex(); $objLayout->sfGetPageLayout($this, false, DEF_LAYOUT); //---- 登録用カラム配列 $arrRegistColumn = array(array("column" => "name01", "convert" => "aKV"), array("column" => "name02", "convert" => "aKV"), array("column" => "kana01", "convert" => "CKV"), array("column" => "kana02", "convert" => "CKV"), array("column" => "zip01", "convert" => "n"), array("column" => "zip02", "convert" => "n"), array("column" => "pref", "convert" => "n"), array("column" => "addr01", "convert" => "aKV"), array("column" => "addr02", "convert" => "aKV"), array("column" => "email", "convert" => "a"), array("column" => "email2", "convert" => "a"), array("column" => "email_mobile", "convert" => "a"), array("column" => "email_mobile2", "convert" => "a"), array("column" => "tel01", "convert" => "n"), array("column" => "tel02", "convert" => "n"), array("column" => "tel03", "convert" => "n"), array("column" => "fax01", "convert" => "n"), array("column" => "fax02", "convert" => "n"), array("column" => "fax03", "convert" => "n"), array("column" => "sex", "convert" => "n"), array("column" => "job", "convert" => "n"), array("column" => "birth", "convert" => "n"), array("column" => "reminder", "convert" => "n"), array("column" => "reminder_answer", "convert" => "aKV"), array("column" => "password", "convert" => "a"), array("column" => "password02", "convert" => "a"), array("column" => "mailmaga_flg", "convert" => "n")); //---- 登録除外用カラム配列 $arrRejectRegistColumn = array("year", "month", "day", "email02", "email_mobile02", "password02"); if ($_SERVER["REQUEST_METHOD"] == "POST") { //-- POSTデータの引き継ぎ $this->arrForm = $_POST; if ($this->arrForm['year'] == '----') { $this->arrForm['year'] = ''; } $this->arrForm['email'] = strtolower($this->arrForm['email']); // emailはすべて小文字で処理 $this->arrForm['email02'] = strtolower($this->arrForm['email02']); // emailはすべて小文字で処理 //-- 入力データの変換 $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); //-- 入力エラーチェック $this->arrErr = $this->lfErrorCheck($this->arrForm); if ($this->arrErr || $_POST["mode"] == "return") { // 入力エラーのチェック foreach ($this->arrForm as $key => $val) { $this->{$key} = $val; } } else { //-- 確認 if ($_POST["mode"] == "confirm") { foreach ($this->arrForm as $key => $val) { if ($key != "mode" && $key != "subm") { $this->list_data[$key] = $val; } } //パスワード表示 $passlen = strlen($this->arrForm['password']); $this->passlen = $this->lfPassLen($passlen); $this->tpl_mainpage = 'entry/confirm.tpl'; $this->tpl_title = '会員登録(確認ページ)'; } //--仮登録と完了画面 if ($_POST["mode"] == "complete") { $this->uniqid = $this->lfRegistData($this->arrForm, $arrRegistColumn, $arrRejectRegistColumn); if ($objCampaignSess->getIsCampaign()) { $this->etc_value = "&cp=" . $objCampaignSess->getCampaignId(); } $this->tpl_css = '/css/layout/entry/complete.css'; $this->tpl_mainpage = 'entry/complete.tpl'; $this->tpl_title = '会員登録(完了ページ)'; // 仮登録完了メール送信 $this->CONF = $CONF; $this->name01 = $_POST['name01']; $this->name02 = $_POST['name02']; $objMailText = new SC_SiteView(); $objMailText->assignobj($this); $objHelperMail = new SC_Helper_Mail_Ex(); $objQuery = new SC_Query(); $subject = $objHelperMail->sfMakeSubject($objQuery, $objMailText, $this, '会員登録のご確認'); $toCustomerMail = $objMailText->fetch("mail_templates/customer_mail.tpl"); $objMail = new SC_SendMail(); $objMail->setItem('', $subject, $toCustomerMail, $CONF["email03"], $CONF["shop_name"], $CONF["email03"], $CONF["email04"], $CONF["email04"], $CONF["email01"]); // 宛先の設定 $name = $_POST["name01"] . $_POST["name02"] . " 様"; $objMail->setTo($_POST["email"], $name); $objMail->sendMail(); // キャンペーン受注情報を登録 $this->lfRegistCampaignOrder($this->uniqid, $objQuery); // 完了ページに移動させる。 $this->sendRedirect($this->getLocation("./complete.php")); exit; } } } if ($this->year == '') { $this->year = '----'; } //---- ページ表示 $objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); }
/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $objView = new SC_SiteView(false); $objCartSess = new SC_CartSession("", false); $objSiteSess = new SC_SiteSession(); $objCampaignSess = new SC_CampaignSession(); $objSiteInfo = $objView->objSiteInfo; $objCustomer = new SC_Customer(); $db = new SC_Helper_DB_Ex(); // 基本情報の取得 $arrInfo = $objSiteInfo->data; // 商品購入中にカート内容が変更された。 if ($objCartSess->getCancelPurchase()) { $this->tpl_message = "商品購入中にカート内容が変更されましたので、お手数ですが購入手続きをやり直して下さい。"; } if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } /* * FIXME reload() を使った方が良いが無限ループしてしまう... */ switch ($_POST['mode']) { case 'up': $objCartSess->upQuantity($_POST['cart_no']); SC_Utils_Ex::sfReload(); break; case 'down': $objCartSess->downQuantity($_POST['cart_no']); SC_Utils_Ex::sfReload(); break; case 'delete': $objCartSess->delProduct($_POST['cart_no']); SC_Utils_Ex::sfReload(); break; case 'confirm': // カート内情報の取得 $arrRet = $objCartSess->getCartList(); $max = count($arrRet); $cnt = 0; for ($i = 0; $i < $max; $i++) { // 商品規格情報の取得 $this->arrData = $db->sfGetProductsClass($arrRet[$i]['id']); // DBに存在する商品 if ($this->arrData != "") { $cnt++; } } // カート商品が1件以上存在する場合 if ($cnt > 0) { // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); $pre_uniqid = $objSiteSess->getUniqId(); // 注文一時IDの発行 $objSiteSess->setUniqId(); $uniqid = $objSiteSess->getUniqId(); // エラーリトライなどで既にuniqidが存在する場合は、設定を引き継ぐ if ($pre_uniqid != "") { $sqlval['order_temp_id'] = $uniqid; $where = "order_temp_id = ?"; $objQuery = new SC_Query(); $objQuery->update("dtb_order_temp", $sqlval, $where, array($pre_uniqid)); } // カートを購入モードに設定 $objCartSess->saveCurrentCart($uniqid); // 購入ページへ $this->sendRedirect(URL_SHOP_TOP); exit; } break; default: break; } // カート集計処理 $db->sfTotalCart($this, $objCartSess, $arrInfo); $this->arrData = $db->sfTotalConfirm($this->arrData, $this, $objCartSess, $arrInfo, $objCustomer); $this->arrInfo = $arrInfo; // ログイン判定 if ($objCustomer->isLoginSuccess()) { $this->tpl_login = true; $this->tpl_user_point = $objCustomer->getValue('point'); $this->tpl_name = $objCustomer->getValue('name01'); } // 送料無料までの金額を計算 $this->tpl_deliv_free = $this->arrInfo['free_rule'] - $this->tpl_total_pretax; // 前頁のURLを取得 $this->tpl_prev_url = $objCartSess->getPrevURL(); $objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); }
/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $objView = new SC_SiteView(); $objSiteSess = new SC_SiteSession(); $objCartSess = new SC_CartSession(); $objCampaignSess = new SC_CampaignSession(); $objDb = new SC_Helper_DB_Ex(); $this->objCustomer = new SC_Customer(); $objSiteInfo = $objView->objSiteInfo; $arrInfo = $objSiteInfo->data; // パラメータ管理クラス $this->objFormParam = new SC_FormParam(); // パラメータ情報の初期化 $this->lfInitParam(); // POST値の取得 $this->objFormParam->setParam($_POST); // ユーザユニークIDの取得と購入状態の正当性をチェック $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); // ユニークIDを引き継ぐ $this->tpl_uniqid = $uniqid; // 会員ログインチェック if ($this->objCustomer->isLoginSuccess()) { $this->tpl_login = '******'; $this->tpl_user_point = $this->objCustomer->getValue('point'); //戻り先URL $this->tpl_back_url = URL_DELIV_TOP; } else { $this->tpl_back_url = URL_SHOP_TOP . "?from=nonmember"; } // 金額の取得 (購入途中で売り切れた場合にはこの関数内にてその商品の個数が0になる) $objDb->sfTotalCart($this, $objCartSess, $arrInfo); if (empty($arrData)) { $arrData = array(); } $this->arrData = $objDb->sfTotalConfirm($arrData, $this, $objCartSess, $arrInfo); // カート内の商品の売り切れチェック $objCartSess->chkSoldOut($objCartSess->getCartList()); if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } switch ($_POST['mode']) { case 'confirm': // 入力値の変換 $this->objFormParam->convParam(); $this->arrErr = $this->lfCheckError($this->arrData); // 入力エラーなし if (count($this->arrErr) == 0) { // DBへのデータ登録 $this->lfRegistData($uniqid); // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // 確認ページへ移動 $this->sendRedirect($this->getLocation(URL_SHOP_CONFIRM, array(), true)); exit; } else { // ユーザユニークIDの取得 $uniqid = $objSiteSess->getUniqId(); // 受注一時テーブルからの情報を格納 $this->lfSetOrderTempData($uniqid); } break; // 前のページに戻る // 前のページに戻る case 'return': // 非会員の場合 // 正常な推移であることを記録しておく $objSiteSess->setRegistFlag(); $this->sendRedirect(URL_SHOP_TOP); exit; break; // 支払い方法が変更された場合 // 支払い方法が変更された場合 case 'payment': // ここのbreakは、意味があるので外さないで下さい。 break; default: // 受注一時テーブルからの情報を格納 $this->lfSetOrderTempData($uniqid); break; } // 店舗情報の取得 $arrInfo = $objSiteInfo->data; // 購入金額の取得得 $total_pretax = $objCartSess->getAllProductsTotal($arrInfo); // 支払い方法の取得 $this->arrPayment = $this->lfGetPayment($total_pretax); // 支払い方法の画像があるなしを取得($img_show true:ある false:なし) $this->img_show = $this->lfGetImgShow($this->arrPayment); // 配送時間の取得 $arrRet = $objDb->sfGetDelivTime($this->objFormParam->getValue('payment_id')); $this->arrDelivTime = SC_Utils_Ex::sfArrKeyValue($arrRet, 'time_id', 'deliv_time'); // 配送日一覧の取得 $this->arrDelivDate = $this->lfGetDelivDate(); $this->arrForm = $this->objFormParam->getFormParamList(); $objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); }
/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $objConn = new SC_DbConn(); $objView = new SC_SiteView(); $objCustomer = new SC_Customer(); $objCampaignSess = new SC_CampaignSession(); $objDb = new SC_Helper_DB_Ex(); $CONF = $objDb->sf_getBasisData(); $objDate = new SC_Date(START_BIRTH_YEAR, date("Y", strtotime("now"))); $ssl_url = rtrim(SSL_URL, "/"); $ssl_url .= $_SERVER['PHP_SELF']; // 規約ページからの遷移でなければエラー画面へ遷移する if (empty($_POST) && !preg_match('/kiyaku.php/', basename($_SERVER['HTTP_REFERER']))) { SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); } // レイアウトデザインを取得 $layout = new SC_Helper_PageLayout_Ex(); $layout->sfGetPageLayout($this, false, DEF_LAYOUT); //---- 登録用カラム配列 $arrRegistColumn = array(array("column" => "name01", "convert" => "aKV"), array("column" => "name02", "convert" => "aKV"), array("column" => "kana01", "convert" => "CKV"), array("column" => "kana02", "convert" => "CKV"), array("column" => "zip01", "convert" => "n"), array("column" => "zip02", "convert" => "n"), array("column" => "pref", "convert" => "n"), array("column" => "addr01", "convert" => "aKV"), array("column" => "addr02", "convert" => "aKV"), array("column" => "email", "convert" => "a"), array("column" => "email2", "convert" => "a"), array("column" => "email_mobile", "convert" => "a"), array("column" => "email_mobile2", "convert" => "a"), array("column" => "tel01", "convert" => "n"), array("column" => "tel02", "convert" => "n"), array("column" => "tel03", "convert" => "n"), array("column" => "fax01", "convert" => "n"), array("column" => "fax02", "convert" => "n"), array("column" => "fax03", "convert" => "n"), array("column" => "sex", "convert" => "n"), array("column" => "job", "convert" => "n"), array("column" => "birth", "convert" => "n"), array("column" => "reminder", "convert" => "n"), array("column" => "reminder_answer", "convert" => "aKV"), array("column" => "password", "convert" => "a"), array("column" => "password02", "convert" => "a"), array("column" => "mailmaga_flg", "convert" => "n")); //---- 登録除外用カラム配列 $arrRejectRegistColumn = array("year", "month", "day", "email02", "email_mobile02", "password02"); if ($_SERVER["REQUEST_METHOD"] == "POST") { if (!$this->isValidToken()) { SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); } //空白・改行の削除 $_POST["name01"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["name01"]); $_POST["name02"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["name02"]); $_POST["kana01"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["kana01"]); $_POST["kana02"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["kana02"]); $_POST["zip01"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["zip01"]); $_POST["zip02"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["zip02"]); $_POST["addr01"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["addr01"]); $_POST["addr02"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["addr02"]); $_POST["tel01"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["tel01"]); $_POST["tel02"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["tel02"]); $_POST["tel03"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["tel03"]); $_POST["fax01"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["fax01"]); $_POST["fax02"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["fax02"]); $_POST["fax03"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["fax03"]); $_POST["email"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["email"]); $_POST["email02"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["email02"]); $_POST["password"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["password"]); $_POST["password02"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["password02"]); $_POST["reminder_answer"] = preg_replace('/^[ \\r\\n]*(.*?)[ \\r\\n]*$/u', '$1', $_POST["reminder_answer"]); //-- POSTデータの引き継ぎ $this->arrForm = $_POST; //SSL用 $this->arrForm[ssl_url] = $ssl_url; if ($this->arrForm['year'] == '----') { $this->arrForm['year'] = ''; } $this->arrForm['email'] = strtolower($this->arrForm['email']); // emailはすべて小文字で処理 $this->arrForm['email02'] = strtolower($this->arrForm['email02']); // emailはすべて小文字で処理 //-- 入力データの変換 $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); //-- 入力エラーチェック $this->arrErr = $this->lfErrorCheck($this->arrForm); if ($this->arrErr || $_POST["mode"] == "return") { // 入力エラーのチェック foreach ($this->arrForm as $key => $val) { $this->{$key} = $val; } } else { //-- 確認 if ($_POST["mode"] == "confirm") { foreach ($this->arrForm as $key => $val) { if ($key != "mode" && $key != "subm") { $this->list_data[$key] = $val; } } //パスワード表示 $passlen = strlen($this->arrForm['password']); $this->passlen = SC_Utils_Ex::lfPassLen($passlen); $this->tpl_css = '/css/layout/entry/confirm.css'; $this->tpl_mainpage = 'entry/confirm.tpl'; $this->tpl_title = '会員登録(確認ページ)'; } //-- 会員登録と完了画面 if ($_POST["mode"] == "complete") { // キャンペーンからの遷移の時用の値 if ($objCampaignSess->getIsCampaign()) { $this->etc_value = "&cp=" . $objCampaignSess->getCampaignId(); } // 会員情報の登録 $this->CONF = $CONF; $this->uniqid = $this->lfRegistData($this->arrForm, $arrRegistColumn, $arrRejectRegistColumn, CUSTOMER_CONFIRM_MAIL); $this->tpl_css = '/css/layout/entry/complete.css'; $this->tpl_mainpage = 'entry/complete.tpl'; $this->tpl_title = '会員登録(完了ページ)'; // 完了メール送信 $this->name01 = $_POST['name01']; $this->name02 = $_POST['name02']; $objMailText = new SC_SiteView(); $objMailText->assignobj($this); $mailHelper = new SC_Helper_Mail_Ex(); $objQuery = new SC_Query(); // 仮会員が有効の場合 if (CUSTOMER_CONFIRM_MAIL == true) { $subject = $mailHelper->sfMakesubject($objQuery, $objMailText, $this, '会員登録のご確認'); $toCustomerMail = $objMailText->fetch("mail_templates/customer_mail.tpl"); } else { $subject = $mailHelper->sfMakesubject($objQuery, $objMailText, $this, '会員登録のご完了'); $toCustomerMail = $objMailText->fetch("mail_templates/customer_regist_mail.tpl"); // ログイン状態にする $objCustomer->setLogin($_POST["email"]); } $objMail = new SC_SendMail(); $objMail->setItem('', $subject, $toCustomerMail, $CONF["email03"], $CONF["shop_name"], $CONF["email03"], $CONF["email04"], $CONF["email04"]); // 宛先の設定 $name = $_POST["name01"] . $_POST["name02"] . " 様"; $objMail->setTo($_POST["email"], $name); $objMail->sendMail(); // 完了ページに移動させる。 $customer_id = $objQuery->get("dtb_customer", "customer_id", "secret_key = ?", array($this->uniqid)); $this->sendRedirect($this->getLocation("./complete.php", array("ci" => $customer_id))); exit; } } } if ($this->year == '') { $this->year = '----'; } $this->transactionid = $this->getToken(); //---- ページ表示 $objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); }
/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $objView = new SC_SiteView(); $objSiteSess = new SC_SiteSession(); $objCartSess = new SC_CartSession(); $objCampaignSess = new SC_CampaignSession(); $objCustomer = new SC_Customer(); // クッキー管理クラス $objCookie = new SC_Cookie(COOKIE_EXPIRE); // パラメータ管理クラス $this->objFormParam = new SC_FormParam(); // パラメータ情報の初期化 $this->lfInitParam(); // POST値の取得 $this->objFormParam->setParam($_POST); $this->objLoginFormParam = new SC_FormParam(); // ログインフォーム用 $this->lfInitLoginFormParam(); //パスワード・Eメールにある空白をトリム $this->lfConvertEmail($_POST["login_email"]); $this->lfConvertLoginPass($_POST["login_pass"]); $this->objLoginFormParam->setParam($_POST); // POST値の取得 // ユーザユニークIDの取得と購入状態の正当性をチェック $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess); $this->tpl_uniqid = $uniqid; if (!isset($_POST['mode'])) { $_POST['mode'] = ""; } // ログインチェック if ($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess()) { // 不正アクセスとみなす SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } switch ($_POST['mode']) { case 'login': $this->objLoginFormParam->toLower('login_email'); $this->arrErr = $this->objLoginFormParam->checkError(); $arrForm = $this->objLoginFormParam->getHashArray(); // クッキー保存判定 if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") { $objCookie->setCookie('login_email', $_POST['login_email']); } else { $objCookie->setCookie('login_email', ''); } if (count($this->arrErr) == 0) { // ログイン判定 if (!$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) { // 仮登録の判定 $objQuery = new SC_Query(); $where = "email = ? AND status = 1 AND del_flg = 0"; $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'])); if ($ret > 0) { SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); } else { SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); } } } else { // ログインページに戻る $this->sendRedirect(URL_SHOP_TOP); exit; } break; // 削除 // 削除 case 'delete': if (SC_Utils_Ex::sfIsInt($_POST['other_deliv_id'])) { $objQuery = new SC_Query(); $where = "other_deliv_id = ?"; $arrRet = $objQuery->delete("dtb_other_deliv", $where, array($_POST['other_deliv_id'])); $this->objFormParam->setValue('select_addr_id', ''); } break; // 会員登録住所に送る // 会員登録住所に送る case 'customer_addr': // 会員登録住所がチェックされている場合 if ($_POST['deliv_check'] == '-1') { // 会員情報の住所を受注一時テーブルに書き込む $this->lfRegistDelivData($uniqid, $objCustomer); // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // お支払い方法選択ページへ移動 $this->sendRedirect($this->getLocation(URL_SHOP_PAYMENT, array(), true)); exit; // 別のお届け先がチェックされている場合 } elseif ($_POST['deliv_check'] >= 1) { if (SC_Utils_Ex::sfIsInt($_POST['deliv_check'])) { $objQuery = new SC_Query(); $deliv_count = $objQuery->count("dtb_other_deliv", "customer_id=? and other_deliv_id = ?", array($objCustomer->getValue('customer_id'), $_POST['deliv_check'])); if ($deliv_count != 1) { SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); } // 登録済みの別のお届け先を受注一時テーブルに書き込む $this->lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['deliv_check']); // 正常に登録されたことを記録しておく $objSiteSess->setRegistFlag(); // お支払い方法選択ページへ移動 $this->sendRedirect($this->getLocation(URL_SHOP_PAYMENT, array(), true)); exit; } } else { // エラーを返す $arrErr['deli'] = '※ お届け先を選択してください。'; } break; // 前のページに戻る // 前のページに戻る case 'return': // 確認ページへ移動 $this->sendRedirect($this->getLocation(URL_CART_TOP, array(), true)); exit; break; default: $objQuery = new SC_Query(); $where = "order_temp_id = ?"; $arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid)); if (empty($arrRet)) { $arrRet = array(""); } $this->objFormParam->setParam($arrRet[0]); break; } /** 表示処理 **/ // 会員登録住所の取得 $col = "name01, name02, pref, addr01, addr02"; $where = "customer_id = ?"; $objQuery = new SC_Query(); $arrCustomerAddr = $objQuery->select($col, "dtb_customer", $where, array($_SESSION['customer']['customer_id'])); // 別のお届け先住所の取得 $col = "other_deliv_id, name01, name02, pref, addr01, addr02"; $objQuery->setorder("other_deliv_id DESC"); $objOtherAddr = $objQuery->select($col, "dtb_other_deliv", $where, array($_SESSION['customer']['customer_id'])); $this->arrAddr = $arrCustomerAddr; $this->tpl_addrmax = count($objOtherAddr); $cnt = 1; foreach ($objOtherAddr as $val) { $this->arrAddr[$cnt] = $val; $cnt++; } // 入力値の取得 if (!isset($arrErr)) { $arrErr = array(); } $this->arrForm = $this->objFormParam->getFormParamList(); $this->arrErr = $arrErr; $objView->assignobj($this); // フレームを選択(キャンペーンページから遷移なら変更) $objCampaignSess->pageView($objView); }