Как вывести ошибки при заполнении html формы

Как вывести ошибки при заполнении html формы

Индекс материала
Как вывести ошибки при заполнении html формы
Как вывести ошибки при заполнении html формы стр.2
Все страницы

Когда возникает проблема с данными, введенными в html форму, генерируемую PHP скриптом необходимо вывести сообщения об ошибках причём желательно это сделать рядом с проблемными полями, вместо генерации сообщения об ошибке в начале формы. Также по-правильному нужно сохранить значения, которые пользователь напечатал в html форме. Иначе вы рискуете отбить охоту регистрироваться у вас на сайте, предлагая пользователю по десять раз вводить одно и тоже.

Один из вариантов это сделать сохранить сообщения в массиве $errors, индексируя их по именам полей.


  if (!pc_validate_zipcode($_REQUEST['zipcode']))
  {
    $errors['zipcode'] = 'This is is a bad ZIP Code. ZIP Codes must
                          have 5 numbers and no letters.';
  }

При повторном выводе html формы, если при вводе пользователь где то накосячил, можно показывать каждую ошибку с помощью поля, помещая в него исходное значение:


    echo $errors['zipcode'];
$value = isset($_REQUEST['zipcode']) ? htmlentities($_REQUEST['zipcode']) : '';
echo "<input type=\"text\" name=\"zipcode\" value=\"$value\">";

Если пользователи сталкиваются с ошибками при заполнении длинной html формы, то можно повысить общее удобство и простоту использования html формы, четко выделяя место, где нужно исправить ошибки. Объединение всех ошибок в одном массиве дает много преимуществ.

Прежде всего, нетрудно определить, нашлись ли в результате проверки на достоверность информации какие-либо элементы, требующие исправления; просто используйте PHP функцию count($errors). Если она вернёт число отличное от нуля, то значит есть проблемы.

Использовать такой метод проще, чем следить за этим событием с помощью отдельной переменной, особенно, если поток или PHP скрипт сложный или реализуется с помощью множества функций. В примере ниже показана функция проверки на правильность pc_validate_form(), которая использует массив $errors.


    function pc_validate_form()
    {
      if (! pc_validate_zipcode($_POST['zipcode']))
      {
        $errors['zipcode'] = "ZIP Codes are 5 numbers";
      }      
      if (! pc_validate_email($_POST['email']))
      {
        $errors['email'] = "Email addresses not correct!";
      }
      return $errors;
    }



Добавить комментарий


Защитный код
Обновить






Кто на сайте
Сейчас 26 гостей онлайн