/** * 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; }
/** * フォーム入力パラメーターのエラーチェック * * @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; }