diff --git a/extension/qfq/qfq/Constants.php b/extension/qfq/qfq/Constants.php index 4e93e336972ab183acaef123c60e363790e8c7e6..97f9f9071a2aa231aba87830d0e5958d8a9e462a 100644 --- a/extension/qfq/qfq/Constants.php +++ b/extension/qfq/qfq/Constants.php @@ -146,42 +146,43 @@ const ERROR_EXPECTED_ARRAY = 1061; const ERROR_REPORT_FAILED_ACTION = 1062; const ERROR_MISSING_MESSAGE_FAIL = 1063; const ERROR_MISSING_TABLE_NAME = 1064; -const ERROR_RECORD_NOT_FOUND = 1065; -const ERROR_INVALID_EDITOR_PROPERTY_NAME = 1066; +const ERROR_MISSING_TABLE = 1065; +const ERROR_RECORD_NOT_FOUND = 1066; +const ERROR_INVALID_EDITOR_PROPERTY_NAME = 1067; // Subrecord -const ERROR_SUBRECORD_MISSING_COLUMN_ID = 1066; +const ERROR_SUBRECORD_MISSING_COLUMN_ID = 1100; // Store -const ERROR_STORE_VALUE_ALREADY_CODPIED = 1100; -const ERROR_STORE_KEY_EXIST = 1101; +const ERROR_STORE_VALUE_ALREADY_CODPIED = 1200; +const ERROR_STORE_KEY_EXIST = 1201; // I/O Error -const ERROR_IO_READ_FILE = 1200; -const ERROR_IO_WRITE = 1203; -const ERROR_IO_OPEN = 1204; -const ERROR_IO_UNLINK = 1205; -const ERROR_IO_FILE_EXIST = 1206; -const ERROR_IO_RENAME = 1207; -const ERROR_IO_INVALID_LINK = 1208; -const ERROR_IO_DIR_EXIST_AS_FILE = 1209; -const ERROR_IO_CHDIR = 1210; +const ERROR_IO_READ_FILE = 1300; +const ERROR_IO_WRITE = 1303; +const ERROR_IO_OPEN = 1304; +const ERROR_IO_UNLINK = 1305; +const ERROR_IO_FILE_EXIST = 1306; +const ERROR_IO_RENAME = 1307; +const ERROR_IO_INVALID_LINK = 1308; +const ERROR_IO_DIR_EXIST_AS_FILE = 1309; +const ERROR_IO_CHDIR = 1310; //Report -const ERROR_UNKNOWN_LINK_QUALIFIER = 1300; -const ERROR_UNDEFINED_RENDER_CONTROL_COMBINATION = 1301; -const ERROR_MISSING_VALUE = 1302; -const ERROR_INVALID_VALUE = 1303; -const ERROR_MULTIPLE_DEFINITION = 1304; -const ERROR_MULTIPLE_URL_PAGE_MAILTO_DEFINITION = 1305; -const ERROR_UNKNOWN_TOKEN = 1306; -const ERROR_TOO_FEW_PARAMETER_FOR_SENDMAIL = 1307; -const ERROR_TOO_MANY_PARAMETER = 1308; +const ERROR_UNKNOWN_LINK_QUALIFIER = 1400; +const ERROR_UNDEFINED_RENDER_CONTROL_COMBINATION = 1401; +const ERROR_MISSING_VALUE = 1402; +const ERROR_INVALID_VALUE = 1403; +const ERROR_MULTIPLE_DEFINITION = 1404; +const ERROR_MULTIPLE_URL_PAGE_MAILTO_DEFINITION = 1405; +const ERROR_UNKNOWN_TOKEN = 1406; +const ERROR_TOO_FEW_PARAMETER_FOR_SENDMAIL = 1407; +const ERROR_TOO_MANY_PARAMETER = 1408; // Upload -const ERROR_UPLOAD = 1400; -const ERROR_UNKNOWN_ACTION = 1402; -const ERROR_NO_TARGET_PATH_FILE_NAME = 1403; +const ERROR_UPLOAD = 1500; +const ERROR_UNKNOWN_ACTION = 1502; +const ERROR_NO_TARGET_PATH_FILE_NAME = 1503; // KeyValueParser const ERROR_KVP_VALUE_HAS_NO_KEY = 1900; diff --git a/extension/qfq/qfq/Database.php b/extension/qfq/qfq/Database.php index d06a6a8b4f58e0d80975da916168525a9f1870b2..336e65c200f782e27af177a5bfa101c74ce2168a 100644 --- a/extension/qfq/qfq/Database.php +++ b/extension/qfq/qfq/Database.php @@ -567,4 +567,27 @@ class Database { return $this->mysqli->insert_id; } + /** + * Searches for the table '$name'. + * + * @param $name + * @return bool true if found, else false + */ + public function existTable($name) { + $found = false; + + $tables = $this->sql("SHOW tables"); + + foreach ($tables as $t) { + foreach ($t as $key => $value) { + if ($value === $name) { + $found = true; + break 2; + } + } + } + + return $found; + } + } \ No newline at end of file diff --git a/extension/qfq/qfq/QuickFormQuery.php b/extension/qfq/qfq/QuickFormQuery.php index 66a556c2395ca0814c2babfdec47a17017aaaf59..ff69ea8c3522239b61559b11c02a8566f751c0c4 100644 --- a/extension/qfq/qfq/QuickFormQuery.php +++ b/extension/qfq/qfq/QuickFormQuery.php @@ -319,6 +319,10 @@ class QuickFormQuery { return false; } + if (!$this->db->existTable('Form')) { + throw new UserFormException("Table 'Form' not found", ERROR_MISSING_TABLE); + } + // Preparation for Log, Debug $this->store->setVar(SYSTEM_FORM, $formName, STORE_SYSTEM);