private static function form_data_validation() { self::$formConfig = Form_config::form_config_get(); //Создаем объект "поле формы" с именем $id и набором свойств $properties = array(), в соответствии с конфигурацией формы $formconfig foreach (self::$formConfig as $id => $properties) { $field = Field::field_get($id, $properties); //Начинаем обрабатывать поле //Контролируем поля "areaCode", "phoneNum", "email", для которых свойство "required" может нуждаться в изменении из-за переключателя 'feedback' в форме if ($id === "areaCode" || $id === "phoneNum" || $id === "email" || $id === "feedback") { if (!isset($_POST['feedback'])) { self::$errMessage .= Form_config::err_text_get(3, $field->fieldLabel); } else { if ($_POST['feedback'] === "phone") { $field->required = 1; if ($id === "email") { $field->required = 0; } if ($id === "feedback") { $field->value = "Телефон"; } } else { if ($id === "feedback") { $field->value = "E-mail"; } } } } //Теперь всё готово к началу верификации данных, полученных из формы на сайте //Проверяем, существуют ли для текущего объекта соответствующие данные в полученной из формы информации if (!isset($_POST[$id])) { /*Если поле не существует во входных данных*/ self::error_reg(4, Form_config::prop_value_get($id, "fieldLabel")); } elseif (utf8_strlen($_POST[$id]) === 0 && $field->required === 1) { //Если не заполнено обязательное поле self::error_reg(5, Form_config::prop_value_get($id, "fieldLabel")); //проверяем на предмет выхода за min или max длину } elseif (utf8_strlen($_POST[$id]) < $field->minLength && $field->required === 1) { // Если обязательное поле короче "minLength" self::error_reg(6, Form_config::prop_value_get($id, "fieldLabel")); } else { if (utf8_strlen($_POST[$id]) > $field->maxLength) { //Если длинее "maxLength", то обрезаем $value = substr(trim($_POST[$id]), 0, $field->maxLength); } else { $value = trim($_POST[$id]); } //Пишем информацию в массив для последующей записи в архивный файл self::$sourceData[$id] = $value; //Проверяем данные с помощью регулярных выражений $match = preg_match($field->regexp, $value, $matches); if ($match = 0 && $field->required === 1) { //если совпадений не найдено и текущее поле - обязательное, то регистрируем ошибку self::error_reg(7, Form_config::prop_value_get($id, "fieldLabel")); } elseif ($match = 0 && $field->required === 0) { //если совпадений не найдено и текущее поле НЕ обязательное, $field->value = ""; // то присваиваем свойству пустую строку } else { if ($id === "subj") { $field->subjcode = $matches[0]; $field->value = $field->{$matches}[0]; } elseif ($id !== "feedback") { $field->value = htmlspecialchars(stripslashes(trim($matches[0])), ENT_QUOTES, 'UTF-8', true); } } } //Конец верификации данных для текущего поля } //end foreach }