Changeset 20177


Ignore:
Timestamp:
2011/02/17 13:58:30 (13 years ago)
Author:
coelacanth
Message:

#964 リファクタリング 入力値のバリデーション処理を追加

Location:
branches/version-2_5-dev/data/class/pages/admin/basis
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery.php

    r20168 r20177  
    7676        SC_Utils_Ex::sfIsSuccess($objSess); 
    7777 
    78         switch($this->getMode()) { 
     78        $mode = $this->getMode(); 
     79 
     80        if (!empty($_POST)) { 
     81            $this->arrErr = $this->lfCheckError($mode); 
     82            if (!empty($this->arrErr['deliv_id'])) { 
     83                SC_Utils_Ex::sfDispException(); 
     84                return; 
     85            } 
     86        } 
     87 
     88        switch($mode) { 
    7989        case 'delete': 
    8090            // ランク付きレコードの削除 
     
    114124 
    115125    /** 
     126     * 入力エラーチェック 
     127     * 
     128     * @param string $mode 
     129     * @return array 
     130     */ 
     131    function lfCheckError($mode) { 
     132        $arrErr = array(); 
     133        switch ($mode) { 
     134            case "delete": 
     135            case "up": 
     136            case "down": 
     137                $this->objFormParam = new SC_FormParam(); 
     138                $this->objFormParam->addParam('配送業者ID', 'deliv_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     139                $this->objFormParam->setParam($_POST); 
     140                $this->objFormParam->convParam(); 
     141 
     142                $arrErr = $this->objFormParam->checkError(); 
     143                break; 
     144            default: 
     145                break; 
     146        } 
     147        return $arrErr; 
     148    } 
     149 
     150    /** 
    116151     * デストラクタ. 
    117152     * 
  • branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Holiday.php

    r20168 r20177  
    7777        SC_Utils_Ex::sfIsSuccess($objSess); 
    7878 
     79        $mode = $this->getMode(); 
     80 
     81        if (!empty($_POST)) { 
     82            $this->arrErr = $this->lfCheckError($mode); 
     83            if (!empty($this->arrErr['holiday_id'])) { 
     84                SC_Utils_Ex::sfDispException(); 
     85                return; 
     86            } 
     87        } 
     88 
    7989        // 要求判定 
    80         switch($this->getMode()) { 
     90        switch($mode) { 
    8191        // 編集処理 
    8292        case 'edit': 
    8393            // POST値の引き継ぎ 
    8494            $this->arrForm = $_POST; 
    85             // 入力文字の変換 
    86             $this->arrForm = $this->lfConvertParam($this->arrForm); 
    87  
    88             // エラーチェック 
    89             $this->arrErr = $this->lfErrorCheck(); 
     95 
    9096            if(count($this->arrErr) <= 0) { 
    9197                if($_POST['holiday_id'] == "") { 
     
    207213    } 
    208214 
    209     /* 入力エラーチェック */ 
    210     function lfErrorCheck() { 
    211         $objErr = new SC_CheckError(); 
    212         $objErr->doFunc(array("タイトル", "title", SMTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    213         $objErr->doFunc(array("月", "month", INT_LEN), array("SELECT_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    214         $objErr->doFunc(array("日", "day", INT_LEN), array("SELECT_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    215         if(!isset($objErr->arrErr['date'])) { 
    216             $objQuery =& SC_Query::getSingletonInstance(); 
    217             $where = "del_flg = 0 AND month = ? AND day = ?"; 
    218             $arrval = array($_POST['month'], $_POST['day']); 
    219             if (!empty($_POST['holiday_id'])) { 
    220                 $where .= " AND holiday_id <> ?"; 
    221                 $arrval[] = $_POST['holiday_id']; 
    222             } 
    223             $arrRet = $objQuery->select("count(holiday_id)", "dtb_holiday", $where, $arrval); 
    224             // 編集中のレコード以外に同じ日付が存在する場合 
    225             if ($arrRet[0]['count'] > 0) { 
    226                 $objErr->arrErr['date'] = "※ 既に同じ日付の登録が存在します。<br>"; 
    227             } 
    228         } 
    229         return $objErr->arrErr; 
     215    /** 
     216     * 入力エラーチェック 
     217     * 
     218     * @param string $mode 
     219     * @return array 
     220     */ 
     221    function lfCheckError($mode) { 
     222        $arrErr = array(); 
     223        switch ($mode) { 
     224            case 'edit': 
     225                $_POST = $this->lfConvertParam($_POST); 
     226 
     227                $objErr = new SC_CheckError(); 
     228                $objErr->doFunc(array("タイトル", "title", SMTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     229                $objErr->doFunc(array("月", "month", INT_LEN), array("SELECT_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     230                $objErr->doFunc(array("日", "day", INT_LEN), array("SELECT_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     231                if(!isset($objErr->arrErr['date'])) { 
     232                    $objQuery =& SC_Query::getSingletonInstance(); 
     233                    $where = "del_flg = 0 AND month = ? AND day = ?"; 
     234                    $arrval = array($_POST['month'], $_POST['day']); 
     235                    if (!empty($_POST['holiday_id'])) { 
     236                        $where .= " AND holiday_id <> ?"; 
     237                        $arrval[] = $_POST['holiday_id']; 
     238                    } 
     239                    $arrRet = $objQuery->select("count(holiday_id)", "dtb_holiday", $where, $arrval); 
     240                    // 編集中のレコード以外に同じ日付が存在する場合 
     241                    if ($arrRet[0]['count'] > 0) { 
     242                        $objErr->arrErr['date'] = "※ 既に同じ日付の登録が存在します。<br>"; 
     243                    } 
     244                } 
     245                // breakしない 
     246            case 'delete': 
     247            case 'pre_edit': 
     248            case 'down': 
     249            case 'up': 
     250                $this->objFormParam = new SC_FormParam(); 
     251                $this->objFormParam->addParam('定休日ID', 'holiday_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     252                $this->objFormParam->setParam($_POST); 
     253                $this->objFormParam->convParam(); 
     254                $arrErr = $this->objFormParam->checkError(); 
     255                break; 
     256            default: 
     257                break; 
     258        } 
     259        return array_merge((array)$objErr->arrErr, (array)$arrErr); 
    230260    } 
    231261} 
  • branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php

    r20168 r20177  
    7373        SC_Utils_Ex::sfIsSuccess($objSess); 
    7474 
     75        $mode = $this->getMode(); 
     76 
     77        if (!empty($_POST)) { 
     78            $this->arrErr = $this->lfCheckError($mode); 
     79            if (!empty($this->arrErr['kiyaku_id'])) { 
     80                SC_Utils_Ex::sfDispException(); 
     81                return; 
     82            } 
     83        } 
     84 
    7585        // 要求判定 
    76         switch($this->getMode()) { 
     86        switch($mode) { 
    7787        // 編集処理 
    7888        case 'edit': 
    7989            // POST値の引き継ぎ 
    8090            $this->arrForm = $_POST; 
    81             // 入力文字の変換 
    82             $this->arrForm = $this->lfConvertParam($this->arrForm); 
    83  
    84             // エラーチェック 
    85             $this->arrErr = $this->lfErrorCheck(); 
     91 
    8692            if(count($this->arrErr) <= 0) { 
    8793                if($_POST['kiyaku_id'] == "") { 
    88                     $this->lfInsertClass($this->arrForm);   // 新規作成 
     94                    $this->lfInsertClass($this->arrForm);    // 新規作成 
    8995                } else { 
    90                     $this->lfUpdateClass($this->arrForm);   // 既存編集 
     96                    $this->lfUpdateClass($this->arrForm);    // 既存編集 
    9197                } 
    9298                // 再表示 
     
    199205    } 
    200206 
    201     /* 入力エラーチェック */ 
    202     function lfErrorCheck() { 
    203         $objErr = new SC_CheckError(); 
    204         $objErr->doFunc(array("規約タイトル", "kiyaku_title", SMTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    205         $objErr->doFunc(array("規約内容", "kiyaku_text", MLTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    206         if(!isset($objErr->arrErr['name'])) { 
    207             $objQuery =& SC_Query::getSingletonInstance(); 
    208             $arrRet = $objQuery->select("kiyaku_id, kiyaku_title", "dtb_kiyaku", "del_flg = 0 AND kiyaku_title = ?", array($_POST['kiyaku_title'])); 
    209             // 編集中のレコード以外に同じ名称が存在する場合 
    210             if ($arrRet[0]['kiyaku_id'] != $_POST['kiyaku_id'] && $arrRet[0]['kiyaku_title'] == $_POST['kiyaku_title']) { 
    211                 $objErr->arrErr['name'] = "※ 既に同じ内容の登録が存在します。<br>"; 
    212             } 
    213         } 
    214         return $objErr->arrErr; 
     207    /** 
     208     * 入力エラーチェック 
     209     * 
     210     * @param string $mode 
     211     * @return array 
     212     */ 
     213    function lfCheckError($mode) { 
     214        $arrErr = array(); 
     215 
     216        switch ($mode) { 
     217            case 'edit': 
     218                $_POST = $this->lfConvertParam($_POST); 
     219 
     220                $objErr = new SC_CheckError(); 
     221                $objErr->doFunc(array("規約タイトル", "kiyaku_title", SMTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     222                $objErr->doFunc(array("規約内容", "kiyaku_text", MLTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
     223                if(!isset($objErr->arrErr['name'])) { 
     224                    $objQuery =& SC_Query::getSingletonInstance(); 
     225                    $arrRet = $objQuery->select("kiyaku_id, kiyaku_title", "dtb_kiyaku", "del_flg = 0 AND kiyaku_title = ?", array($_POST['kiyaku_title'])); 
     226                    // 編集中のレコード以外に同じ名称が存在する場合 
     227                    if ($arrRet[0]['kiyaku_id'] != $_POST['kiyaku_id'] && $arrRet[0]['kiyaku_title'] == $_POST['kiyaku_title']) { 
     228                        $objErr->arrErr['name'] = "※ 既に同じ内容の登録が存在します。<br>"; 
     229                    } 
     230                } 
     231            case 'delete': 
     232            case 'pre_edit': 
     233            case 'down': 
     234            case 'up': 
     235                $this->objFormParam = new SC_FormParam(); 
     236                $this->objFormParam->addParam('規約ID', 'kiyaku_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     237                $this->objFormParam->setParam($_POST); 
     238                $this->objFormParam->convParam(); 
     239                $arrErr = $this->objFormParam->checkError(); 
     240 
     241                break; 
     242            default: 
     243                break; 
     244        } 
     245        return array_merge((array)$objErr->arrErr, (array)$arrErr); 
    215246    } 
    216247} 
  • branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment.php

    r20164 r20177  
    7373        SC_Utils_Ex::sfIsSuccess($objSess); 
    7474 
     75        $mode = $this->getMode(); 
     76 
     77        if (!empty($_POST)) { 
     78            $this->arrErr = $this->lfCheckError($mode); 
     79            if (!empty($this->arrErr['payment_id'])) { 
     80                SC_Utils_Ex::sfDispException(); 
     81                return; 
     82            } 
     83        } 
     84 
    7585        switch($this->getMode()) { 
    7686            case 'delete': 
     
    117127        return $arrRet; 
    118128    } 
     129 
     130    /** 
     131     * 入力エラーチェック 
     132     * 
     133     * @param string $mode 
     134     * @return array 
     135     */ 
     136    function lfCheckError($mode) { 
     137        $arrErr = array(); 
     138        switch($mode) { 
     139            case 'delete': 
     140            case 'up': 
     141            case 'down': 
     142                $this->objFormParam = new SC_FormParam(); 
     143                $this->objFormParam->addParam('配送業者ID', 'payment_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); 
     144                $this->objFormParam->setParam($_POST); 
     145                $this->objFormParam->convParam(); 
     146                $arrErr = $this->objFormParam->checkError(); 
     147 
     148                break; 
     149        } 
     150        return $arrErr; 
     151    } 
    119152} 
    120153?> 
Note: See TracChangeset for help on using the changeset viewer.