/**
  * APIのリクエスト基本パラメーターのチェック
  *
  * @param object $objFormParam
  * @return array $arrErr
  */
 protected function checkParam($objFormParam)
 {
     $arrErr = $objFormParam->checkError();
     if (!preg_match("/^[a-zA-Z0-9\\-\\_]+\$/", $objFormParam->getValue('Operation')) && !SC_Utils::isBlank($objFormParam->getValue('Operation'))) {
         $arrErr['ECCUBE.Operation.ParamError'] = 'Operationの値が不正です。';
     }
     if (!preg_match("/^[a-zA-Z0-9\\-\\_]+\$/", $objFormParam->getValue('Service')) && !SC_Utils::isBlank($objFormParam->getValue('Service'))) {
         $arrErr['ECCUBE.Service.ParamError'] = 'Serviceの値が不正です。';
     }
     if (!preg_match("/^[a-zA-Z0-9\\-\\_]+\$/", $objFormParam->getValue('Style')) && !SC_Utils::isBlank($objFormParam->getValue('Style'))) {
         $arrErr['ECCUBE.Style.ParamError'] = 'Styleの値が不正です。';
     }
     if (!preg_match("/^[a-zA-Z0-9\\-\\_]+\$/", $objFormParam->getValue('Validate')) && !SC_Utils::isBlank($objFormParam->getValue('Validate'))) {
         $arrErr['ECCUBE.Validate.ParamError'] = 'Validateの値が不正です。';
     }
     if (!preg_match("/^[a-zA-Z0-9\\-\\_\\.]+\$/", $objFormParam->getValue('Version')) && !SC_Utils::isBlank($objFormParam->getValue('Version'))) {
         $arrErr['ECCUBE.Version.ParamError'] = 'Versionの値が不正です。';
     }
     return $arrErr;
 }
Example #2
0
 /**
  * フォーム入力パラメーターのエラーチェック
  *
  * @param  object $objFormParam FormParamインスタンス
  * @param  UploadFile $objUpFile    UploadFileインスタンス
  * @param  UploadFile $objDownFile  UploadFileインスタンス
  * @param  array  $arrForm      フォーム入力パラメーター配列
  * @return array  エラー情報を格納した連想配列
  */
 public function lfCheckError_Edit(&$objFormParam, &$objUpFile, &$objDownFile, $arrForm)
 {
     /* @var $objErr CheckError */
     $objErr = Application::alias('eccube.check_error', $arrForm);
     $arrErr = array();
     // 入力パラメーターチェック
     $arrErr = $objFormParam->checkError();
     // アップロードファイル必須チェック
     $arrErr = array_merge((array) $arrErr, (array) $objUpFile->checkExists());
     // HTMLタグ許可チェック
     $objErr->doFunc(array('詳細-メインコメント', 'main_comment', $this->arrAllowedTag), array('HTML_TAG_CHECK'));
     for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) {
         $objErr->doFunc(array('詳細-サブコメント' . $cnt, 'sub_comment' . $cnt, $this->arrAllowedTag), array('HTML_TAG_CHECK'));
     }
     // 規格情報がない商品の場合のチェック
     if ($arrForm['has_product_class'] != true) {
         // 在庫必須チェック(在庫無制限ではない場合)
         if ($arrForm['stock_unlimited'] != UNLIMITED_FLG_UNLIMITED) {
             $objErr->doFunc(array('在庫数', 'stock'), array('EXIST_CHECK'));
         }
         // ダウンロード商品ファイル必須チェック(ダウンロード商品の場合)
         if ($arrForm['product_type_id'] == PRODUCT_TYPE_DOWNLOAD) {
             $arrErr = array_merge((array) $arrErr, (array) $objDownFile->checkExists());
             $objErr->doFunc(array('ダウンロード商品ファイル名', 'down_filename'), array('EXIST_CHECK'));
         }
     }
     $arrErr = array_merge((array) $arrErr, (array) $objErr->arrErr);
     return $arrErr;
 }
 /**
  * uploadモードのパラメータ検証を行う.
  *
  * @param object $objForm SC_FormParamのインスタンス
  * @return array エラー情報を格納した連想配列, エラーが無ければ(多分)nullを返す
  */
 function lfValidateUpload($objForm)
 {
     $arrErr = $objForm->checkError();
     if (!empty($arrErr)) {
         return $arrErr;
     }
     $arrForm = $objForm->getHashArray();
     // 同名のフォルダが存在する場合はエラー
     if (file_exists(USER_TEMPLATE_PATH . $arrForm['template_code'])) {
         $arrErr['template_code'] = "※ 同名のファイルがすでに存在します。<br/>";
     }
     // 登録不可の文字列チェック
     $arrIgnoreCode = array('admin', 'mobile', 'default');
     if (in_array($arrForm['template_code'], $arrIgnoreCode)) {
         $arrErr['template_code'] = "※ このテンプレートコードは使用できません。<br/>";
     }
     // DBにすでに登録されていないかチェック
     $objQuery = new SC_Query();
     $ret = $objQuery->count("dtb_templates", "template_code = ?", array($arrForm['template_code']));
     if (!empty($ret)) {
         $arrErr['template_code'] = "※ すでに登録されているテンプレートコードです。<br/>";
     }
     // ファイルの拡張子チェック(.tar/tar.gzのみ許可)
     $errFlag = true;
     $array_ext = explode(".", $_FILES['template_file']['name']);
     $ext = $array_ext[count($array_ext) - 1];
     $ext = strtolower($ext);
     // .tarチェック
     if ($ext == 'tar') {
         $errFlag = false;
     }
     $ext = $array_ext[count($array_ext) - 2] . "." . $ext;
     $ext = strtolower($ext);
     // .tar.gzチェック
     if ($ext == 'tar.gz') {
         $errFlag = false;
     }
     if ($errFlag) {
         $arrErr['template_file'] = "※ アップロードするテンプレートファイルで許可されている形式は、tar/tar.gzです。<br />";
     }
     return $arrErr;
 }
 /**
  * uploadモードのパラメーター検証を行う.
  *
  * @param  object $objFormParam SC_FormParamのインスタンス
  * @param  object $objUpFile    SC_UploadFileのインスタンス
  * @return array  エラー情報を格納した連想配列, エラーが無ければ(多分)nullを返す
  */
 public function lfCheckError(&$objFormParam, &$objUpFile)
 {
     $arrErr = $objFormParam->checkError();
     $template_code = $objFormParam->getValue('template_code');
     // 同名のフォルダが存在する場合はエラー
     if (file_exists(USER_TEMPLATE_REALDIR . $template_code) && $template_code != "") {
         $arrErr['template_code'] = '※ 同名のファイルがすでに存在します。<br/>';
     }
     // 登録不可の文字列チェック
     $arrIgnoreCode = array('admin', MOBILE_DEFAULT_TEMPLATE_NAME, SMARTPHONE_DEFAULT_TEMPLATE_NAME, DEFAULT_TEMPLATE_NAME);
     if (in_array($template_code, $arrIgnoreCode)) {
         $arrErr['template_code'] = '※ このテンプレートコードは使用できません。<br/>';
     }
     // DBにすでに登録されていないかチェック
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     $exists = $objQuery->exists('dtb_templates', 'template_code = ?', array($template_code));
     if ($exists) {
         $arrErr['template_code'] = '※ すでに登録されているテンプレートコードです。<br/>';
     }
     /*
      * ファイル形式チェック
      * ファイルが壊れていることも考慮して, 展開可能かチェックする.
      */
     $tar = new Archive_Tar($_FILES['template_file']['tmp_name'], true);
     $arrArchive = $tar->listContent();
     if (!is_array($arrArchive)) {
         $arrErr['template_file'] = '※ テンプレートファイルが解凍できません。許可されている形式は、tar/tar.gzです。<br />';
     } else {
         $make_temp_error = $objUpFile->makeTempFile('template_file', false);
         if (!SC_Utils_Ex::isBlank($make_temp_error)) {
             $arrErr['template_file'] = $make_temp_error;
         }
     }
     return $arrErr;
 }
 /**
  * フォーム入力パラメーターのエラーチェック
  *
  * @param object $objFormParam SC_FormParamインスタンス
  * @param object $objUpFile SC_UploadFileインスタンス
  * @param object $objDownFile SC_UploadFileインスタンス
  * @param array $arrForm フォーム入力パラメーター配列
  * @return array エラー情報を格納した連想配列
  */
 function lfCheckError_Edit(&$objFormParam, &$objUpFile, &$objDownFile, $arrForm)
 {
     $objErr = new SC_CheckError_Ex($arrForm);
     $arrErr = array();
     // 入力パラメーターチェック
     $arrErr = $objFormParam->checkError();
     // アップロードファイル必須チェック
     $arrErr = array_merge((array) $arrErr, (array) $objUpFile->checkExists());
     // HTMLタグ許可チェック
     $objErr->doFunc(array(t('c_Details - Main comment_01'), 'main_comment', $this->arrAllowedTag), array('HTML_TAG_CHECK'));
     for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) {
         $objErr->doFunc(array(t('c_Details - Sub comment T_ARG1_01', array('T_ARG1' => $cnt)), 'sub_comment' . $cnt, $this->arrAllowedTag), array('HTML_TAG_CHECK'));
     }
     // 規格情報がない商品の場合のチェック
     if ($arrForm['has_product_class'] != true) {
         // 在庫必須チェック(在庫無制限ではない場合)
         if ($arrForm['stock_unlimited'] != UNLIMITED_FLG_UNLIMITED) {
             $objErr->doFunc(array(t('c_Inventory count_01'), 'stock'), array('EXIST_CHECK'));
         }
         // ダウンロード商品ファイル必須チェック(ダウンロード商品の場合)
         if ($arrForm['product_type_id'] == PRODUCT_TYPE_DOWNLOAD) {
             $arrErr = array_merge((array) $arrErr, (array) $objDownFile->checkExists());
             $objErr->doFunc(array(t('c_Downloaded product file name_01'), 'down_filename'), array('EXIST_CHECK'));
         }
     }
     $arrErr = array_merge((array) $arrErr, (array) $objErr->arrErr);
     return $arrErr;
 }
 /**
  * uploadモードのパラメーター検証を行う.
  *
  * @param object $objFormParam SC_FormParamのインスタンス
  * @param object $objUpFile SC_UploadFileのインスタンス
  * @return array エラー情報を格納した連想配列, エラーが無ければ(多分)nullを返す
  */
 function lfCheckError(&$objFormParam, &$objUpFile)
 {
     $arrErr = $objFormParam->checkError();
     $template_code = $objFormParam->getValue('template_code');
     // 同名のフォルダが存在する場合はエラー
     if (file_exists(USER_TEMPLATE_REALDIR . $template_code)) {
         $arrErr['template_code'] = t('c_* A file with the same name already exists.<br/>_01');
     }
     // 登録不可の文字列チェック
     $arrIgnoreCode = array('admin', MOBILE_DEFAULT_TEMPLATE_NAME, SMARTPHONE_DEFAULT_TEMPLATE_NAME, DEFAULT_TEMPLATE_NAME);
     if (in_array($template_code, $arrIgnoreCode)) {
         $arrErr['template_code'] = t('c_* This template code cannot be used.<br/>_01');
     }
     // DBにすでに登録されていないかチェック
     $objQuery =& SC_Query_Ex::getSingletonInstance();
     $exists = $objQuery->exists('dtb_templates', 'template_code = ?', array($template_code));
     if ($exists) {
         $arrErr['template_code'] = t('c_* This template code is already registered.<br/>_01');
     }
     /*
      * ファイル形式チェック
      * ファイルが壊れていることも考慮して, 展開可能かチェックする.
      */
     $tar = new Archive_Tar($_FILES['template_file']['tmp_name'], true);
     $arrArchive = $tar->listContent();
     if (!is_array($arrArchive)) {
         $arrErr['template_file'] = t('c_* The template file could not be decompressed. The permissible formats are tar/tar.gz.<br />_01');
     } else {
         $make_temp_error = $objUpFile->makeTempFile('template_file', false);
         if (!SC_Utils_Ex::isBlank($make_temp_error)) {
             $arrErr['template_file'] = $make_temp_error;
         }
     }
     return $arrErr;
 }
 /**
  * フォーム入力パラメーターのエラーチェック
  * 
  * @param object $objFormParam SC_FormParamインスタンス
  * @param object $objUpFile SC_UploadFileインスタンス
  * @param object $objDownFile SC_UploadFileインスタンス
  * @param array $arrForm フォーム入力パラメーター配列
  * @return array エラー情報を格納した連想配列
  */
 function lfCheckError_Edit(&$objFormParam, &$objUpFile, &$objDownFile, $arrForm)
 {
     $objErr = new SC_CheckError_Ex($arrForm);
     $arrErr = array();
     // 入力パラメーターチェック
     $arrErr = $objFormParam->checkError();
     // アップロードファイル必須チェック
     $arrErr = array_merge((array) $arrErr, (array) $objUpFile->checkEXISTS());
     // HTMLタグ許可チェック
     $objErr->doFunc(array("詳細-メインコメント", "main_comment", $this->arrAllowedTag), array("HTML_TAG_CHECK"));
     for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) {
         $objErr->doFunc(array("詳細-サブコメント" . $cnt, "sub_comment" . $cnt, $this->arrAllowedTag), array("HTML_TAG_CHECK"));
     }
     // 規格情報がない商品の場合のチェック
     if ($arrForm['has_product_class'] != true) {
         // 在庫必須チェック(在庫無制限ではない場合)
         if (!isset($arrForm['stock_unlimited']) && $arrForm['stock_unlimited'] != UNLIMITED_FLG_UNLIMITED) {
             $objErr->doFunc(array("在庫数", 'stock'), array("EXIST_CHECK"));
         }
         // ダウンロード商品ファイル必須チェック(ダウンロード商品の場合)
         if ($arrForm['product_type_id'] == PRODUCT_TYPE_DOWNLOAD) {
             $arrErr = array_merge((array) $arrErr, (array) $objDownFile->checkEXISTS());
             $objErr->doFunc(array("ダウンロード商品ファイル名", 'down_filename'), array("EXIST_CHECK"));
         }
     }
     $arrErr = array_merge((array) $arrErr, (array) $objErr->arrErr);
     return $arrErr;
 }
 /**
  * 入力エラーチェック
  *
  * @param  object $objFormParam
  * @param  object $objHoliday
  * @return array
  */
 public function lfCheckError(&$objFormParam, SC_Helper_Holiday_Ex &$objHoliday)
 {
     $arrErr = $objFormParam->checkError();
     $arrForm = $objFormParam->getHashArray();
     // 編集中のレコード以外に同じ日付が存在する場合
     if ($objHoliday->isDateExist($arrForm['month'], $arrForm['day'], $arrForm['holiday_id'])) {
         $arrErr['date'] = '※ 既に同じ日付の登録が存在します。<br>';
     }
     return $arrErr;
 }