/**
  * 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();
     $objQuery = new SC_Query();
     $objCampaignSess = new SC_CampaignSession();
     // キャンペーンからの登録の場合の処理
     if ($_GET["cp"] != "") {
         $arrCampaign = $objQuery->select("directory_name", "dtb_campaign", "campaign_id = ?", array($_GET["cp"]));
         // キャンペーンディレクトリ名を保持
         $dir_name = $arrCampaign[0]['directory_name'];
     } else {
         $dir_name = "";
     }
     // レイアウトデザインを取得
     $helper = new SC_Helper_PageLayout_Ex();
     $helper->sfGetPageLayout($this, false, DEF_LAYOUT);
     $objView->assignobj($this);
     // フレームを選択(キャンペーンページから遷移なら変更)
     if ($this->dir_name != "") {
         $objView->display(CAMPAIGN_TEMPLATE_PATH . $dir_name . "/active/site_frame.tpl");
         $objCampaignSess->delCampaign();
     } else {
         $objView->display(SITE_FRAME);
     }
 }
 /**
  * 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);
 }
Example #5
0
 /**
  * Page のプロセス.
  *
  * @return void
  */
 function process()
 {
     global $objCampaignSess;
     $objView = new SC_SiteView(false);
     $objQuery = new SC_Query();
     $objCampaignSess = new SC_CampaignSession();
     // ディレクトリ名を取得
     $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);
     // カートに入れないページの場合のページ(申込のみページ)へリダイレクト
     $cart_flg = $objQuery->get("dtb_campaign", "cart_flg", "campaign_id = ?", array($campaign_id));
     if (!$cart_flg) {
         $this->sendRedirect($this->getLocation(CAMPAIGN_URL . "{$dir_name}/application.php"));
         exit;
     }
     // キャンペーンが開催中かをチェック
     if ($this->lfCheckActive($dir_name, $objQuery)) {
         $status = CAMPAIGN_TEMPLATE_ACTIVE;
     } else {
         $status = CAMPAIGN_TEMPLATE_END;
     }
     if ($_GET['init'] != "") {
         $this->tpl_init = 'false';
         $this->lfDispProductsList($_GET['ids'], $objQuery);
     } else {
         $this->tpl_init = 'true';
     }
     switch ($_POST['mode']) {
         case 'cart':
             $this->arrErr = $this->lfCheckError($_POST['product_id']);
             if (count($this->arrErr) == 0) {
                 $objCartSess = new SC_CartSession();
                 $classcategory_id = "classcategory_id" . $_POST['product_id'];
                 $classcategory_id1 = $_POST[$classcategory_id . '_1'];
                 $classcategory_id2 = $_POST[$classcategory_id . '_2'];
                 $quantity = "quantity" . $_POST['product_id'];
                 // 規格1が設定されていない場合
                 if (!$this->tpl_classcat_find1[$_POST['product_id']]) {
                     $classcategory_id1 = '0';
                 }
                 // 規格2が設定されていない場合
                 if (!$this->tpl_classcat_find2[$_POST['product_id']]) {
                     $classcategory_id2 = '0';
                 }
                 $objCartSess->setPrevURL($_SERVER['REQUEST_URI']);
                 $objCartSess->addProduct(array($_POST['product_id'], $classcategory_id1, $classcategory_id2), $_POST[$quantity], $campaign_id);
                 $this->sendRedirect($this->getLocation(URL_CART_TOP));
                 exit;
             }
             break;
         default:
             break;
     }
     // 入力情報を渡す
     $this->arrForm = $_POST;
     $this->tpl_dir_name = CAMPAIGN_TEMPLATE_PATH . $dir_name . "/" . $status;
     //---- ページ表示
     $objView->assignobj($this);
     $objView->display($this->tpl_mainpage);
 }
Example #6
0
        // メインテンプレート
        global $arrJPO_INFO;
        $this->arrJPO_INFO = $arrJPO_INFO;
        /*
         session_start時のno-cacheヘッダーを抑制することで
         「戻る」ボタン使用時の有効期限切れ表示を抑制する。
         private-no-expire:クライアントのキャッシュを許可する。
        */
        session_cache_limiter('private-no-expire');
    }
}
$objPage = new LC_Page();
$objView = new SC_SiteView();
$objSiteSess = new SC_SiteSession();
$objCartSess = new SC_CartSession();
$objCampaignSess = new SC_CampaignSession();
$objSiteInfo = $objView->objSiteInfo;
$arrInfo = $objSiteInfo->data;
// パラメータ管理クラス
$objFormParam = new SC_FormParam();
// パラメータ情報の初期化
lfInitParam();
// POST値の取得
$objFormParam->setParam($_POST);
// アクセスの正当性の判定
$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
switch ($_POST['mode']) {
    // 登録
    case 'regist':
        // 入力値の変換
        $objFormParam->convParam();
 /**
  * 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);
 }
Example #8
0
 /**
  * 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);
 }
Example #10
0
 /**
  * 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;
     $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);
 }
Example #13
0
 /**
  * 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);
 }