[Svn-src-all:1288] [version-2_5-dev 20177] #964 リファクタリング 入力値のバリデーション処理を追加
coelacanth
admin @ mail.ec-cube.net
2011年 2月 17日 (木) 13:58:30 JST
Subversion committed to /home/svn/open 20177
http://svn.ec-cube.net/open_trac/changeset/20177
┌────────────────────────────┐
│更新者 : coelacanth │
│更新日時: 2011-02-17 13:58:30 +0900 (木, 17 2月 2011)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#964 リファクタリング 入力値のバリデーション処理を追加
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery.php
U branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Holiday.php
U branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php
U branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment.php
変更: branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery.php 2011-02-17 04:57:51 UTC (rev 20176)
+++ branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Delivery.php 2011-02-17 04:58:30 UTC (rev 20177)
@@ -75,7 +75,17 @@
// 認証可否の判定
SC_Utils_Ex::sfIsSuccess($objSess);
- switch($this->getMode()) {
+ $mode = $this->getMode();
+
+ if (!empty($_POST)) {
+ $this->arrErr = $this->lfCheckError($mode);
+ if (!empty($this->arrErr['deliv_id'])) {
+ SC_Utils_Ex::sfDispException();
+ return;
+ }
+ }
+
+ switch($mode) {
case 'delete':
// ランク付きレコードの削除
$objDb->sfDeleteRankRecord("dtb_deliv", "deliv_id", $_POST['deliv_id']);
@@ -113,6 +123,31 @@
}
/**
+ * 入力エラーチェック
+ *
+ * @param string $mode
+ * @return array
+ */
+ function lfCheckError($mode) {
+ $arrErr = array();
+ switch ($mode) {
+ case "delete":
+ case "up":
+ case "down":
+ $this->objFormParam = new SC_FormParam();
+ $this->objFormParam->addParam('配送業者ID', 'deliv_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
+ $this->objFormParam->setParam($_POST);
+ $this->objFormParam->convParam();
+
+ $arrErr = $this->objFormParam->checkError();
+ break;
+ default:
+ break;
+ }
+ return $arrErr;
+ }
+
+ /**
* デストラクタ.
*
* @return void
変更: branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Holiday.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Holiday.php 2011-02-17 04:57:51 UTC (rev 20176)
+++ branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Holiday.php 2011-02-17 04:58:30 UTC (rev 20177)
@@ -76,17 +76,23 @@
// 認証可否の判定
SC_Utils_Ex::sfIsSuccess($objSess);
+ $mode = $this->getMode();
+
+ if (!empty($_POST)) {
+ $this->arrErr = $this->lfCheckError($mode);
+ if (!empty($this->arrErr['holiday_id'])) {
+ SC_Utils_Ex::sfDispException();
+ return;
+ }
+ }
+
// 要求判定
- switch($this->getMode()) {
+ switch($mode) {
// 編集処理
case 'edit':
// POST値の引き継ぎ
$this->arrForm = $_POST;
- // 入力文字の変換
- $this->arrForm = $this->lfConvertParam($this->arrForm);
- // エラーチェック
- $this->arrErr = $this->lfErrorCheck();
if(count($this->arrErr) <= 0) {
if($_POST['holiday_id'] == "") {
$this->lfInsertClass($this->arrForm); // 新規作成
@@ -206,27 +212,51 @@
return $array;
}
- /* 入力エラーチェック */
- function lfErrorCheck() {
- $objErr = new SC_CheckError();
- $objErr->doFunc(array("タイトル", "title", SMTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
- $objErr->doFunc(array("月", "month", INT_LEN), array("SELECT_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
- $objErr->doFunc(array("日", "day", INT_LEN), array("SELECT_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
- if(!isset($objErr->arrErr['date'])) {
- $objQuery =& SC_Query::getSingletonInstance();
- $where = "del_flg = 0 AND month = ? AND day = ?";
- $arrval = array($_POST['month'], $_POST['day']);
- if (!empty($_POST['holiday_id'])) {
- $where .= " AND holiday_id <> ?";
- $arrval[] = $_POST['holiday_id'];
- }
- $arrRet = $objQuery->select("count(holiday_id)", "dtb_holiday", $where, $arrval);
- // 編集中のレコード以外に同じ日付が存在する場合
- if ($arrRet[0]['count'] > 0) {
- $objErr->arrErr['date'] = "※ 既に同じ日付の登録が存在します。<br>";
- }
+ /**
+ * 入力エラーチェック
+ *
+ * @param string $mode
+ * @return array
+ */
+ function lfCheckError($mode) {
+ $arrErr = array();
+ switch ($mode) {
+ case 'edit':
+ $_POST = $this->lfConvertParam($_POST);
+
+ $objErr = new SC_CheckError();
+ $objErr->doFunc(array("タイトル", "title", SMTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+ $objErr->doFunc(array("月", "month", INT_LEN), array("SELECT_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+ $objErr->doFunc(array("日", "day", INT_LEN), array("SELECT_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+ if(!isset($objErr->arrErr['date'])) {
+ $objQuery =& SC_Query::getSingletonInstance();
+ $where = "del_flg = 0 AND month = ? AND day = ?";
+ $arrval = array($_POST['month'], $_POST['day']);
+ if (!empty($_POST['holiday_id'])) {
+ $where .= " AND holiday_id <> ?";
+ $arrval[] = $_POST['holiday_id'];
+ }
+ $arrRet = $objQuery->select("count(holiday_id)", "dtb_holiday", $where, $arrval);
+ // 編集中のレコード以外に同じ日付が存在する場合
+ if ($arrRet[0]['count'] > 0) {
+ $objErr->arrErr['date'] = "※ 既に同じ日付の登録が存在します。<br>";
+ }
+ }
+ // breakしない
+ case 'delete':
+ case 'pre_edit':
+ case 'down':
+ case 'up':
+ $this->objFormParam = new SC_FormParam();
+ $this->objFormParam->addParam('定休日ID', 'holiday_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
+ $this->objFormParam->setParam($_POST);
+ $this->objFormParam->convParam();
+ $arrErr = $this->objFormParam->checkError();
+ break;
+ default:
+ break;
}
- return $objErr->arrErr;
+ return array_merge((array)$objErr->arrErr, (array)$arrErr);
}
}
?>
変更: branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php 2011-02-17 04:57:51 UTC (rev 20176)
+++ branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Kiyaku.php 2011-02-17 04:58:30 UTC (rev 20177)
@@ -72,22 +72,28 @@
// 認証可否の判定
SC_Utils_Ex::sfIsSuccess($objSess);
+ $mode = $this->getMode();
+
+ if (!empty($_POST)) {
+ $this->arrErr = $this->lfCheckError($mode);
+ if (!empty($this->arrErr['kiyaku_id'])) {
+ SC_Utils_Ex::sfDispException();
+ return;
+ }
+ }
+
// 要求判定
- switch($this->getMode()) {
+ switch($mode) {
// 編集処理
case 'edit':
// POST値の引き継ぎ
$this->arrForm = $_POST;
- // 入力文字の変換
- $this->arrForm = $this->lfConvertParam($this->arrForm);
- // エラーチェック
- $this->arrErr = $this->lfErrorCheck();
if(count($this->arrErr) <= 0) {
if($_POST['kiyaku_id'] == "") {
- $this->lfInsertClass($this->arrForm); // 新規作成
+ $this->lfInsertClass($this->arrForm); // 新規作成
} else {
- $this->lfUpdateClass($this->arrForm); // 既存編集
+ $this->lfUpdateClass($this->arrForm); // 既存編集
}
// 再表示
$this->objDisplay->reload();
@@ -198,20 +204,45 @@
return $array;
}
- /* 入力エラーチェック */
- function lfErrorCheck() {
- $objErr = new SC_CheckError();
- $objErr->doFunc(array("規約タイトル", "kiyaku_title", SMTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
- $objErr->doFunc(array("規約内容", "kiyaku_text", MLTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
- if(!isset($objErr->arrErr['name'])) {
- $objQuery =& SC_Query::getSingletonInstance();
- $arrRet = $objQuery->select("kiyaku_id, kiyaku_title", "dtb_kiyaku", "del_flg = 0 AND kiyaku_title = ?", array($_POST['kiyaku_title']));
- // 編集中のレコード以外に同じ名称が存在する場合
- if ($arrRet[0]['kiyaku_id'] != $_POST['kiyaku_id'] && $arrRet[0]['kiyaku_title'] == $_POST['kiyaku_title']) {
- $objErr->arrErr['name'] = "※ 既に同じ内容の登録が存在します。<br>";
- }
+ /**
+ * 入力エラーチェック
+ *
+ * @param string $mode
+ * @return array
+ */
+ function lfCheckError($mode) {
+ $arrErr = array();
+
+ switch ($mode) {
+ case 'edit':
+ $_POST = $this->lfConvertParam($_POST);
+
+ $objErr = new SC_CheckError();
+ $objErr->doFunc(array("規約タイトル", "kiyaku_title", SMTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+ $objErr->doFunc(array("規約内容", "kiyaku_text", MLTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+ if(!isset($objErr->arrErr['name'])) {
+ $objQuery =& SC_Query::getSingletonInstance();
+ $arrRet = $objQuery->select("kiyaku_id, kiyaku_title", "dtb_kiyaku", "del_flg = 0 AND kiyaku_title = ?", array($_POST['kiyaku_title']));
+ // 編集中のレコード以外に同じ名称が存在する場合
+ if ($arrRet[0]['kiyaku_id'] != $_POST['kiyaku_id'] && $arrRet[0]['kiyaku_title'] == $_POST['kiyaku_title']) {
+ $objErr->arrErr['name'] = "※ 既に同じ内容の登録が存在します。<br>";
+ }
+ }
+ case 'delete':
+ case 'pre_edit':
+ case 'down':
+ case 'up':
+ $this->objFormParam = new SC_FormParam();
+ $this->objFormParam->addParam('規約ID', 'kiyaku_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
+ $this->objFormParam->setParam($_POST);
+ $this->objFormParam->convParam();
+ $arrErr = $this->objFormParam->checkError();
+
+ break;
+ default:
+ break;
}
- return $objErr->arrErr;
+ return array_merge((array)$objErr->arrErr, (array)$arrErr);
}
}
?>
変更: branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment.php 2011-02-17 04:57:51 UTC (rev 20176)
+++ branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis_Payment.php 2011-02-17 04:58:30 UTC (rev 20177)
@@ -72,6 +72,16 @@
// 認証可否の判定
SC_Utils_Ex::sfIsSuccess($objSess);
+ $mode = $this->getMode();
+
+ if (!empty($_POST)) {
+ $this->arrErr = $this->lfCheckError($mode);
+ if (!empty($this->arrErr['payment_id'])) {
+ SC_Utils_Ex::sfDispException();
+ return;
+ }
+ }
+
switch($this->getMode()) {
case 'delete':
// ランク付きレコードの削除
@@ -116,5 +126,28 @@
$arrRet = $objQuery->select($col, $table, $where);
return $arrRet;
}
+
+ /**
+ * 入力エラーチェック
+ *
+ * @param string $mode
+ * @return array
+ */
+ function lfCheckError($mode) {
+ $arrErr = array();
+ switch($mode) {
+ case 'delete':
+ case 'up':
+ case 'down':
+ $this->objFormParam = new SC_FormParam();
+ $this->objFormParam->addParam('配送業者ID', 'payment_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK'));
+ $this->objFormParam->setParam($_POST);
+ $this->objFormParam->convParam();
+ $arrErr = $this->objFormParam->checkError();
+
+ break;
+ }
+ return $arrErr;
+ }
}
?>
Svn-src-all メーリングリストの案内