instantsoft / icms2

Self-hosted Site Management System
https://instantcms.ru
GNU General Public License v2.0
294 stars 120 forks source link

Ошибка 503 при вводе отрицательного значения в числовое поле #1184

Closed asnenne closed 4 years ago

asnenne commented 4 years ago

Используемая версия InstantCMS: 2.13.1

Хотел подсмотреть, думал, что нормально всё, в поле "Число", как сделана проверка, положительное ли число в опциях типа "Количество знаков дробной части" и т.д. Оказывается, никак. Просто если ввести отрицательное число, то получим 503 ошибку.

У вас ошибка в запросе. Изучите документацию по используемой версии MariaDB на предмет корректного синтаксиса около '-5,2) NULL DEFAULT NULL' на строке 1

ALTER TABLE cmslanding_con_pages ADD 'xcvxcv' DECIMAL(-5,2) NULL DEFAULT NULL

Последние вызовы:

modelContent->addContentField() @ /system/controllers/admin/actions/ctypes_fields_add.php : 50 actionAdminCtypesFieldsAdd->run() call_user_func_array() @ /system/core/controller.php : 585 cmsController->runExternalAction() call_user_func_array() @ /system/core/action.php : 37 cmsAction->__call() @ /system/controllers/admin/actions/ctypes.php : 11 actionAdminCtypes->runExternalAction() @ /system/controllers/admin/actions/ctypes.php : 11 actionAdminCtypes->run() call_user_func_array() @ /system/core/controller.php : 585 cmsController->runExternalAction() @ /system/core/controller.php : 456 cmsController->executeAction() @ /system/core/controller.php : 432

Иногда нужно разрешить ввод в поле только положительных чисел. В приведенном примере правильно было бы показать предупреждение, а не выдавать 503 ошибку.

Спасибо.

fuzegit commented 4 years ago

Строго говоря, вводить отрицательное число тут весьма странно. Но в целом да, добавим проверку.

asnenne commented 4 years ago

Здесь странно, согласен. Думал подсмотреть, как проверка реализована. Там, где надо, там она нужна. На всякий случай.

Спасибо.

fuzegit commented 4 years ago

Опции есть и сейчас, просто не добавили.

Выделение_097

asnenne commented 4 years ago

Вот оно))

Спасибо))