Ignore:
Timestamp:
2013/01/24 15:49:02 (11 years ago)
Author:
Seasoft
Message:

#2053 (モバイルサイト 会員パスワードの文字数制限チェックが行われない)
#2043 (typo修正・ソース整形・ソースコメントの改善 for 2.12.4)
#1669 (変数の初期化漏れ)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/helper/SC_Helper_Customer.php

    r22206 r22340  
    3535     * 会員情報の登録・編集処理を行う. 
    3636     * 
    37      * @param array $array 登録するデータの配列(SC_FormParamのgetDbArrayの戻り値) 
     37     * @param array $arrData 登録するデータの配列(SC_FormParamのgetDbArrayの戻り値) 
    3838     * @param array $customer_id nullの場合はinsert, 存在する場合はupdate 
    3939     * @access public 
    4040     * @return integer 登録編集したユーザーのcustomer_id 
    4141     */ 
    42     function sfEditCustomerData($array, $customer_id = null) { 
     42    function sfEditCustomerData($arrData, $customer_id = null) { 
    4343        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    4444        $objQuery->begin(); 
    4545 
    46         $array['update_date'] = 'CURRENT_TIMESTAMP';    // 更新日 
     46        $old_version_flag = false; 
     47 
     48        $arrData['update_date'] = 'CURRENT_TIMESTAMP';    // 更新日 
    4749 
    4850        // salt値の生成(insert時)または取得(update時)。 
     
    5153 
    5254            // 旧バージョン(2.11未満)からの移行を考慮 
    53             if (empty($salt)) $old_version_flag = true; 
     55            if (strlen($salt) === 0) { 
     56                $old_version_flag = true; 
     57            } 
    5458        } else { 
    5559            $salt = SC_Utils_Ex::sfGetRandomString(10); 
    56             $array['salt'] = $salt; 
     60            $arrData['salt'] = $salt; 
    5761        } 
    5862        //-- パスワードの更新がある場合は暗号化 
    59         if ($array['password'] == DEFAULT_PASSWORD or $array['password'] == '') { 
     63        if ($arrData['password'] == DEFAULT_PASSWORD or $arrData['password'] == '') { 
    6064            //更新しない 
    61             unset($array['password']); 
     65            unset($arrData['password']); 
    6266        } else { 
    6367            // 旧バージョン(2.11未満)からの移行を考慮 
     
    6569                $is_password_updated = true; 
    6670                $salt = SC_Utils_Ex::sfGetRandomString(10); 
    67                 $array['salt'] = $salt; 
    68             } 
    69  
    70             $array['password'] = SC_Utils_Ex::sfGetHashString($array['password'], $salt); 
     71                $arrData['salt'] = $salt; 
     72            } 
     73 
     74            $arrData['password'] = SC_Utils_Ex::sfGetHashString($arrData['password'], $salt); 
    7175        } 
    7276        //-- 秘密の質問の更新がある場合は暗号化 
    73         if ($array['reminder_answer'] == DEFAULT_PASSWORD or $array['reminder_answer'] == '') { 
     77        if ($arrData['reminder_answer'] == DEFAULT_PASSWORD or $arrData['reminder_answer'] == '') { 
    7478            //更新しない 
    75             unset($array['reminder_answer']); 
     79            unset($arrData['reminder_answer']); 
    7680 
    7781            // 旧バージョン(2.11未満)からの移行を考慮 
     
    7983                // パスワードが更新される場合は、平文になっている秘密の質問を暗号化する 
    8084                $reminder_answer = $objQuery->get('reminder_answer', 'dtb_customer', 'customer_id = ? ', array($customer_id)); 
    81                 $array['reminder_answer'] = SC_Utils_Ex::sfGetHashString($reminder_answer, $salt); 
     85                $arrData['reminder_answer'] = SC_Utils_Ex::sfGetHashString($reminder_answer, $salt); 
    8286            } 
    8387        } else { 
     
    8589            if ($old_version_flag && !$is_password_updated) { 
    8690                // パスワードが更新されない場合は、平文のままにする 
    87                 unset($array['salt']); 
     91                unset($arrData['salt']); 
    8892            } else { 
    89                 $array['reminder_answer'] = SC_Utils_Ex::sfGetHashString($array['reminder_answer'], $salt); 
     93                $arrData['reminder_answer'] = SC_Utils_Ex::sfGetHashString($arrData['reminder_answer'], $salt); 
    9094            } 
    9195        } 
     
    9498        if (is_numeric($customer_id)) { 
    9599            // 編集 
    96             $objQuery->update('dtb_customer', $array, 'customer_id = ? ', array($customer_id)); 
     100            $objQuery->update('dtb_customer', $arrData, 'customer_id = ? ', array($customer_id)); 
    97101        } else { 
    98102            // 新規登録 
     
    100104            // 会員ID 
    101105            $customer_id = $objQuery->nextVal('dtb_customer_customer_id'); 
    102             $array['customer_id'] = $customer_id; 
     106            $arrData['customer_id'] = $customer_id; 
    103107            // 作成日 
    104             if (is_null($array['create_date'])) { 
    105                 $array['create_date'] = 'CURRENT_TIMESTAMP'; 
    106             } 
    107             $objQuery->insert('dtb_customer', $array); 
     108            if (is_null($arrData['create_date'])) { 
     109                $arrData['create_date'] = 'CURRENT_TIMESTAMP'; 
     110            } 
     111            $objQuery->insert('dtb_customer', $arrData); 
    108112        } 
    109113 
    110114        $objQuery->commit(); 
     115 
    111116        return $customer_id; 
    112117    } 
     
    122127    function sfGetCustomerPoint($order_id, $use_point, $add_point) { 
    123128        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     129 
    124130        $arrRet = $objQuery->select('customer_id', 'dtb_order', 'order_id = ?', array($order_id)); 
    125131        $customer_id = $arrRet[0]['customer_id']; 
     
    137143            $point = ''; 
    138144        } 
     145 
    139146        return array($point, $total_point); 
    140147    } 
     
    206213            || strlen($arrResults['email_mobile']) >= 1 &&  $email === $arrResults['email_mobile'] 
    207214        ; 
     215 
    208216        return $return; 
    209217    } 
     
    239247            $arrForm['reminder_answer']   = DEFAULT_PASSWORD; 
    240248        } 
     249 
    241250        return $arrForm; 
    242251    } 
     
    255264    function sfGetCustomerDataFromId($customer_id, $add_where = '', $arrAddVal = array()) { 
    256265        $objQuery   =& SC_Query_Ex::getSingletonInstance(); 
     266 
    257267        if ($add_where == '') { 
    258268            $where = 'customer_id = ?'; 
     
    266276            $arrData = $objQuery->getRow('*', 'dtb_customer', $where, $arrAddVal); 
    267277        } 
     278 
    268279        return $arrData; 
    269280    } 
     
    282293            $exists = $objQuery->exists('dtb_customer', 'secret_key = ?', array($uniqid)); 
    283294        } while ($exists); 
     295 
    284296        return $uniqid; 
    285297    } 
     
    295307    function sfGetCustomerId($uniqid, $check_status = false) { 
    296308        $objQuery   =& SC_Query_Ex::getSingletonInstance(); 
     309 
    297310        $where      = 'secret_key = ?'; 
    298311 
     
    382395     */ 
    383396    function sfCustomerRegisterParam(&$objFormParam, $isAdmin = false, $is_mypage = false) { 
    384         $objFormParam->addParam('パスワード', 'password', STEXT_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK', 'ALNUM_CHECK', 'MAX_LENGTH_CHECK')); 
     397        $objFormParam->addParam('パスワード', 'password', PASSWORD_MAX_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK', 'ALNUM_CHECK')); 
    385398        $objFormParam->addParam('パスワード確認用の質問の答え', 'reminder_answer', STEXT_LEN, 'aKV', array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); 
    386399        $objFormParam->addParam('パスワード確認用の質問', 'reminder', STEXT_LEN, 'n', array('EXIST_CHECK', 'NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     
    394407        if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE) { 
    395408            $objFormParam->addParam('メールアドレス', 'email', null, 'a', array('NO_SPTAB', 'EXIST_CHECK', 'EMAIL_CHECK', 'SPTAB_CHECK' ,'EMAIL_CHAR_CHECK')); 
    396             $objFormParam->addParam('パスワード(確認)', 'password02', STEXT_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK' ,'ALNUM_CHECK'), '', false); 
     409            $objFormParam->addParam('パスワード(確認)', 'password02', PASSWORD_MAX_LEN, 'a', array('EXIST_CHECK', 'SPTAB_CHECK' ,'ALNUM_CHECK'), '', false); 
    397410            if (!$isAdmin) { 
    398411                $objFormParam->addParam('メールアドレス(確認)', 'email02', null, 'a', array('NO_SPTAB', 'EXIST_CHECK', 'EMAIL_CHECK','SPTAB_CHECK' , 'EMAIL_CHAR_CHECK'), '', false); 
     
    457470            unset($objErr->arrErr['reminder_answer']); 
    458471        } 
     472 
    459473        return $objErr->arrErr; 
    460474    } 
     
    493507    function sfCustomerRegisterErrorCheck(&$objErr, $isAdmin = false) { 
    494508        $objErr->doFunc(array('生年月日', 'year', 'month', 'day'), array('CHECK_BIRTHDAY')); 
     509        $objErr->doFunc(array('パスワード', 'password', PASSWORD_MIN_LEN, PASSWORD_MAX_LEN) ,array('NUM_RANGE_CHECK')); 
    495510 
    496511        if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE) { 
    497512            if (!$isAdmin) { 
    498                 $objErr->doFunc(array('パスワード', 'password', PASSWORD_MIN_LEN, PASSWORD_MAX_LEN) ,array('SPTAB_CHECK', 'NUM_RANGE_CHECK')); 
    499513                $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'email', 'email02') ,array('EQUAL_CHECK')); 
    500514            } 
     
    507521            $objErr->doFunc(array('携帯メールアドレス', 'email_mobile'), array('CHECK_REGIST_CUSTOMER_EMAIL', 'MOBILE_EMAIL_CHECK')); 
    508522        } 
     523 
    509524        return $objErr; 
    510525    } 
     
    600615            $arrErr = array_merge($arrErr, $objErr->arrErr); 
    601616        } 
     617 
    602618        return $arrErr; 
    603619    } 
     
    613629        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    614630        $objSelect = new SC_CustomerList_Ex($arrParam, 'customer'); 
     631 
    615632        $page_max = SC_Utils_Ex::sfGetSearchPageMax($arrParam['search_page_max']); 
    616633        $disp_pageno = $arrParam['search_pageno']; 
     
    645662    public function checkTempCustomer($login_email) { 
    646663        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
     664 
    647665        $where = 'email = ? AND status = 1 AND del_flg = 0'; 
    648666        $exists = $objQuery->exists('dtb_customer', $where, array($login_email)); 
     667 
    649668        return $exists; 
    650669    } 
Note: See TracChangeset for help on using the changeset viewer.