Changeset 20091


Ignore:
Timestamp:
2011/02/04 16:26:14 (11 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_5-dev:20090
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/Smarty/templates/default/shopping/index.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fshopping%2Findex.tpl
data/Smarty/templates/mobile/shopping/index.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fmobile%2Fshopping%2Findex.tpl
data/Smarty/templates/sphone/shopping/index.tpl index.tpl-20101209134550-lsv02w9wikfx9cj3-38
data/class/SC_FormParam.php 15078@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2FSC_FormParam.php
data/class/pages/shopping/LC_Page_Shopping.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping.php
data/class/pages/shopping/LC_Page_Shopping_Deliv.php 15223@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fshopping%2FLC_Page_Shopping_Deliv.php
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110204072610-34311c7r99r01a7g
bzr:revno:
2819
bzr:revprop:branch-nick:
branches/version-2_5-dev
bzr:root:
branches/version-2_5-dev
bzr:text-revisions:

data/Smarty/templates/default/shopping/index.tpl ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
data/Smarty/templates/mobile/shopping/index.tpl ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
data/Smarty/templates/sphone/shopping/index.tpl ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
data/class/SC_FormParam.php ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
data/class/pages/shopping/LC_Page_Shopping_Deliv.php ohkouchi@loop-az.jp-20110204072336-milrhkq2dg4vl345
bzr:timestamp:
2011-02-04 16:26:10.503999949 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-02-04T07:26:10.504000Z
Message:

#984([フロント]商品購入 リファクタリング)
#783(ページ間の遷移方法の改善)

  • /shopping/index.php のログイン処理を修正
Location:
branches/version-2_5-dev/data
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/Smarty/templates/default/shopping/index.tpl

    r19998 r20091  
    2424  <div id="under02column_login"> 
    2525    <h2 class="title"><!--{$tpl_title|h}--></h2> 
    26     <form name="member_form" id="member_form" method="post" action="./deliv.php" onsubmit="return fnCheckLogin('member_form')"> 
     26    <form name="member_form" id="member_form" method="post" action="?" onsubmit="return fnCheckLogin('member_form')"> 
    2727   <div class="loginarea"> 
    2828     <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" /> 
  • branches/version-2_5-dev/data/Smarty/templates/mobile/shopping/index.tpl

    r19998 r20091  
    3333 
    3434<!--▼会員登録がお済みのお客様--> 
    35 <form name="member_form" id="member_form" method="post" action="./deliv.php"> 
     35<form name="member_form" id="member_form" method="post" action="?"> 
     36  <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->"> 
    3637    <input type="hidden" name="mode" value="login"> 
    3738<!--{if !$tpl_valid_phone_id}--> 
  • branches/version-2_5-dev/data/Smarty/templates/sphone/shopping/index.tpl

    r19998 r20091  
    2424  <div id="under02column_login"> 
    2525    <h2 class="title"><!--{$tpl_title|h}--></h2> 
    26     <form name="member_form" id="member_form" method="post" action="./deliv.php" onsubmit="return fnCheckLogin('member_form')"> 
     26    <form name="member_form" id="member_form" method="post" action="?" onsubmit="return fnCheckLogin('member_form')"> 
    2727   <div class="loginarea"> 
    2828     <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" /> 
  • branches/version-2_5-dev/data/class/SC_FormParam.php

    r19854 r20091  
    2626 * 
    2727 * :XXX: addParam と setParam で言う「パラメータ」が用語として競合しているように感じる。(2009/10/17 Seasoft 塚田) 
     28 * TODO 配列の再帰処理 
    2829 * 
    2930 * @package SC 
     
    414415        } 
    415416    } 
     417 
     418    /** 
     419     * 入力パラメータの先頭及び末尾にある空白文字を削除する. 
     420     * 
     421     * @param boolean $has_wide_space 全角空白も削除する場合 true 
     422     * @return void 
     423     */ 
     424    function trimParam($has_wide_space = true) { 
     425        $cnt = 0; 
     426        $pattern = '/^[  \r\n\t]*(.*?)[  \r\n\t]*$/u'; 
     427        foreach ($this->keyname as $val) { 
     428            if (!isset($this->param[$cnt])) $this->param[$cnt] = ""; 
     429 
     430            if (!is_array($this->param[$cnt])) { 
     431                if ($has_wide_space) { 
     432                    $this->param[$cnt] = preg_replace($pattern, '$1', $this->param[$cnt]); 
     433                } 
     434                $this->param[$cnt] = trim($this->param[$cnt]); 
     435            } else { 
     436                $max = count($this->param[$cnt]); 
     437                // XXX foreach の方が良い? 
     438                for ($i = 0; $i < $max; $i++) { 
     439                    if ($has_wide_space) { 
     440                        $this->param[$cnt][$i] = preg_replace($pattern, '$1', $this->param[$cnt][$i]); 
     441                    } 
     442                    $this->param[$cnt][$i] = trim($this->param[$cnt][$i]); 
     443                } 
     444            } 
     445            $cnt++; 
     446        } 
     447    } 
    416448} 
    417449?> 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php

    r20071 r20091  
    8383        $objFormParam = new SC_FormParam(); 
    8484 
    85         $this->lfInitParam($objFormParam); 
    86         $objFormParam->setParam($_POST); 
    8785 
    8886        $this->tpl_uniqid = $objSiteSess->getUniqId(); 
     
    9593            SC_Response_Ex::sendRedirect( 
    9694                    $this->getNextLocation($this->cartKey, $this->tpl_uniqid, 
    97                                            $objCustomer)); 
     95                                           $objCustomer, $objPurchase)); 
    9896            exit; 
    9997        } 
     
    116114 
    117115        switch ($this->getMode()) { 
    118         // 登録 
     116        // ログイン実行 
     117        case 'login': 
     118            $this->lfInitLoginFormParam($objFormParam); 
     119            $objFormParam->setParam($_POST); 
     120            $objFormParam->trimParam(); 
     121            $objFormParam->convParam(); 
     122            $objFormParam->toLower('login_email'); 
     123            $this->arrErr = $objFormParam->checkError(); 
     124 
     125            // ログイン判定 
     126            if (SC_Utils_Ex::isBlank($this->arrErr) 
     127                && $this->doLogin($objCustomer, 
     128                                  $objFormParam->getValue('login_email'), 
     129                                  $objFormParam->getValue('login_pass'))) { 
     130 
     131                // モバイルサイトで携帯アドレスの登録が無い場合 
     132                if($this->hasEmailMobile($objCustomer)) { 
     133                    SC_Response_Ex::sendRedirect('../entry/email_mobile.php'); 
     134                    exit; 
     135                } 
     136                SC_Response_Ex::sendRedirect( 
     137                        $this->getNextLocation($this->cartKey, $this->tpl_uniqid, 
     138                                               $objCustomer, $objPurchase)); 
     139                exit; 
     140            } 
     141            // ログインに失敗した場合 
     142            else { 
     143                // 仮登録の場合 
     144                if($this->checkTempCustomer($objFormParam->getValue('login_email'))) { 
     145                    SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
     146                    exit; 
     147                } else { 
     148                    SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); 
     149                    exit; 
     150                } 
     151            } 
     152            break; 
     153 
     154        // お客様情報登録 
    119155        case 'nonmember_confirm': 
    120156            $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 
    121157            $this->tpl_title = 'お客様情報入力'; 
     158            $this->lfInitParam($objFormParam); 
     159            $objFormParam->setParam($_POST); 
    122160 
    123161            $this->arrErr = $this->lfCheckError($objFormParam); 
     
    140178            break; 
    141179 
    142         // 複数配送 
     180        // 複数配送ページへ遷移 
    143181        case 'multiple': 
     182            $this->lfInitParam($objFormParam); 
     183            $objFormParam->setParam($_POST); 
    144184            $this->arrErr = $this->lfCheckError($objFormParam); 
    145185 
     
    154194            // ※breakなし 
    155195 
    156         // 入力 
     196        // お客様情報入力ページの表示 
    157197        case 'nonmember': 
    158198            $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 
    159199            $this->tpl_title = 'お客様情報入力'; 
    160  
    161200            // ※breakなし 
    162201 
    163202        default: 
    164             // 前のページから戻ってきた場合 
     203            // 前のページから戻ってきた場合は, お客様情報入力ページ 
    165204            if (isset($_GET['from']) && $_GET['from'] == 'nonmember') { 
    166205                $this->tpl_mainpage = 'shopping/nonmember_input.tpl'; 
    167206                $this->tpl_title = 'お客様情報入力'; 
     207                $this->lfInitParam($objFormParam); 
     208            } 
     209            // 通常はログインページ 
     210            else { 
     211                $this->lfInitLoginFormParam($objFormParam); 
    168212            } 
    169213 
     
    199243 
    200244    /** 
    201      * パラメータ情報の初期化を行う. 
     245     * お客様情報入力時のパラメータ情報の初期化を行う. 
    202246     * 
    203247     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     
    205249     */ 
    206250    function lfInitParam(&$objFormParam) { 
     251 
    207252        $objFormParam->addParam("お名前(姓)", "order_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    208253        $objFormParam->addParam("お名前(名)", "order_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
     
    244289 
    245290    /** 
     291     * ログイン時のパラメータ情報の初期化を行う. 
     292     * 
     293     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     294     * @return void 
     295     */ 
     296    function lfInitLoginFormParam(&$objFormParam) { 
     297        $objFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
     298        $objFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
     299        $objFormParam->addParam("パスワード", "login_pass", PASSWORD_LEN2, "", array("EXIST_CHECK")); 
     300    } 
     301 
     302    /** 
    246303     * ログイン済みの場合の遷移先を取得する. 
    247304     * 
     
    251308     * 
    252309     * @param integer $product_type_id 商品種別ID 
     310     * @param string $uniqid 受注一時テーブルのユニークID 
     311     * @param SC_Customer $objCustomer SC_Customer インスタンス 
     312     * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス 
    253313     * @return string 遷移先のパス 
    254314     */ 
    255     function getNextLocation($product_type_id, $uniqid, &$objCustomer) { 
     315    function getNextLocation($product_type_id, $uniqid, &$objCustomer, &$objPurchase) { 
    256316        switch ($product_type_id) { 
    257317        case PRODUCT_TYPE_DOWNLOAD: 
     
    326386     * @return array エラー情報の配 
    327387     */ 
    328     function lfCheckError($objFormParam) { 
     388    function lfCheckError(&$objFormParam) { 
    329389        // 入力値の変換 
    330390        $objFormParam->convParam(); 
     
    376436     */ 
    377437    function setFormParams(&$objFormParam, &$objPurchase, $uniqid) { 
    378           $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); 
    379           if (SC_Utils_Ex::isBlank($arrOrderTemp)) { 
    380               $arrOrderTemp = array('order_email' => "", 
    381                                     'order_birth' => ""); 
    382           } 
    383           $arrShippingTemp = $objPurchase->getShippingTemp(); 
    384  
    385           $objFormParam->setParam($arrOrderTemp); 
    386           /* 
    387            * count($arrShippingTemp) > 1 は複数配送であり, 
    388            * $arrShippingTemp[0] は注文者が格納されている 
    389            */ 
    390           if (count($arrShippingTemp) > 1) { 
    391               $objFormParam->setParam($arrShippingTemp[1]); 
    392           } else { 
    393               $objFormParam->setParam($arrShippingTemp[0]); 
    394           } 
    395           $objFormParam->setValue('order_email02', $arrOrderTemp['order_email']); 
    396           $objFormParam->setDBDate($arrOrderTemp['order_birth']); 
     438        $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); 
     439        if (SC_Utils_Ex::isBlank($arrOrderTemp)) { 
     440            $arrOrderTemp = array('order_email' => "", 
     441                                  'order_birth' => ""); 
     442        } 
     443        $arrShippingTemp = $objPurchase->getShippingTemp(); 
     444 
     445        $objFormParam->setParam($arrOrderTemp); 
     446        /* 
     447         * count($arrShippingTemp) > 1 は複数配送であり, 
     448         * $arrShippingTemp[0] は注文者が格納されている 
     449         */ 
     450        if (count($arrShippingTemp) > 1) { 
     451            $objFormParam->setParam($arrShippingTemp[1]); 
     452        } else { 
     453            $objFormParam->setParam($arrShippingTemp[0]); 
     454        } 
     455        $objFormParam->setValue('order_email02', $arrOrderTemp['order_email']); 
     456        $objFormParam->setDBDate($arrOrderTemp['order_birth']); 
     457    } 
     458 
     459    /** 
     460     * ログインを実行する. 
     461     * 
     462     * ログインを実行し, 成功した場合はユーザー情報をセッションに格納し, 
     463     * true を返す. 
     464     * モバイル端末の場合は, 携帯端末IDを保存する. 
     465     * ログインに失敗した場合は, false を返す. 
     466     * 
     467     * @param SC_Customer $objCustomer SC_Customer インスタンス 
     468     * @param string $login_email ログインメールアドレス 
     469     * @param string $login_pass ログインパスワード 
     470     * @return boolean ログインに成功した場合 true; 失敗した場合 false 
     471     */ 
     472    function doLogin(&$objCustomer, $login_email, $login_pass) { 
     473 
     474        switch (SC_Display::detectDevice()) { 
     475        case DEVICE_TYPE_MOBILLE: 
     476            if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($login_pass) && 
     477               !$objCustomer->getCustomerDataFromEmailPass($login_pass, $login_email, true)) { 
     478                return false; 
     479            } else { 
     480                $objCustomer->updateMobilePhoneId(); 
     481                return true; 
     482            } 
     483            break; 
     484 
     485        case DEVICE_TYPE_SMARTPHONE: 
     486        case DEVICE_TYPE_PC: 
     487        default: 
     488            if(!$objCustomer->getCustomerDataFromEmailPass($login_pass, $login_email)) { 
     489                return false; 
     490            } else { 
     491                return true; 
     492            } 
     493        } 
     494    } 
     495 
     496    /** 
     497     * ログインした会員の携帯メールアドレス登録があるかどうか 
     498     * 
     499     * 端末種別がモバイルの場合, ログインした会員の携帯メールアドレスの存在をチェックする 
     500     * 
     501     * @param SC_Customer $objCustomer SC_Customer インスタンス 
     502     * @return boolean 会員の携帯メールアドレス登録がある場合 true 
     503     */ 
     504    function hasEmailMobile(&$objCustomer) { 
     505        switch (SC_Display::detectDevice()) { 
     506        case DEVICE_TYPE_MOBILLE: 
     507            $objMobile = new SC_Helper_Mobile_Ex(); 
     508            if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) { 
     509                if (!$objCustomer->hasValue('email_mobile')) { 
     510                    return true; 
     511                } 
     512            } 
     513            break; 
     514 
     515        case DEVICE_TYPE_SMARTPHONE: 
     516        case DEVICE_TYPE_PC: 
     517        default: 
     518        } 
     519        return false; 
     520    } 
     521 
     522    /** 
     523     * 仮会員かどうかを判定する. 
     524     * 
     525     * @param string $login_email メールアドレス 
     526     * @return boolean 仮会員の場合 true 
     527     */ 
     528    function checkTempCustomer($login_email) { 
     529        $objQuery =& SC_Query::getSingletonInstance(); 
     530        $where = "email = ? AND status = 1 AND del_flg = 0"; 
     531        $count = $objQuery->count("dtb_customer", $where, array($login_email)); 
     532        return $count > 0; 
    397533    } 
    398534} 
  • branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php

    r20069 r20091  
    3333 */ 
    3434class LC_Page_Shopping_Deliv extends LC_Page { 
    35  
    36     // {{{ properties 
    37  
    38     /** フォームパラメータの配列 */ 
    39     var $objFormParam; 
    40  
    41     /** ログインフォームパラメータ配列 */ 
    42     var $objLoginFormParam; 
    4335 
    4436    // }}} 
     
    7971        $objPurchase = new SC_Helper_Purchase_Ex(); 
    8072        $objQuery = SC_Query::getSingletonInstance();; 
    81         // クッキー管理クラス 
    8273        $objCookie = new SC_Cookie(COOKIE_EXPIRE); 
    83         // パラメータ管理クラス 
    84         $this->objFormParam = new SC_FormParam(); 
    85         // パラメータ情報の初期化 
    86         $this->lfInitParam(); 
    87         // POST値の取得 
    88         $this->objFormParam->setParam($_POST); 
    89  
    90         $this->objLoginFormParam = new SC_FormParam();  // ログインフォーム用 
    91         $this->lfInitLoginFormParam(); 
    92         //パスワード・Eメールにある空白をトリム 
    93         $this->lfConvertEmail($_POST["login_email"]); 
    94         $this->lfConvertLoginPass($_POST["login_pass"]); 
    95         $this->objLoginFormParam->setParam($_POST);     // POST値の取得 
    96  
    97         // ユーザユニークIDの取得と購入状態の正当性をチェック 
    98         $uniqid = $objSiteSess->getUniqId(); 
    99         $objPurchase->verifyChangeCart($uniqid, $objCartSess); 
    100  
    101         $this->tpl_uniqid = $uniqid; 
     74        $this->tpl_uniqid = $objSiteSess->getUniqId(); 
     75        $objPurchase->verifyChangeCart($this->tpl_uniqid, $objCartSess); 
    10276 
    10377        $this->cartKey = $objCartSess->getKey(); 
    10478 
    105         // ログインチェック TODO 要リファクタリング(MODE if利用) 
    106         if($this->getMode() != 'login' && !$objCustomer->isLoginSuccess(true)) { 
    107             // 不正アクセスとみなす 
     79        // ログインチェック 
     80        if(!$objCustomer->isLoginSuccess(true)) { 
    10881            SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    10982        } 
    11083 
     84        if($this->cartKey == PRODUCT_TYPE_DOWNLOAD){ 
     85            // 会員情報の住所を受注一時テーブルに書き込む 
     86            $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping'); 
     87            $objPurchase->saveShippingTemp($sqlval); 
     88            $objPurchase->saveOrderTemp($this->tpl_uniqid, $sqlval, $objCustomer); 
     89            // 正常に登録されたことを記録しておく 
     90            $objSiteSess->setRegistFlag(); 
     91            // ダウンロード商品有りの場合は、支払方法画面に転送 
     92            SC_Response_Ex::sendRedirect('payment.php'); 
     93            exit; 
     94        } 
     95 
    11196        switch($this->getMode()) { 
    112         case 'login': 
    113             $this->objLoginFormParam->toLower('login_email'); 
    114             $this->arrErr = $this->objLoginFormParam->checkError(); 
    115             $arrForm =  $this->objLoginFormParam->getHashArray(); 
    116             // クッキー保存判定 
    117             if($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") { 
    118                 $objCookie->setCookie('login_email', $_POST['login_email']); 
    119             } else { 
    120                 $objCookie->setCookie('login_email', ''); 
    121             } 
    122  
    123             if(count($this->arrErr) > 0) { 
    124                 SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
    125             } 
    126             // ログイン判定 
    127             $loginFailFlag = false; 
    128             if(Net_UserAgent_Mobile::isMobile() === true) { 
    129                 // モバイルサイト 
    130                 if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) && 
    131                    !$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) { 
    132                     $loginFailFlag = true; 
    133                 } 
    134             } else { 
    135                 // モバイルサイト以外 
    136                 if(!$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) { 
    137                     $loginFailFlag = true; 
    138                 } 
    139             } 
    140             if($loginFailFlag === true) { 
    141                 // 仮登録の判定 
    142                 $where = "email = ? AND status = 1 AND del_flg = 0"; 
    143                 $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'])); 
    144  
    145                 if($ret > 0) { 
    146                     SC_Utils_Ex::sfDispSiteError(TEMP_LOGIN_ERROR); 
    147                 } else { 
    148                     SC_Utils_Ex::sfDispSiteError(SITE_LOGIN_ERROR); 
    149                 } 
    150             } 
    151  
    152             if(Net_UserAgent_Mobile::isMobile() === true) { 
    153                 // ログインが成功した場合は携帯端末IDを保存する。 
    154                 $objCustomer->updateMobilePhoneId(); 
    155  
    156                 /* 
    157                  * 携帯メールアドレスが登録されていない場合は, 
    158                  * 携帯メールアドレス登録画面へ遷移 
    159                  */ 
    160                 $objMobile = new SC_Helper_Mobile_Ex(); 
    161                 if (!$objMobile->gfIsMobileMailAddress($objCustomer->getValue('email'))) { 
    162                     if (!$objCustomer->hasValue('email_mobile')) { 
    163                         SC_Response_Ex::sendRedirect('../entry/email_mobile.php'); 
    164                         exit; 
    165                     } 
    166                 } 
    167             } 
    168  
    169             //ダウンロード商品判定 
    170             if($this->cartKey == PRODUCT_TYPE_DOWNLOAD){ 
    171                 // 会員情報の住所を受注一時テーブルに書き込む 
    172                 $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping'); 
    173                 // FIXME ダウンロード商品の場合は配送無し 
    174                 $arrDeliv = $objPurchase->getDeliv($this->cartKey); 
    175                 $sqlval['deliv_id'] = $arrDeliv[0]['deliv_id']; 
    176                 $objPurchase->saveShippingTemp($sqlval); 
    177                 $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
    178                 // 正常に登録されたことを記録しておく 
    179                 $objSiteSess->setRegistFlag(); 
    180                 // ダウンロード商品有りの場合は、支払方法画面に転送 
    181                 SC_Response_Ex::sendRedirect('payment.php'); 
    182                 exit; 
    183             } 
    184             break; 
    18597        // 削除 
    18698        case 'delete': 
     
    188100                $where = "other_deliv_id = ?"; 
    189101                $arrRet = $objQuery->delete("dtb_other_deliv", $where, array($_POST['other_deliv_id'])); 
    190                 $this->objFormParam->setValue('select_addr_id', ''); 
    191102            } 
    192103            break; 
     
    201112                $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping'); 
    202113                $objPurchase->saveShippingTemp($sqlval); 
    203                 $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
     114                $objPurchase->saveOrderTemp($this->tpl_uniqid, $sqlval, $objCustomer); 
    204115 
    205116                // 正常に登録されたことを記録しておく 
     
    219130                    $objPurchase->copyFromOrder($sqlval, $otherDeliv, 'shipping', '');; 
    220131                    $objPurchase->saveShippingTemp($sqlval); 
    221                     $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer); 
     132                    $objPurchase->saveOrderTemp($this->tpl_uniqid, $sqlval, $objCustomer); 
    222133 
    223134                    // 正常に登録されたことを記録しておく 
     
    246157        default: 
    247158            $objPurchase->unsetShippingTemp(); 
    248             $arrOrderTemp = $objPurchase->getOrderTemp($uniqid); 
    249             if (empty($arrOrderTemp)) $arrOrderTemp = array(""); 
    250             $this->objFormParam->setParam($arrOrderTemp); 
     159 
    251160            break; 
    252161        } 
     
    256165        // 入力値の取得 
    257166        if (!isset($arrErr)) $arrErr = array(); 
    258         $this->arrForm = $this->objFormParam->getFormParamList(); 
    259167        $this->arrErr = $arrErr; 
    260168    } 
     
    268176        parent::destroy(); 
    269177    } 
    270  
    271     /* パラメータ情報の初期化 */ 
    272     function lfInitParam() { 
    273         $this->objFormParam->addParam("お名前1", "deliv_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    274         $this->objFormParam->addParam("お名前2", "deliv_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    275         $this->objFormParam->addParam("お名前(フリガナ・姓)", "deliv_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    276         $this->objFormParam->addParam("お名前(フリガナ・名)", "deliv_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    277         $this->objFormParam->addParam("郵便番号1", "deliv_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    278         $this->objFormParam->addParam("郵便番号2", "deliv_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    279         $this->objFormParam->addParam("都道府県", "deliv_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    280         $this->objFormParam->addParam("住所1", "deliv_addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    281         $this->objFormParam->addParam("住所2", "deliv_addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    282         $this->objFormParam->addParam("電話番号1", "deliv_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    283         $this->objFormParam->addParam("電話番号2", "deliv_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    284         $this->objFormParam->addParam("電話番号3", "deliv_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    285         $this->objFormParam->addParam("", "deliv_check"); 
    286     } 
    287  
    288     function lfInitLoginFormParam() { 
    289         $this->objLoginFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); 
    290         $this->objLoginFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    291         $this->objLoginFormParam->addParam("パスワード", "login_pass", PASSWORD_LEN1, "", array("EXIST_CHECK")); 
    292         $this->objLoginFormParam->addParam("パスワード", "login_pass1", PASSWORD_LEN1, "", array("EXIST_CHECK", "MIN_LENGTH_CHECK")); 
    293         $this->objLoginFormParam->addParam("パスワード", "login_pass2", PASSWORD_LEN2, "", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    294     } 
    295  
    296     /* DBへデータの登録 */ 
    297     function lfRegistNewAddrData($uniqid, $objCustomer) { 
    298         $sqlval = $this->objFormParam->getDbArray(); 
    299         // 登録データの作成 
    300         $sqlval['deliv_check'] = '1'; 
    301         $sqlval['order_temp_id'] = $uniqid; 
    302         $sqlval['update_date'] = 'Now()'; 
    303         $sqlval['customer_id'] = $objCustomer->getValue('customer_id'); 
    304         $sqlval['order_birth'] = $objCustomer->getValue('birth'); 
    305  
    306         $objDb = new SC_Helper_DB_Ex(); 
    307         $objDb->sfRegistTempOrder($uniqid, $sqlval); 
    308     } 
    309  
    310     /* 入力内容のチェック */ 
    311     function lfCheckError() { 
    312         // 入力データを渡す。 
    313         $arrRet =  $this->objFormParam->getHashArray(); 
    314         $objErr = new SC_CheckError($arrRet); 
    315         $objErr->arrErr = $this->objFormParam->checkError(); 
    316         // 複数項目チェック TODO 要リファクタリング(MODE if利用) 
    317         if ($this->getMode() == 'login'){ 
    318             $objErr->doFunc(array("メールアドレス", "login_email", STEXT_LEN), array("EXIST_CHECK")); 
    319             $objErr->doFunc(array("パスワード", "login_pass", STEXT_LEN), array("EXIST_CHECK")); 
    320         } 
    321         $objErr->doFunc(array("TEL", "deliv_tel01", "deliv_tel02", "deliv_tel03"), array("TEL_CHECK")); 
    322         return $objErr->arrErr; 
    323     } 
    324  
    325     /** 
    326      * 入力されたEmailから余分な改行・空白を削除する 
    327      * 
    328      * @param string $_POST["login_email"] 
    329      */ 
    330     function lfConvertEmail(){ 
    331         if( strlen($_POST["login_email"]) < 1 ){ return ; } 
    332         $_POST["login_email"] = preg_replace('/^[  \r\n]*(.*?)[  \r\n]*$/u', '$1', $_POST["login_email"]); 
    333     } 
    334  
    335     /** 
    336      * 入力されたPassから余分な空白を削除し、最小桁数・最大桁数チェック用に変数に入れる 
    337      * 
    338      * @param string $_POST["login_pass"] 
    339      */ 
    340     function lfConvertLoginPass(){ 
    341     if( strlen($_POST["login_pass"]) < 1 ){ return ; } 
    342         $_POST["login_pass"] = trim($_POST["login_pass"]); //認証用 
    343         $_POST["login_pass1"] = $_POST["login_pass"];      //最小桁数比較用 
    344         $_POST["login_pass2"] = $_POST["login_pass"];      //最大桁数比較用 
    345     } 
    346178} 
    347179?> 
Note: See TracChangeset for help on using the changeset viewer.