/** * Page のプロセス. * * @return void */ function process() { global $objCampaignSess; $objView = new SC_SiteView(false); $objQuery = new SC_Query(); $objCustomer = new SC_Customer(); $objCampaignSess = new SC_CampaignSession(); // クッキー管理クラス $objCookie = new SC_Cookie(COOKIE_EXPIRE); $objLoginFormParam = new SC_FormParam(); // ログインフォーム用 $this->lfInitLoginFormParam($objLoginFormParam); // 初期設定 $objLoginFormParam->setParam($_POST); // POST値の取得 // ディレクトリ名を取得 $dir_name = dirname($_SERVER['PHP_SELF']); $arrDir = split('/', $dir_name); $dir_name = $arrDir[count($arrDir) - 1]; /* セッションにキャンペーンデータを書き込む */ // キャンペーンからの遷移という情報を保持 $objCampaignSess->setIsCampaign(); // キャンペーンIDを保持 $campaign_id = $objQuery->get("dtb_campaign", "campaign_id", "directory_name = ? AND del_flg = 0", array($dir_name)); $objCampaignSess->setCampaignId($campaign_id); // キャンペーンディレクトリ名を保持 $objCampaignSess->setCampaignDir($dir_name); // キャンペーンが開催中かをチェック if ($this->lfCheckActive($dir_name, $objQuery)) { $status = CAMPAIGN_TEMPLATE_ACTIVE; $this->is_active = true; } else { $status = CAMPAIGN_TEMPLATE_END; $this->is_active = false; } switch ($_POST['mode']) { // ログインチェック case 'login': $objLoginFormParam->toLower('login_email'); $this->arrErr = $objLoginFormParam->checkError(); $arrForm = $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'])) { // 仮登録の判定 $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 { // 重複申込チェック $orverlapping_flg = $objQuery->get("dtb_campaign", "orverlapping_flg", "campaign_id = ?", array($objCampaignSess->getCampaignId())); if ($orverlapping_flg) { if ($this->lfOverlappingCheck($objCustomer->getValue('customer_id'), $objQuery)) { $this->arrErr['login_email'] = "※ 複数回ご応募することは出来ません。"; } } if (count($this->arrErr) == 0) { // 申込情報を登録 $this->lfRegistCampaignOrder($objCustomer->getValue('customer_id'), $objQuery); // 完了ページへリダイレクト $this->sendRedirect($this->getLocation(CAMPAIGN_URL . "{$dir_name}/complete.php")); exit; } } } break; default: break; } // 入力情報を渡す $this->arrForm = $_POST; $this->dir_name = $dir_name; $this->tpl_dir_name = CAMPAIGN_TEMPLATE_PATH . $dir_name . "/" . $status; //---- ページ表示 $objView->assignobj($this); $objView->display($this->tpl_mainpage); }
/** * 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; $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); }