$max) { return Form::to_bg($name) . " е твърде дълго! Дължината може да е максимум $max на брой символа!"; } } private static function get_error_len(string $name, int $min, int $max) { return Errors::get_error_len_min($name, $min) ?? Errors::get_error_len_max($name, $max); } private static function get_error_enumerate(string $name, array $valid_values) { if (!in_array($_POST[$name], $valid_values)) { return Form::to_bg($name) . ' не е измежду ' . implode(', ', $valid_values) . '!'; } } private static function get_error_int(string $name) { if (!is_numeric($_POST[$name])) { return Form::to_bg($name) . " не е число!"; } elseif (floor($_POST[$name]) != $_POST[$name]) { return Form::to_bg($name) . " не е цяло число!"; } elseif ($_POST[$name] <= 0) { return Form::to_bg($name) . " не е положително число!"; } } private $messages; public function __construct() { $this->messages[Form::Name] = Errors::get_error_submitted(Form::Name) ?? Errors::get_error_len(Form::Name, 2, 150); $this->messages[Form::Teacher] = Errors::get_error_submitted(Form::Teacher) ?? Errors::get_error_len(Form::Teacher, 3, 200); $this->messages[Form::Description] = Errors::get_error_submitted(Form::Description) ?? Errors::get_error_len_min(Form::Description, 10); $this->messages[Form::Group] = Errors::get_error_submitted(Form::Group) ?? Errors::get_error_enumerate(Form::Group, array( 'М', 'ПМ', 'ОКН', 'ЯКН')); $this->messages[Form::Credits] = Errors::get_error_submitted(Form::Credits) ?? Errors::get_error_int(Form::Credits); } public function get_messages() { return array_filter($this->messages, function ($m) { return !is_null($m); }); } } $errors = new Errors(); $messages = $errors->get_messages(); if (!empty($messages)) { echo json_encode( array( "success" => false, "errors" => $messages ), JSON_UNESCAPED_UNICODE ); } else { echo json_encode(array("success" => true)); }