Example #1
0
 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
 }