Проверка данных

При разработке приложений весьма важной является проверка введенных данных на корректность и отображение адекватных сообщений об ошибках вво­да при их наличии.

В этой и следующих статьях рассматриваются вопросы проверки корректности данных различных типов.

В предыдущей статье дан­ные в текстовом поле использовались для проверки факта повторного вызова скрипта. Подобный прием не всегда является корректным, так как поля данных могут быть не обязательными для заполнения. Вместо этого для этой цели часто используется скрытое поле. Если поле не определено, следовательно, это пер­вый запуск скрипта, и необходимо сформировать заглавную страницу. В коде это выглядит следующим образом:

code: #php
if (isset($_REQUEST['seen_already'])) {
 
} else {
  display_form();
}

Если форма для ввода информации уже была заполнена, следует произвести проверку введенных данных на корректность. Для этого предлагается использо­вать функцию validate_data, которая при обнаружении ошибок заносит их опи­сание в глобальный массив $errors. Если после вызова validate_data массив $errors не является пустым (что легко проверить при помощи функции count), осуществляется вывод всех сообщений и повторное отображение формы для ввода данных для того, чтобы пользователь имел возможность исправить допущенные ошибки. Если же ошибок не обнаружено, можно перейти к обработке данных:

code: #php
$errors = array();
if (isset($_REQUEST['seen_already'])) {
  validate_data();
  if(count($errors) > 0) {
    display_errors();
    display_form();
  } else {
    process_data  ();
  }
} else {
  display_form();
}

В следующих статьях будут рассмотрены различные реализации функции для проверки данных validate_data, в зависимости от структуры формы. Функция display_errors предназначена для отображения всех сообщений об ошибках и может выглядеть следующим образом:

code: #php
function display_errors() {
  global $errors;
 
  foreach ($errors as $err) {
    echo $err.'<BR>';
  }
}

Функция process_data для обработки данных может иметь любой вид в зави­симости от решаемой прикладной задачи. Наконец, функция display_form ото­бражает форму для ввода данных. Форма может содержать любую комбинацию по­лей, но в любом случае в ней должно присутствовать скрытое поле seen_already, которое используется для определения факта повторного запуска скрипта:

code: #php
function display_form() {
  echo "<FORM METHOD='POST'  ACTION='phpvalidate.php'>";
  echo "<INPUT TYPE='SUBMIT' VALUE='OK' >" ;
  echo "<INPUT TYPE='HIDDEN' NAME='seen_already' VALUE='data'>";
  echo "</FORM>";
}  
Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи: