Ignore:
Timestamp:
2012/03/26 19:11:14 (9 years ago)
Author:
pingpong
Message:

#1514 モバイル> 郵便番号による住所入力機能 の対応

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/pages/mypage/LC_Page_Mypage_Change.php

    r21596 r21679  
    9696            // 確認 
    9797            case 'confirm': 
     98                if(isset($_POST['submit_address'])){ 
     99                    // 入力エラーチェック 
     100                    $this->arrErr = $this->fnErrorCheck($_POST); 
     101                    // 入力エラーの場合は終了 
     102                    if (count($this->arrErr) == 0) { 
     103                        // 郵便番号検索文作成 
     104                        $zipcode = $_POST['zip01'] . $_POST['zip02']; 
     105 
     106                        // 郵便番号検索 
     107                        $arrAdsList = SC_Utils_Ex::sfGetAddress($zipcode); 
     108     
     109                        // 郵便番号が発見された場合 
     110                        if (!empty($arrAdsList)) { 
     111                            $data['pref'] = $arrAdsList[0]['state']; 
     112                            $data['addr01'] = $arrAdsList[0]['city']. $arrAdsList[0]['town']; 
     113                $objFormParam->setParam($data); 
     114 
     115                            // 該当無し 
     116                        } else { 
     117                            $this->arrErr['zip01'] = '※該当する住所が見つかりませんでした。<br>'; 
     118                        } 
     119                    } 
     120            $this->arrForm  = $objFormParam->getHashArray(); 
     121            break; 
     122        } 
    98123                $this->arrErr = SC_Helper_Customer_Ex::sfCustomerMypageErrorCheck($objFormParam); 
    99124                $this->arrForm = $objFormParam->getHashArray(); 
     
    164189        SC_Helper_Customer_Ex::sfEditCustomerData($sqlval, $customer_id); 
    165190    } 
     191 
     192    /** 
     193     * 入力エラーのチェック. 
     194     * 
     195     * @param array $arrRequest リクエスト値($_GET) 
     196     * @return array $arrErr エラーメッセージ配列 
     197     */ 
     198    function fnErrorCheck($arrRequest) { 
     199        // パラメーター管理クラス 
     200        $objFormParam = new SC_FormParam_Ex(); 
     201        // パラメーター情報の初期化 
     202        $objFormParam->addParam('郵便番号1', 'zip01', ZIP01_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK')); 
     203        $objFormParam->addParam('郵便番号2', 'zip02', ZIP02_LEN, 'n', array('EXIST_CHECK', 'NUM_COUNT_CHECK', 'NUM_CHECK')); 
     204        // // リクエスト値をセット 
     205    $arrData['zip01'] = $arrRequest['zip01']; 
     206    $arrData['zip02'] = $arrRequest['zip02']; 
     207        $objFormParam->setParam($arrData); 
     208        // エラーチェック 
     209        $arrErr = $objFormParam->checkError(); 
     210        // 親ウィンドウの戻り値を格納するinputタグのnameのエラーチェック 
     211        if (!$this->lfInputNameCheck($addData['zip01'])) { 
     212            $arrErr['zip01'] = '※ 入力形式が不正です。<br />'; 
     213        } 
     214        if (!$this->lfInputNameCheck($arrdata['zip02'])) { 
     215            $arrErr['zip02'] = '※ 入力形式が不正です。<br />'; 
     216        } 
     217 
     218        return $arrErr; 
     219    } 
     220 
     221    /** 
     222     * エラーチェック. 
     223     * 
     224     * @param string $value 
     225     * @return エラーなし:true エラー:false 
     226     */ 
     227    function lfInputNameCheck($value) { 
     228        // 半角英数字と_(アンダーバー), []以外の文字を使用していたらエラー 
     229        if (strlen($value) > 0 && !preg_match("/^[a-zA-Z0-9_\[\]]+$/", $value)) { 
     230            return false; 
     231        } 
     232 
     233        return true; 
     234    } 
    166235} 
Note: See TracChangeset for help on using the changeset viewer.