Changeset 19892


Ignore:
Timestamp:
2011/01/12 18:29:02 (13 years ago)
Author:
fukuda
Message:

#880(mobile/sphoneディレクトリを削除)に対応。まずmobileのみ意図通りの動作になるように一部コミット(mypageディレクトリ)
・entryディレクトリと処理を共通化

Location:
branches/version-2_5-dev/data
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/Smarty/templates/mobile/mypage/change.tpl

    r19835 r19892  
    2222 */ 
    2323*}--> 
    24 <div align="center">登録内容変更 1/3</div> 
     24<div align="center">登録内容変更</div> 
    2525<hr> 
    2626<form name="form1" method="post" action="?"> 
    27     <input type="hidden" name="mode" value="set1"> 
    28  
     27    <input type="hidden" name="mode" value="confirm" /> 
     28    <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" /> 
    2929    <font color="#FF0000">*は必須項目です。</font><br> 
    30     PCと携帯のメールアドレスが登録できます。<br> 
    3130    <br> 
    3231 
     
    3433    <font color="#FF0000"><!--{$arrErr.email}--></font> 
    3534    <input type="text" name="email" value="<!--{$arrForm.email|h}-->" istyle="3"> 
    36     <br> 
    37  
    38     【携帯メールアドレス】<br> 
    39     <font color="#FF0000"><!--{$arrErr.email_mobile}--></font> 
    40     <input type="text" name="email_mobile" value="<!--{$arrForm.email_mobile|h}-->" istyle="3"> 
    41     <br> 
     35  <br> 
    4236 
    4337    【パスワード】<font color="#FF0000">※</font><br> 
     
    6761    <font color="#FF0000"><!--{$arrErr.kana01}--><!--{$arrErr.kana02}--></font> 
    6862 
    69     カナ/姓(例:シブヤ)<br> 
     63    カナ/姓(例:シブヤ)<font color="#FF0000">※</font><br> 
    7064    <input type="text" name="kana01" value="<!--{$arrForm.kana01|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br> 
    7165 
    72     カナ/名(例:ハナコ)<br> 
     66    カナ/名(例:ハナコ)<font color="#FF0000">※</font><br> 
    7367    <input type="text" name="kana02" value="<!--{$arrForm.kana02|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br> 
    7468 
    75     <input type="submit" name="confirm" value="次へ"> 
     69    【性別】<font color="#FF0000">*</font><br> 
     70    <font color="#FF0000"><!--{$arrErr.sex}--></font> 
     71    <input type="radio" name="sex" value="1" <!--{if $arrForm.sex eq 1}-->checked<!--{/if}--> />男性&nbsp;<input type="radio" name="sex" value="2" <!--{if $arrForm.sex eq 2}-->checked<!--{/if}--> />女性<br> 
     72 
     73    【生年月日】<br> 
     74    <font color="#FF0000"><!--{$arrErr.year}--><!--{$arrErr.month}--><!--{$arrErr.day}--></font> 
     75    <input type="text" name="year" value="<!--{$arrForm.year|h}-->" size="4" maxlength="4" istyle="4">年<br> 
     76    <select name="month"> 
     77        <!--{html_options options=$arrMonth selected=$arrForm.month}--> 
     78    </select>月<br> 
     79    <select name="day"> 
     80        <!--{html_options options=$arrDay selected=$arrForm.day}--> 
     81    </select>日<br> 
     82 
     83    <!--{assign var=key1 value="zip01"}--> 
     84    <!--{assign var=key2 value="zip02"}--> 
     85    【郵便番号】<font color="#FF0000">*</font><br> 
     86    <font color="#FF0000"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></font> 
     87    <!--{assign var="size1" value="`$smarty.const.ZIP01_LEN+2`"}--> 
     88    <!--{assign var="size2" value="`$smarty.const.ZIP02_LEN+2`"}--> 
     89    <input size="<!--{$size1}-->" type="text" name="zip01" value="<!--{if $arrForm.zip01 == ""}--><!--{$arrOtherDeliv.zip01|h}--><!--{else}--><!--{$arrForm.zip01|h}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP01_LEN}-->" istyle="4"> 
     90    &nbsp;-&nbsp; 
     91    <input size="<!--{$size2}-->" type="text" name="zip02" value="<!--{if $arrForm.zip02 == ""}--><!--{$arrOtherDeliv.zip02|h}--><!--{else}--><!--{$arrForm.zip02|h}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" istyle="4"><br> 
     92 
     93    【都道府県】<font color="#FF0000">*</font><br> 
     94    <font color="#FF0000"><!--{$arrErr.pref}--></font> 
     95    <select name="pref"> 
     96        <option value="">都道府県を選択</option> 
     97        <!--{html_options options=$arrPref selected=$arrForm.pref}--> 
     98    </select><br> 
     99 
     100    【住所1】<font color="#FF0000">*</font><br> 
     101    <font color="#FF0000"><!--{$arrErr.addr01}--></font> 
     102    <input type="text" name="addr01" value="<!--{$arrForm.addr01|h}-->" istyle="1"><br> 
     103 
     104    【住所2】<font color="#FF0000">*</font><br> 
     105    <font color="#FF0000"><!--{$arrErr.addr02}--></font> 
     106    <input type="text" name="addr02" value="<!--{$arrForm.addr02|h}-->" istyle="1"><br> 
     107 
     108    【電話番号】<font color="#FF0000">*</font><br> 
     109    <font color="#FF0000"><!--{$arrErr.tel01}--><!--{$arrErr.tel02}--><!--{$arrErr.tel03}--></font> 
     110    <!--{assign var="size" value="`$smarty.const.TEL_ITEM_LEN+2`"}--> 
     111    <input type="text" size="<!--{$size}-->" name="tel01" value="<!--{$arrForm.tel01|h}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4"> 
     112    &nbsp;-&nbsp; 
     113    <input type="text" size="<!--{$size}-->" name="tel02" value="<!--{$arrForm.tel02|h}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4"> 
     114    &nbsp;-&nbsp; 
     115    <input type="text" size="<!--{$size}-->" name="tel03" value="<!--{$arrForm.tel03|h}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4"><br> 
     116 
     117    【メールマガジン】<br> 
     118    お得な情報を希望されますか?<br> 
     119    配信希望<input type="checkbox" name="mailmaga_flg" value="on" <!--{if $arrForm.mailmaga_flg eq 'on' || $arrForm.mailmaga_flg == 2}-->checked<!--{/if}--> /><br> 
     120    (希望されない場合はチェックをはずしてください)<br> 
     121    <br> 
     122 
     123    <input type="submit" name="submit" value="次へ"> 
    76124 
    77125    <!--{foreach from=$list_data key=key item=item}--> 
  • branches/version-2_5-dev/data/class/SC_CustomerList.php

    r19704 r19892  
    4545 
    4646        if($mode == "customer") { 
    47             // 管理機能顧客検索の場合仮登録会員も検索 
    48             //$this->setWhere( "(status = 1 OR status = 2) AND del_flg = 0 "); 
    4947            $this->setWhere( " del_flg = 0 "); 
    5048            // 登録日を示すカラム 
  • branches/version-2_5-dev/data/class/helper/SC_Helper_Customer.php

    r19881 r19892  
    3939     * @param array $arrRegistColumn 登録するカラムの配列 
    4040     * @return void 
     41     * @deprecated  
     42     * @todo sfEditCustomerData に統一。LC_Page_Admin_Customer_Edit から呼び出されているだけ 
    4143     */ 
    42     function sfEditCustomerData($array, $arrRegistColumn) { 
     44    function sfEditCustomerDataAdmin($array, $arrRegistColumn) { 
    4345        $objQuery =& SC_Query::getSingletonInstance(); 
    4446 
     
    6163        if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); 
    6264        $arrRegist["update_date"] = "NOW()"; 
    63  
     65         
    6466        //-- 編集登録実行 
    6567        $objQuery->update("dtb_customer", $arrRegist, "customer_id = ? ", array($array['customer_id'])); 
    6668    } 
    6769     
     70    /** 
     71     * 会員編集登録処理を行う. 
     72     * 
     73     * @param array $array 登録するデータの配列(SC_FormParamのgetDbArrayの戻り値) 
     74     * @param array $customer_id nullの場合はinsert, 存在する場合はupdate 
     75     * @access public 
     76     * @return integer 登録編集したユーザーのcustomer_id 
     77     */ 
     78    function sfEditCustomerData($array, $customer_id = null) { 
     79        $objQuery =& SC_Query::getSingletonInstance(); 
     80 
     81        $array["update_date"] = "now()";    // 更新日 
     82         
     83        //-- パスワードの更新がある場合は暗号化 
     84        if ($array["password"] != DEFAULT_PASSWORD){ 
     85            $array["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); 
     86        } else { 
     87            unset($array["password"]); 
     88        } 
     89        
     90        //-- 編集登録実行 
     91        if (is_numeric($customer_id)){ 
     92            // 編集 
     93            $objQuery->update("dtb_customer", $array, "customer_id = ? ", array($customer_id)); 
     94        } else { 
     95            // 新規登録 
     96             
     97            // 会員ID 
     98            $customer_id = $objQuery->nextVal('dtb_customer_customer_id'); 
     99            if (is_null($array["customer_id"])){ 
     100                $array['customer_id'] = $customer_id; 
     101            } 
     102            // 作成日 
     103            if (is_null($array["create_date"])){ 
     104                $array["create_date"] = "now()";     
     105            }             
     106            $objQuery->insert("dtb_customer", $array); 
     107        } 
     108        return $customer_id; 
     109    } 
     110         
    68111    /** 
    69112     * 注文番号、利用ポイント、加算ポイントから最終ポイントを取得する. 
     
    98141     *    
    99142     *   @param string $email  メールアドレス 
    100      *   @return integer  0:登録可能     1:登録済み   2:再登録制限期間内削除ユーザー 
     143     *   @return integer  0:登録可能     1:登録済み   2:再登録制限期間内削除ユーザー  3:自分のアドレス 
    101144     */ 
    102145    function lfCheckRegisterUserFromEmail($email){ 
    103146        $return = 0; 
    104147         
     148        $objCustomer = new SC_Customer(); 
    105149        $objQuery =& SC_Query::getSingletonInstance(); 
     150         
    106151        $arrRet = $objQuery->select("email, update_date, del_flg" 
    107152                                    ,"dtb_customer" 
     
    128173            } 
    129174        } 
     175         
     176        // ログインしている場合、すでに登録している自分のemailの場合はエラーを返さない 
     177        if ($objCustomer->getValue('customer_id')){ 
     178            $arrRet = $objQuery->select("email, email_mobile" 
     179                            ,"dtb_customer" 
     180                            ,"customer_id = ? ORDER BY del_flg" 
     181                            ,array($objCustomer->getValue('customer_id')) 
     182                            ); 
     183            if ($email == $arrRet[0]["email"]  
     184                || $email == $arrRet[0]["email_mobile"]){ 
     185                    $return = 3; 
     186                } 
     187        } 
    130188        return $return; 
    131189    } 
    132      
    133      
    134      
    135      
    136190} 
  • branches/version-2_5-dev/data/class/pages/admin/customer/LC_Page_Admin_Customer_Edit.php

    r19864 r19892  
    185185                    $this->tpl_mainpage = 'customer/edit_confirm.tpl'; 
    186186                    $passlen = strlen($this->arrForm['password']); 
    187                     $this->passlen = $this->lfPassLen($passlen); 
     187                    $this->passlen = SC_Utils_Ex::lfPassLen($passlen); 
    188188 
    189189                } 
     
    202202                    } 
    203203                    //-- 編集登録 
    204                     $objCustomerHelper->sfEditCustomerData($this->arrForm, $arrRegistColumn); 
     204                    $objCustomerHelper->sfEditCustomerDataAdmin($this->arrForm, $arrRegistColumn); 
    205205                } 
    206206            } 
     
    331331    } 
    332332 
    333     //確認ページ用パスワード表示用 
    334     function lfPassLen($passlen){ 
    335         $ret = ""; 
    336         for ($i=0;$i<$passlen;true){ 
    337             $ret.="*"; 
    338             $i++; 
    339         } 
    340         return $ret; 
    341     } 
    342333} 
    343334?> 
  • branches/version-2_5-dev/data/class/pages/entry/LC_Page_Entry.php

    r19881 r19892  
    101101         
    102102        if ($this->isMobile === false){ 
    103             $this->objFormParam->addParam("FAX番号1", 'fax01', "n", array("SPTAB_CHECK")); 
    104             $this->objFormParam->addParam("FAX番号2", 'fax02', "n", array("SPTAB_CHECK")); 
    105             $this->objFormParam->addParam("FAX番号3", 'fax03', "n", array("SPTAB_CHECK")); 
     103            $this->objFormParam->addParam("FAX番号1", 'fax01', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
     104            $this->objFormParam->addParam("FAX番号2", 'fax02', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
     105            $this->objFormParam->addParam("FAX番号3", 'fax03', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
    106106            $this->objFormParam->addParam("メールマガジン", "mailmaga_flg", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
    107107            $this->objFormParam->addParam("パスワード(確認)", 'password02', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK"), "", false); 
     
    232232        */ 
    233233        $sqlval["secret_key"] = $uniqid;        // 会員登録キー 
    234         $sqlval["create_date"] = "now()";   // 作成日 
    235         $sqlval["update_date"] = "now()";   // 更新日 
    236         $sqlval["first_buy_date"] = "";     // 最初の購入日 
    237234        $sqlval["point"] = $this->CONF["welcome_point"]; // 入会時ポイント 
    238235 
     
    244241        } 
    245242        
    246         //-- 登録実行 
     243        //-- 登録実行 
    247244        $objQuery->begin(); 
    248         $sqlval['customer_id'] = $objQuery->nextVal('dtb_customer_customer_id'); 
    249         $objQuery->insert("dtb_customer", $sqlval); 
    250          
     245        SC_Helper_Customer_Ex::sfEditCustomerData($sqlval); 
    251246        $objQuery->commit(); 
    252247         
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php

    r19832 r19892  
    2424// {{{ requires 
    2525require_once(CLASS_REALDIR . "pages/LC_Page.php"); 
    26  
    27 if (file_exists(MODULE_REALDIR . "mdl_gmopg/inc/function.php")) { 
    28     require_once(MODULE_REALDIR . "mdl_gmopg/inc/function.php"); 
    29 } 
    3026 
    3127/** 
     
    6258        $this->arrSex = $masterData->getMasterData("mtb_sex"); 
    6359        $this->httpCacheControl('nocache'); 
    64     } 
    65  
    66     /** 
    67      * Page のプロセス. 
    68      * 
    69      * @return void 
    70      */ 
    71     function process() { 
    72         parent::process(); 
    73         $this->action(); 
    74         $this->sendResponse(); 
    75     } 
    76      
    77     /** 
    78      * Page のAction. 
    79      * 
    80      * @return void 
    81      */ 
    82     function action() { 
    83         //$objView = new SC_SiteView(); 
    84         $this->objQuery = new SC_Query(); 
    85         $this->objCustomer = new SC_Customer(); 
    86         $this->objFormParam = new SC_FormParam(); 
    87          
    88         // 退会判定用情報の取得 
    89         $objCustomer = new SC_Customer(); 
    90         $this->tpl_login = $objCustomer->isLoginSuccess(); 
    91  
     60         
    9261        // 生年月日選択肢の取得 
    9362        $objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now"))); 
     
    9564        $this->arrMonth = $objDate->getMonth(true); 
    9665        $this->arrDay = $objDate->getDay(true); 
    97  
     66         
     67        $this->isMobile = Net_UserAgent_Mobile::isMobile(); 
     68    } 
     69 
     70    /** 
     71     * Page のプロセス. 
     72     * 
     73     * @return void 
     74     */ 
     75    function process() { 
     76        $this->action(); 
     77        $this->sendResponse(); 
     78    } 
     79     
     80    /** 
     81     * Page のプロセス 
     82     * @return void 
     83     */ 
     84    function action() { 
     85        $objDb = new SC_Helper_DB_Ex(); 
     86        $CONF = $objDb->sfGetBasisData(); 
     87         
     88        $objQuery = new SC_Query(); 
     89        $objCustomer = new SC_Customer(); 
     90         
    9891        // ログインチェック 
    99         if (!$this->objCustomer->isLoginSuccess()){ 
     92        if (!$objCustomer->isLoginSuccess()){ 
    10093            SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    10194        }else { 
    10295            //マイページトップ顧客情報表示用 
    103             $this->CustomerName1 = $this->objCustomer->getvalue('name01'); 
    104             $this->CustomerName2 = $this->objCustomer->getvalue('name02'); 
    105             $this->CustomerPoint = $this->objCustomer->getvalue('point'); 
    106         } 
    107  
    108         //---- 登録用カラム配列 
    109         $arrRegistColumn = array( 
    110                                  array(  "column" => "name01",      "convert" => "aKV" ), 
    111                                  array(  "column" => "name02",      "convert" => "aKV" ), 
    112                                  array(  "column" => "kana01",      "convert" => "CKV" ), 
    113                                  array(  "column" => "kana02",      "convert" => "CKV" ), 
    114                                  array(  "column" => "zip01",       "convert" => "n" ), 
    115                                  array(  "column" => "zip02",       "convert" => "n" ), 
    116                                  array(  "column" => "pref",        "convert" => "n" ), 
    117                                  array(  "column" => "addr01",      "convert" => "aKV" ), 
    118                                  array(  "column" => "addr02",      "convert" => "aKV" ), 
    119                                  array(  "column" => "email",       "convert" => "a" ), 
    120                                  array(  "column" => "email_mobile", "convert" => "a" ), 
    121                                  array(  "column" => "tel01",       "convert" => "n" ), 
    122                                  array(  "column" => "tel02",       "convert" => "n" ), 
    123                                  array(  "column" => "tel03",       "convert" => "n" ), 
    124                                  array(  "column" => "fax01",       "convert" => "n" ), 
    125                                  array(  "column" => "fax02",       "convert" => "n" ), 
    126                                  array(  "column" => "fax03",       "convert" => "n" ), 
    127                                  array(  "column" => "sex",         "convert" => "n" ), 
    128                                  array(  "column" => "job",         "convert" => "n" ), 
    129                                  array(  "column" => "birth",       "convert" => "n" ), 
    130                                  array(  "column" => "password",    "convert" => "an" ), 
    131                                  array(  "column" => "reminder",    "convert" => "n" ), 
    132                                  array(  "column" => "reminder_answer", "convert" => "aKV" ), 
    133                                  array(  "column" => "mailmaga_flg", "convert" => "n" ) 
    134                                  ); 
    135  
    136         //メールアドレス種別 
    137         $arrMailType = array("email" => true, "email_mobile" => true); 
    138  
    139         if (!isset($_POST['mode'])) $_POST['mode'] = ""; 
    140  
    141         switch ($_POST['mode']){ 
    142  
    143         case 'confirm': 
    144  
    145             //エラーなしでかつメールアドレスが重複していない場合 
    146             if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { 
    147  
    148                 //確認ページへ 
    149                 $this->tpl_mainpage = TEMPLATE_REALDIR . 'mypage/change_confirm.tpl'; 
    150                 $this->tpl_subtitle = '会員登録内容変更(確認ページ)'; 
    151                 $passlen = strlen($this->arrForm['password']); 
    152                 $this->passlen = $this->lfPassLen($passlen); 
    153             } else { 
    154                 $this->lfFormReturn($this->arrForm,$this); 
     96            $this->CustomerName1 = $objCustomer->getvalue('name01'); 
     97            $this->CustomerName2 = $objCustomer->getvalue('name02'); 
     98            $this->CustomerPoint = $objCustomer->getvalue('point'); 
     99        } 
     100         
     101        // mobile用(戻るボタンでの遷移かどうかを判定) 
     102        if (!empty($_POST["return"])) { 
     103            $_POST["mode"] = "return"; 
     104        } 
     105         
     106        // パラメータ管理クラス,パラメータ情報の初期化 
     107        $this->objFormParam = new SC_FormParam(); 
     108        $this->lfInitParam(); 
     109        $this->objFormParam->setParam($_POST);    // POST値の取得 
     110         
     111        
     112        if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     113             
     114            //CSRF対策 
     115            /* 
     116            if (!SC_Helper_Session_Ex::isValidToken()) { 
     117                SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); 
    155118            } 
    156  
    157             break; 
    158  
    159         case 'return': 
    160             $this->arrForm = $_POST; 
    161             $this->lfFormReturn($this->arrForm,$this); 
    162             break; 
    163  
    164         case 'gmo_oneclick': 
    165             sfGMOMypageEdit(); 
     119            */ 
     120                         
     121            $this->objFormParam->convParam(); 
     122            $this->objFormParam->toLower('email'); 
     123            $this->objFormParam->toLower('email02'); 
     124            $this->objFormParam->toLower('email_mobile'); 
     125            $this->objFormParam->toLower('email_mobile02'); 
     126            $this->arrForm = $this->objFormParam->getHashArray(); 
     127                  
     128            //-- 確認 
     129            if ($_POST["mode"] == "confirm") { 
     130 
     131                $this->arrErr = $this->lfErrorCheck(); 
     132                 
     133                // 入力エラーなし 
     134                if(count($this->arrErr) == 0) { 
     135                     
     136                    $this->list_data = $this->objFormParam->getHashArray(); 
     137                 
     138                    //パスワード表示 
     139                    $passlen = strlen($this->arrForm['password']); 
     140                    $this->passlen = SC_Utils_Ex::lfPassLen($passlen); 
     141     
     142                    $this->tpl_mainpage = 'mypage/change_confirm.tpl'; 
     143                    $this->tpl_title = '会員登録(確認ページ)'; 
     144                } 
     145 
     146            } elseif ($_POST["mode"] == "complete") { 
     147                //-- 会員登録と完了画面 
     148            
     149                // 会員情報の登録 
     150                $this->CONF = $CONF; 
     151                $this->lfRegistData(); 
     152                 
     153                // 完了ページに移動させる。 
     154                SC_Response_Ex::sendRedirect('change_complete.php'); 
     155                exit; 
     156                 
     157            } 
     158        } else { 
    166159            $this->arrForm = $this->lfGetCustomerData(); 
    167160            $this->arrForm['password'] = DEFAULT_PASSWORD; 
    168161            $this->arrForm['password02'] = DEFAULT_PASSWORD; 
    169             break; 
    170         case 'complete': 
    171             //エラーなしでかつメールアドレスが重複していない場合 
    172             if ($this->checkErrorTotal($arrRegistColumn, $arrMailType)) { 
    173                 $this->arrForm['customer_id'] = $this->objCustomer->getValue('customer_id'); 
    174                 //-- 編集登録 
    175                 $objDb = new SC_Helper_DB_Ex(); 
    176                 $objDb->sfEditCustomerData($this->arrForm, $arrRegistColumn); 
    177                 //セッション情報を最新の状態に更新する 
    178                 $this->objCustomer->updateSession(); 
    179  
    180                 // Do楽SNS連携モジュールユーザ情報更新処理 
    181                 if (function_exists('sfUpdateSourakuSNSUserInfo')) { 
    182                     sfUpdateSourakuSNSUserInfo(); 
    183                 } 
    184  
    185                 //完了ページへ 
    186                 SC_Response_Ex::sendRedirect('change_complete.php'); 
    187                 exit; 
    188             } else { 
    189                 SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    190             } 
    191             break; 
    192  
    193         default: 
    194             //顧客情報取得 
    195             $this->arrForm = $this->lfGetCustomerData(); 
    196             $this->arrForm['password'] = DEFAULT_PASSWORD; 
    197             $this->arrForm['password02'] = DEFAULT_PASSWORD; 
    198             break; 
    199         } 
    200  
    201         //誕生日データ登録の有無 
    202         $arrCustomer = $this->lfGetCustomerData(); 
    203         if ($arrCustomer['birth'] != ""){ 
    204             $this->birth_check = true; 
    205         } 
    206  
    207         //$objView->assignobj($this);             //$objpage内の全てのテンプレート変数をsmartyに格納 
    208         //$objView->display(SITE_FRAME);              //パスとテンプレート変数の呼び出し、実行 
    209  
    210  
    211     } 
    212  
    213     /** 
    214      * モバイルページを初期化する. 
    215      * 
    216      * @return void 
    217      */ 
    218     function mobileInit() { 
    219         $this->init(); 
    220         $this->tpl_mainpage = 'mypage/change.tpl';      // メインテンプレート 
    221         $this->tpl_title .= '登録変更(1/3)';            // ページタイトル 
    222  
    223         $masterData = new SC_DB_MasterData_Ex(); 
    224         $this->arrReminder = $masterData->getMasterData("mtb_reminder"); 
    225         $this->arrPref = $masterData->getMasterData('mtb_pref'); 
    226         $this->arrJob = $masterData->getMasterData("mtb_job"); 
    227         $this->arrMAILMAGATYPE = $masterData->getMasterData("mtb_mail_magazine_type"); 
    228         $this->arrSex = $masterData->getMasterData("mtb_sex"); 
    229     } 
    230  
    231     /** 
    232      * Page のプロセス(モバイル). 
    233      * 
    234      * @return void 
    235      */ 
    236     function mobileProcess() { 
    237         parent::mobileProcess(); 
    238         $this->mobileAction(); 
    239         $this->sendResponse(); 
    240     } 
    241  
    242     /** 
    243      * Page のAction(モバイル). 
    244      * 
    245      * @return void 
    246      */ 
    247     function mobileAction() { 
    248         $objDb = new SC_Helper_DB_Ex(); 
    249         $CONF = $objDb->sfGetBasisData();                   // 店舗基本情報 
    250         //$objView = new SC_MobileView(); 
    251          
    252         // 生年月日選択肢の取得 
    253         $objDate = new SC_Date(); 
    254         $this->arrMonth = $objDate->getMonth(true); 
    255         $this->arrDay = $objDate->getDay(true); 
    256  
    257         $this->objQuery = new SC_Query(); 
    258         $this->objCustomer = new SC_Customer(); 
    259  
    260         //メールアドレス種別 
    261         $arrMailType = array("email" => true, "email_mobile" => true); 
    262  
    263         //---- 登録用カラム配列 
    264         $arrRegistColumn = array( 
    265                                  array(  "column" => "name01", "convert" => "aKV" ), 
    266                                  array(  "column" => "name02", "convert" => "aKV" ), 
    267                                  array(  "column" => "kana01", "convert" => "CKV" ), 
    268                                  array(  "column" => "kana02", "convert" => "CKV" ), 
    269                                  array(  "column" => "zip01", "convert" => "n" ), 
    270                                  array(  "column" => "zip02", "convert" => "n" ), 
    271                                  array(  "column" => "pref", "convert" => "n" ), 
    272                                  array(  "column" => "addr01", "convert" => "aKV" ), 
    273                                  array(  "column" => "addr02", "convert" => "aKV" ), 
    274                                  array(  "column" => "email", "convert" => "a" ), 
    275                                  array(  "column" => "email_mobile", "convert" => "a" ), 
    276                                  array(  "column" => "tel01", "convert" => "n" ), 
    277                                  array(  "column" => "tel02", "convert" => "n" ), 
    278                                  array(  "column" => "tel03", "convert" => "n" ), 
    279                                  array(  "column" => "fax01", "convert" => "n" ), 
    280                                  array(  "column" => "fax02", "convert" => "n" ), 
    281                                  array(  "column" => "fax03", "convert" => "n" ), 
    282                                  array(  "column" => "sex", "convert" => "n" ), 
    283                                  array(  "column" => "job", "convert" => "n" ), 
    284                                  array(  "column" => "birth", "convert" => "n" ), 
    285                                  array(  "column" => "reminder", "convert" => "n" ), 
    286                                  array(  "column" => "reminder_answer", "convert" => "aKV"), 
    287                                  array(  "column" => "password", "convert" => "a" ), 
    288                                  array(  "column" => "mailmaga_flg", "convert" => "n" ) 
    289                                  ); 
    290  
    291         $this->arrForm = $this->lfGetCustomerData(); 
    292         $this->arrForm['password'] = DEFAULT_PASSWORD; 
    293  
    294         if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    295  
    296             //-- POSTデータの引き継ぎ 
    297             $this->arrForm = array_merge($this->arrForm, $_POST); 
    298  
    299             //-- 入力データの変換 
    300             $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); 
    301  
    302             // 戻るボタン用処理 
    303             if (!empty($_POST["return"])) { 
    304                 switch ($_POST["mode"]) { 
    305                 case "complete": 
    306                     $_POST["mode"] = "set3"; 
    307                     break; 
    308                 case "confirm": 
    309                     $_POST["mode"] = "set2"; 
    310                     break; 
    311                 default: 
    312                     $_POST["mode"] = "set1"; 
    313                     break; 
    314                 } 
    315             } 
    316  
    317             //-- 入力エラーチェック 
    318             if ($_POST["mode"] == "set1") { 
    319                 $this->arrErr = $this->lfErrorCheck1($this->arrForm); 
    320                 $this->tpl_mainpage = 'mypage/change.tpl'; 
    321                 $this->tpl_title = '登録変更(1/3)'; 
    322             } elseif ($_POST["mode"] == "set2") { 
    323                 $this->arrErr = $this->lfErrorCheck2($this->arrForm); 
    324                 $this->tpl_mainpage = 'mypage/set1.tpl'; 
    325                 $this->tpl_title = '登録変更(2/3)'; 
    326             } else { 
    327                 $this->arrErr = $this->lfErrorCheck3($this->arrForm); 
    328                 $this->tpl_mainpage = 'mypage/set2.tpl'; 
    329                 $this->tpl_title = '登録変更(3/3)'; 
    330             } 
    331  
    332             if ($this->arrErr || !empty($_POST["return"])) {        // 入力エラーのチェック 
    333                 //-- データの設定 
    334                 if ($_POST["mode"] == "set1") { 
    335                     $checkVal = array("email", "email_mobile", "password", "reminder", "reminder_answer", "name01", "name02", "kana01", "kana02"); 
    336                 } elseif ($_POST["mode"] == "set2") { 
    337                     $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); 
    338                 } else { 
    339                     $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mailmaga_flg"); 
    340                 } 
    341  
    342                 foreach($this->arrForm as $key => $val) { 
    343                     if ($key != "return" && $key != "mode" && $key != "confirm" && $key != session_name() && !in_array($key, $checkVal)) { 
    344                         $this->list_data[ $key ] = $val; 
    345                     } 
    346                 } 
    347  
    348             } else { 
    349  
    350                 //-- テンプレート設定 
    351                 if ($_POST["mode"] == "set1") { 
    352                     $this->tpl_mainpage = 'mypage/set1.tpl'; 
    353                     $this->tpl_title = '登録変更(2/3)'; 
    354                 } elseif ($_POST["mode"] == "set2") { 
    355                     $this->tpl_mainpage = 'mypage/set2.tpl'; 
    356                     $this->tpl_title = '登録変更(3/3)'; 
    357                 } elseif ($_POST["mode"] == "confirm") { 
    358                     //パスワード表示 
    359                     $passlen = strlen($this->arrForm['password']); 
    360                     $this->passlen = $this->lfPassLen($passlen); 
    361  
    362                     // メール受け取り 
    363                     if (!isset($_POST['mailmaga_flg'])) $_POST['mailmaga_flg'] = ""; 
    364                     if (strtolower($_POST['mailmaga_flg']) == "on") { 
    365                         $this->arrForm['mailmaga_flg'] = "2"; 
    366                     } else { 
    367                         $this->arrForm['mailmaga_flg'] = "3"; 
    368                     } 
    369  
    370                     $this->tpl_mainpage = 'mypage/change_confirm.tpl'; 
    371                     $this->tpl_title = '登録変更(確認ページ)'; 
    372  
    373                 } 
    374  
    375                 //-- データ設定 
    376                 unset($this->list_data); 
    377                 if ($_POST["mode"] == "set1") { 
    378                     $checkVal = array("sex", "year", "month", "day", "zip01", "zip02"); 
    379                 } elseif ($_POST["mode"] == "set2") { 
    380                     $checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03", "mailmaga_flg"); 
    381                 } else { 
    382                     $checkVal = array(); 
    383                 } 
    384  
    385                 foreach($this->arrForm as $key => $val) { 
    386                     if ($key != "return" && $key != "mode" && $key != "confirm" && $key != session_name() && !in_array($key, $checkVal)) { 
    387                         $this->list_data[ $key ] = $val; 
    388                     } 
    389                 } 
    390  
    391  
    392                 //-- 仮登録と完了画面 
    393                 if ($_POST["mode"] == "complete") { 
    394                     //エラーなしでかつメールアドレスが重複していない場合 
    395                     if($this->checkErrorTotal($arrRegistColumn, $arrMailType, true)) { 
    396                         $this->arrForm['customer_id'] = $this->objCustomer->getValue('customer_id'); 
    397                         //-- 編集登録 
    398                         $objDb->sfEditCustomerData($this->arrForm, $arrRegistColumn); 
    399                         //セッション情報を最新の状態に更新する 
    400                         $this->objCustomer->updateSession(); 
    401                         //完了ページへ 
    402                         SC_Response_Ex::sendRedirect('change_complete.php'); 
    403                         exit; 
    404                     } else { 
    405                         SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    406                     } 
    407                 } 
    408             } 
    409         } 
    410  
    411         $arrPrivateVariables = array('secret_key', 'first_buy_date', 'last_buy_date', 'buy_times', 'buy_total', 'point', 'note', 'status', 'create_date', 'update_date', 'del_flg', 'cell01', 'cell02', 'cell03', 'mobile_phone_id'); 
    412         foreach ($arrPrivateVariables as $key) { 
    413             unset($this->list_data[$key]); 
    414         } 
    415  
    416         //---- ページ表示 
    417         //$objView->assignobj($this); 
    418         //$objView->display(SITE_FRAME); 
     162        } 
     163        $this->transactionid = SC_Helper_Session_Ex::getToken(); 
    419164    } 
    420165 
     
    428173    } 
    429174 
    430     /** 
    431      * すべてのエラーチェックを行う. 
    432      * 
    433      * @param array $arrRegistColumn 登録カラムの配列 
    434      * @param array $arrMailType メール種別とフラグを格納した配列 
    435      * @param bool $isMobile モバイル版登録チェックの場合 true 
    436      * @return bool エラーの無い場合 true 
    437      */ 
    438     function checkErrorTotal(&$arrRegistColumn, &$arrMailType, $isMobile = false) { 
    439         // 入力データの変換 
    440         $this->arrForm = $this->lfConvertParam($_POST, $arrRegistColumn); 
    441  
    442         //エラーチェック 
    443         $this->arrErr = $isMobile 
    444             ? $this->lfErrorCheckMobile($this->arrForm) 
    445             : $this->lfErrorCheck($this->arrForm); 
    446  
    447         //メールアドレスを変更している場合、メールアドレスの重複チェック 
    448         $arrMailType2 = $arrMailType; 
    449         foreach ($arrMailType as $mailType => $mailTypeValue) { 
    450  
    451             if ($this->arrForm[$mailType] 
    452                 != $this->objCustomer->getValue($mailType)){ 
    453  
    454                 $email_cnt = $this->objQuery->count("dtb_customer", 
    455                                  "del_flg=0 AND (email = ? OR email_mobile = ?) ", 
    456                                   array($this->arrForm[$mailType], $this->arrForm[$mailType])); 
    457                 if ($email_cnt > 0){ 
    458                     $arrMailType2[$mailType] = false; 
    459                     $this->arrErr[$mailType] .= "既に使用されているメールアドレスです。"; 
    460                 } 
    461             } 
    462         } 
    463  
    464         // エラーが存在せず, メールアドレスの重複が無い場合は true 
    465         if (empty($this->arrErr) 
    466             && $arrMailType2['email'] == true 
    467             && $arrMailType2['email_mobile'] == true) { 
    468             return true; 
    469         } else { 
    470             return false; 
    471         } 
    472     } 
    473  
    474175    /* パラメータ情報の初期化 */ 
    475176    function lfInitParam() { 
    476         $this->objFormParam->addParam("お名前(姓)", "name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    477         $this->objFormParam->addParam("お名前(名)", "name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    478         $this->objFormParam->addParam("お名前(フリガナ・姓)", "kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    479         $this->objFormParam->addParam("お名前(フリガナ・名)", "kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    480         $this->objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    481         $this->objFormParam->addParam("郵便番号2", "zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
    482         $this->objFormParam->addParam("都道府県", "pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK")); 
    483         $this->objFormParam->addParam("住所1", "addr01", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    484         $this->objFormParam->addParam("住所2", "addr02", MTEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 
    485         $this->objFormParam->addParam("お電話番号1", "tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    486         $this->objFormParam->addParam("お電話番号2", "tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    487         $this->objFormParam->addParam("お電話番号3", "tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK")); 
    488     } 
    489  
    490     //エラーチェック 
    491  
     177                          
     178        $this->objFormParam->addParam("お名前(姓)", 'name01', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     179        $this->objFormParam->addParam("お名前(名)", 'name02', STEXT_LEN, "aKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
     180        $this->objFormParam->addParam("お名前(フリガナ・姓)", 'kana01', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
     181        $this->objFormParam->addParam("お名前(フリガナ・名)", 'kana02', STEXT_LEN, "CKV", array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
     182        $this->objFormParam->addParam("パスワード", 'password', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK")); 
     183        $this->objFormParam->addParam("パスワード確認用の質問", "reminder", STEXT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
     184        $this->objFormParam->addParam("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
     185        $this->objFormParam->addParam("郵便番号1", "zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     186        $this->objFormParam->addParam("郵便番号2", "zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     187        $this->objFormParam->addParam("都道府県", 'pref', INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK")); 
     188        $this->objFormParam->addParam("住所1", "addr01", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     189        $this->objFormParam->addParam("住所2", "addr02", MTEXT_LEN, "aKV", array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
     190        $this->objFormParam->addParam("お電話番号1", 'tel01', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
     191        $this->objFormParam->addParam("お電話番号2", 'tel02', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
     192        $this->objFormParam->addParam("お電話番号3", 'tel03', TEL_ITEM_LEN, "n", array("EXIST_CHECK","SPTAB_CHECK" )); 
     193        $this->objFormParam->addParam("性別", "sex", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
     194        $this->objFormParam->addParam("職業", "job", INT_LEN, "n", array("NUM_CHECK")); 
     195        $this->objFormParam->addParam("年", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
     196        $this->objFormParam->addParam("月", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
     197        $this->objFormParam->addParam("日", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false); 
     198         
     199        if ($this->isMobile === false){ 
     200            $this->objFormParam->addParam("FAX番号1", 'fax01', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
     201            $this->objFormParam->addParam("FAX番号2", 'fax02', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
     202            $this->objFormParam->addParam("FAX番号3", 'fax03', TEL_ITEM_LEN, "n", array("SPTAB_CHECK")); 
     203            $this->objFormParam->addParam("メールマガジン", "mailmaga_flg", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
     204            $this->objFormParam->addParam("パスワード(確認)", 'password02', STEXT_LEN, "a", array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK"), "", false); 
     205            $this->objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
     206            $this->objFormParam->addParam('メールアドレス(確認)', "email02", MTEXT_LEN, "a", array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"), "", false); 
     207            $this->objFormParam->addParam('携帯メールアドレス', "email_mobile", MTEXT_LEN, "a", array("NO_SPTAB", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
     208            $this->objFormParam->addParam('携帯メールアドレス(確認)', "email_mobile02", MTEXT_LEN, "a", array("NO_SPTAB", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"), "", false); 
     209        } else { 
     210            $this->objFormParam->addParam('メールアドレス', "email", MTEXT_LEN, "a", array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK","MOBILE_EMAIL_CHECK")); 
     211        } 
     212    } 
     213 
     214    //---- 入力エラーチェック 
    492215    function lfErrorCheck($array) { 
    493         $objErr = new SC_CheckError($array); 
    494  
    495         $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    496         $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    497         $objErr->doFunc(array("お名前(フリガナ・姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    498         $objErr->doFunc(array("お名前(フリガナ・名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    499         $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    500         $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
     216 
     217        // 入力データを渡す。 
     218        $arrRet = $this->objFormParam->getHashArray(); 
     219        $objErr = new SC_CheckError($arrRet); 
     220        $objErr->arrErr = $this->objFormParam->checkError(); 
     221                         
     222        $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03"),array("TEL_CHECK")); 
    501223        $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 
    502         $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); 
    503         $objErr->doFunc(array("住所1", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    504         $objErr->doFunc(array("住所2", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    505         $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    506         $objErr->doFunc(array('メールアドレス(確認)', "email02", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK","NO_SPTAB" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    507         $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 
    508         $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); 
    509         $objErr->doFunc(array('携帯メールアドレス(確認)', "email_mobile02", MTEXT_LEN), array("EMAIL_CHECK","NO_SPTAB" , "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); 
    510         $objErr->doFunc(array('携帯メールアドレス', '携帯メールアドレス(確認)', "email_mobile", "email_mobile02") ,array("EQUAL_CHECK")); 
    511         $objErr->doFunc(array("お電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK")); 
    512         $objErr->doFunc(array("お電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK")); 
    513         $objErr->doFunc(array("お電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK")); 
    514         $objErr->doFunc(array("お電話番号", "tel01", "tel02", "tel03") ,array("TEL_CHECK")); 
    515         $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 
    516         $objErr->doFunc(array("ご性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
    517         $objErr->doFunc(array("ご職業", "job") ,array("NUM_CHECK")); 
    518224        $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 
    519         $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); 
    520         $objErr->doFunc(array("パスワード(確認)", 'password02', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); 
    521         $objErr->doFunc(array("パスワード", 'パスワード(確認)', 'password', 'password02'), array("EQUAL_CHECK")); 
    522         $objErr->doFunc(array("パスワードを忘れたときの質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
    523         $objErr->doFunc(array("パスワードを忘れたときの答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    524         $objErr->doFunc(array("メールマガジン", "mailmaga_flg") ,array("SELECT_CHECK", "NUM_CHECK")); 
     225        if ($this->isMobile === false){ 
     226            $objErr->doFunc(array('パスワード', 'パスワード(確認)', "password", "password02") ,array("EQUAL_CHECK")); 
     227            $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 
     228            $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 
     229        } 
     230                 
     231        // 現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 
     232        $register_user_flg = SC_Helper_Customer_Ex::lfCheckRegisterUserFromEmail($arrRet["email"]); 
     233        switch($register_user_flg) { 
     234            case 1: 
     235                $objErr->arrErr["email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />"; 
     236                break; 
     237            case 2: 
     238                $objErr->arrErr["email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />"; 
     239                break; 
     240            default: 
     241                break; 
     242        } 
    525243        return $objErr->arrErr; 
    526  
    527     } 
    528  
    529     //---- 取得文字列の変換 
    530     function lfConvertParam($array, $arrRegistColumn) { 
    531         /* 
    532          *  文字列の変換 
    533          *  K :  「半角(ハンカク)片仮名」を「全角片仮名」に変換 
    534          *  C :  「全角ひら仮名」を「全角かた仮名」に変換 
    535          *  V :  濁点付きの文字を一文字に変換。"K","H"と共に使用します 
    536          *  n :  「全角」数字を「半角(ハンカク)」に変換 
    537          *  a :  全角英数字を半角英数字に変換する 
    538          */ 
    539         foreach ($arrRegistColumn as $registColumn) { 
    540             $key = $registColumn["column"]; 
    541             $mb_convert_kana_option = $registColumn["convert"]; 
    542             $val =& $array[$key]; 
    543  
    544             // string 型以外は変換対象外とする 
    545             if (!is_string($val)) continue; 
    546  
    547             // 文字変換 
    548             if (strlen($val) > 0) { 
    549                 $val = mb_convert_kana($val ,$mb_convert_kana_option); 
    550             } 
    551              
    552             // メールアドレスは小文字に変換 
    553             if ($key == 'email' || $key == 'email02' || $key == 'email_mobile' || $key == 'email_mobile02') { 
    554                 $val = strtolower($val); 
    555             } 
    556         } 
    557         return $array; 
    558     } 
    559  
     244    } 
     245     
     246    function lfRegistData() { 
     247                 
     248        $objQuery = new SC_Query(); 
     249        $objCustomer = new SC_Customer(); 
     250         
     251        $arrRet = $this->objFormParam->getHashArray(); 
     252         
     253        // 登録データの作成 
     254        $sqlval = $this->objFormParam->getDbArray(); 
     255        $sqlval['birth'] = SC_Utils_Ex::sfGetTimestamp($arrRet['year'], $arrRet['month'], $arrRet['day']); 
     256                        
     257        $objQuery->begin(); 
     258        SC_Helper_Customer_Ex::sfEditCustomerData($sqlval, $objCustomer->getValue('customer_id'));         
     259        $objQuery->commit(); 
     260    } 
     261     
    560262    /** 
    561263     * 顧客情報の取得 
     
    564266     */ 
    565267    function lfGetCustomerData(){ 
     268        $objQuery = new SC_Query(); 
     269        $objCustomer = new SC_Customer(); 
     270         
    566271        // 顧客情報DB取得 
    567         $ret = $this->objQuery->select("*","dtb_customer","customer_id=?", array($this->objCustomer->getValue('customer_id'))); 
     272        $ret = $objQuery->select("*","dtb_customer","customer_id=?", array($objCustomer->getValue('customer_id'))); 
    568273        $arrForm = $ret[0]; 
    569274 
    570275        // 確認項目に複製 
    571276        $arrForm['email02'] = $arrForm['email']; 
    572         $arrForm['email_mobile02'] = $arrForm['email_mobile02']; 
     277        $arrForm['email_mobile02'] = $arrForm['email_mobile']; 
    573278 
    574279        // 誕生日を年月日に分ける 
    575280        if (isset($arrForm['birth'])){ 
    576281            $birth = split(" ", $arrForm["birth"]); 
    577             list($year, $month, $day) = split("-",$birth[0]); 
    578  
    579             $arrForm['year'] = $year; 
    580             $arrForm['month'] = $month; 
    581             $arrForm['day'] = $day; 
    582  
     282            list($arrForm['year'], $arrForm['month'], $arrForm['day']) = split("-",$birth[0]); 
    583283        } 
    584284        return $arrForm; 
    585     } 
    586  
    587     /** 
    588      * 編集登録 
    589      * TODO 
    590      * @deprecated 未使用? 
    591      */ 
    592     function lfRegistData($array, $arrRegistColumn) { 
    593  
    594         foreach ($arrRegistColumn as $data) { 
    595             if ($data["column"] != "password") { 
    596                 if($array[ $data['column'] ] == "") { 
    597                     $arrRegist[ $data['column'] ] = NULL; 
    598                 } else { 
    599                     $arrRegist[ $data["column"] ] = $array[ $data["column"] ]; 
    600                 } 
    601             } 
    602         } 
    603         if (strlen($array["year"]) > 0 && strlen($array["month"]) > 0 && strlen($array["day"]) > 0) { 
    604             $arrRegist["birth"] = $array["year"] ."/". $array["month"] ."/". $array["day"] ." 00:00:00"; 
    605         } else { 
    606             $arrRegist["birth"] = NULL; 
    607         } 
    608  
    609         //-- パスワードの更新がある場合は暗号化。(更新がない場合はUPDATE文を構成しない) 
    610         if ($array["password"] != DEFAULT_PASSWORD) $arrRegist["password"] = sha1($array["password"] . ":" . AUTH_MAGIC); 
    611         $arrRegist["update_date"] = "NOW()"; 
    612  
    613         //-- 編集登録実行 
    614         $this->objQuery->begin(); 
    615         $this->objQuery->update("dtb_customer", $arrRegist, "customer_id = ? ", array($this->objCustomer->getValue('customer_id'))); 
    616         $this->objQuery->commit(); 
    617     } 
    618  
    619     //確認ページ用パスワード表示用 
    620  
    621     function lfPassLen($passlen){ 
    622         $ret = ""; 
    623         for ($i=0;$i<$passlen;true){ 
    624             $ret.="*"; 
    625             $i++; 
    626         } 
    627         return $ret; 
    628285    } 
    629286 
     
    642299        } 
    643300    } 
    644  
    645  
    646     // }}} 
    647     // {{{ mobile functions 
    648  
    649     //エラーチェック 
    650  
    651     function lfErrorCheckMobile($array) { 
    652         $objErr = new SC_CheckError($array); 
    653  
    654         $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    655         $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    656         $objErr->doFunc(array("お名前(フリガナ・姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    657         $objErr->doFunc(array("お名前(フリガナ・名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    658         $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    659         $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    660         $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 
    661         $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); 
    662         $objErr->doFunc(array('住所1', "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    663         $objErr->doFunc(array('住所2', "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    664         $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    665         $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); 
    666         $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK")); 
    667         $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK")); 
    668         $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK")); 
    669         $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03") ,array("TEL_CHECK")); 
    670         $objErr->doFunc(array("FAX番号", "fax01", "fax02", "fax03") ,array("TEL_CHECK")); 
    671         $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
    672         $objErr->doFunc(array("ご職業", "job") ,array("NUM_CHECK")); 
    673         $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 
    674         $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK")); 
    675         $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
    676         $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK")); 
    677         return $objErr->arrErr; 
    678  
    679     } 
    680  
    681  
    682     //---- 入力エラーチェック 
    683     function lfErrorCheck1($array) { 
    684  
    685         $objErr = new SC_CheckError($array); 
    686  
    687         $objErr->doFunc(array("お名前(姓)", 'name01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    688         $objErr->doFunc(array("お名前(名)", 'name02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    689         $objErr->doFunc(array("お名前(フリガナ・姓)", 'kana01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    690         $objErr->doFunc(array("お名前(フリガナ・名)", 'kana02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK")); 
    691         $objErr->doFunc(array('メールアドレス', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    692         $objErr->doFunc(array('携帯メールアドレス', "email_mobile", MTEXT_LEN) ,array("NO_SPTAB", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK")); 
    693  
    694         //現会員の判定 → 現会員もしくは仮登録中は、メアド一意が前提になってるので同じメアドで登録不可 
    695         $array["customer_id"] = $this->objCustomer->getValue('customer_id'); 
    696         if (strlen($array["email"]) > 0) { 
    697             $arrRet = $this->objQuery->select("email, update_date, del_flg", "dtb_customer","customer_id <> ? and (email = ? OR email_mobile = ?) ORDER BY del_flg", array($array["customer_id"], $array["email"], $array["email"])); 
    698  
    699             if(count($arrRet) > 0) { 
    700                 if($arrRet[0]['del_flg'] != '1') { 
    701                     // 会員である場合 
    702                     $objErr->arrErr["email"] .= "※ すでに会員登録で使用されているメールアドレスです。<br />"; 
    703                 } else { 
    704                     // 退会した会員である場合 
    705                     $leave_time = SC_Utils_Ex::sfDBDatetoTime($arrRet[0]['update_date']); 
    706                     $now_time = time(); 
    707                     $pass_time = $now_time - $leave_time; 
    708                     // 退会から何時間-経過しているか判定する。 
    709                     $limit_time = ENTRY_LIMIT_HOUR * 3600; 
    710                     if($pass_time < $limit_time) { 
    711                         $objErr->arrErr["email"] .= "※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。<br />"; 
    712                     } 
    713                 } 
    714             } 
    715         } 
    716  
    717         $objErr->doFunc(array("パスワード", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK")); 
    718         $objErr->doFunc(array("パスワード確認用の質問", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
    719         $objErr->doFunc(array("パスワード確認用の質問の答え", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK")); 
    720  
    721         return $objErr->arrErr; 
    722     } 
    723  
    724     //---- 入力エラーチェック 
    725     function lfErrorCheck2($array) { 
    726  
    727         $objErr = new SC_CheckError($array); 
    728  
    729         $objErr->doFunc(array("郵便番号1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    730         $objErr->doFunc(array("郵便番号2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
    731         $objErr->doFunc(array("郵便番号", "zip01", "zip02"), array("ALL_EXIST_CHECK")); 
    732  
    733         $objErr->doFunc(array("性別", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
    734         $objErr->doFunc(array("生年月日", "year", "month", "day"), array("CHECK_BIRTHDAY")); 
    735  
    736         return $objErr->arrErr; 
    737     } 
    738  
    739     //---- 入力エラーチェック 
    740     function lfErrorCheck3($array) { 
    741  
    742         $objErr = new SC_CheckError($array); 
    743  
    744         $objErr->doFunc(array("都道府県", 'pref'), array("SELECT_CHECK","NUM_CHECK")); 
    745         $objErr->doFunc(array('住所1', "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    746         $objErr->doFunc(array('住所2', "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK")); 
    747         $objErr->doFunc(array("電話番号1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" )); 
    748         $objErr->doFunc(array("電話番号2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" )); 
    749         $objErr->doFunc(array("電話番号3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" )); 
    750         $objErr->doFunc(array("電話番号", "tel01", "tel02", "tel03") ,array("TEL_CHECK")); 
    751  
    752         return $objErr->arrErr; 
    753     } 
     301     
    754302} 
    755303?> 
Note: See TracChangeset for help on using the changeset viewer.