Общая проверка форм

Прежде чем рассматривать строки кода, обсудим концепцию создания многоцелевого сценария для проверки форм. Перед тем как создавать сценарий, определим цели:
• Универсальность при проверке и обработке любых данных формы.
• Разделение кода для проверки и кода для представления формы.
• Простота использования при обработке любых типов HTML-форм.
Для достижения всех трех целей потребуется некоторое планирование (обязательный этап при создании надежных сценариев): будем надеяться, что в конце все три цели будут достигнуты.
Процессор форм работает с комбинацией скрытых элементов форм и динамических вызовов функций (см. главу 1). Эти скрытые элементы форм будут использоваться PHP-сценарием для двух целей — для обеспечения дружественного описания каждого поля элемента (в случае ошибки) и определения “обязательных” полей. Для каждого конкретного элемента формы с именем описание такого поля хранится в скрытом элементе под именем _desc. В следующем примере определяется текстовое поле с именем phone, имеющее поле дополнительного описания для использования в сценарии:


Второй скрытый элемент формы, обрабатываемый сценарием, имеет имя required (обязательные) и должен содержать список разделенных запятыми обязательных элементов. Например, если существуют три обязательных элемента, имеющие значения атрибута NAME — phone, email и fax, то элемент required будет выглядеть следующим образом:

Атрибут VALUE каждого видимого элемента до;гжен быть связан с соответствующим значением в суперглобалыюй переменной (то есть $_&ЕТ[ 'myvar' ]), хотя это не является обязательным. Это делается для того, чтобы если форма отправлена, но не об работана по какой-либо причине (например, в случае ошибки), пользователь не мог бы ничего изменить.
Следующий вопрос, которого нужно костгуться — как обрабатывать ошибки, во.тнн-кающие после отправки формы. В сценарии проверки это делается с помощью двух глобальных PHP-переменных — $form_errors и Sform_errorlist. Когда проверяющий сценарий пытается проверить переданные ему данные на наличие ошибок, он создает эти две переменные. Первая переменная Sform_errors — это логическая величина, означающая появление ошибки при проверке, а вторая Sform_errorlist — массив сообщений об ошибках, возникающих во время проверки. Как использовать эти переменные для отображения ошибок при проверке, зависит от пользователя, однако можно рекомендовать следующий метод:
if(Sform_errors): /* При обработке формы возникает ошибка */


    foreach($form_errorlist as $val):
    endif;
    Если поместить этот код непосредственно перед вызовом формы, результатом будет аккуратно сформатированный список всех ошибок, возникших при выполнении проверки формы.
    Полный пример HTML-формы, использующей созданный нами сценарий проверки, приведен в листинге 5.7.
    Листинг 5.7. Пример формы с использованием сценария проверки
    if(5form_errors): /* при обработке формы возникает ошибка */

      foreach($form_errorlist as Sval):
    • echo Sval; endforeach;

    endif;
    Пожалуйста, заполните следующую форму {* = Required)






    Ваше ФИО:
    * Номер телефона:


    * Номер факса:


    Теперь, когда имеется идея, как использовать сценарий проверки, самое время перейти к реальному сценарию, который будет обрабатывать форму. Проверяющий сценарий разбит на три функции add_error (), _process_form () и validate_f orm (). Функция validate_form() выполняет основную проверку, а функции add_error() и _process_f orm () являются служебными.

    Tags: , ,

    Related posts


Leave a Reply


Средства косметические: кондиционеры. Кондиционер с установкой 14000 р.