Общая проверка форм
Posted in: ОСНОВЫ HTML форм, By: admin, At: Май 15th, 2008
Прежде чем рассматривать строки кода, обсудим концепцию создания многоцелевого сценария для проверки форм. Перед тем как создавать сценарий, определим цели:
• Универсальность при проверке и обработке любых данных формы.
• Разделение кода для проверки и кода для представления формы.
• Простота использования при обработке любых типов HTML-форм.
Для достижения всех трех целей потребуется некоторое планирование (обязательный этап при создании надежных сценариев): будем надеяться, что в конце все три цели будут достигнуты.
Процессор форм работает с комбинацией скрытых элементов форм и динамических вызовов функций (см. главу 1). Эти скрытые элементы форм будут использоваться PHP-сценарием для двух целей — для обеспечения дружественного описания каждого поля элемента (в случае ошибки) и определения “обязательных” полей. Для каждого конкретного элемента формы с именем
Второй скрытый элемент формы, обрабатываемый сценарием, имеет имя 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):
endif;
Пожалуйста, заполните следующую форму {* = Required)
Теперь, когда имеется идея, как использовать сценарий проверки, самое время перейти к реальному сценарию, который будет обрабатывать форму. Проверяющий сценарий разбит на три функции add_error (), _process_form () и validate_f orm (). Функция validate_form() выполняет основную проверку, а функции add_error() и _process_f orm () являются служебными.
Leave a Reply