Конспект по начертательной
геометрии
Начертательная геометрия
Практикум решения задач
Геометрические основы
Инженерная графика
ЕСКД
Каталог графических примеров
Архитектура ЭВМ
Информатика и
информационные технологии
Конспект лекций по ядерной физике
ТОЭ
Физические законы механики
Волны оптика
Электротехника
Общая электротехника
Решение задач по
электротехнике
Язык программирования
MATLAB
Расчет электрических цепей
Моделирование цепей
переменного тока
Дифференциальные уравнения
Вычислительныe системы
Вычислительные комплексы
Электротехнические материалы
Теория конструктивных
материалов
Учебник PHP
Турбо Паскаль
Встроенный ассемблер
Turbo Vision
Java
Примеры программирования
на Java
Примеры скриптов
История искусства 18-19 век
Проверка ошибок

Обработка пользовательских данных дает осмысленный результат лишь в том случае, если данные имеют правильную структуру. Проверить достоверность введенных данных невозможно, однако вы можете проверить их целостность (например, убедиться в том, что адрес электронной почты соответствует стандартному шаблону). Хотя для проверки данных часто применяется технология JavaScript, могут возникнуть проблемы с несовместимостью браузеров. Поскольку код РНР выполняется на стороне сервера, вы всегда можете быть уверены в том, что проверка данных формы даст нужный результат (конечно, при условии правильности вашей программы).

При обнаружении ошибки в данных необходимо сообщить об этом пользователю и предложить внести исправления. Существует несколько возможных решений, в том числе простой вывод сообщения об ошибке и предложение альтернативных вариантов (например, если пользователь выбирает имя, которое уже было выбрано другим пользователем). В этом разделе рассматривается процедура проверки и вывода сообщений,

Пример 6: вывод информации о пустых или ошибочно заполненных полях формы

Ни один разработчик сайта не захочет раздражать пользователя невразумительными сообщениями об ошибках в данных - особенно если пользователь запрашивает дополнительную информацию о товаре или оформляет покупку! Чтобы пользователь понял, какие поля формы остались пустыми или были заполнены неверно, сообщения должны быть четкими и конкретными.

Мы последовательно проверяем все поля формы и убеждаемся в том, что они не остались пустыми. Там, где это возможно, проверяется правильность структуры введенных данных. Если проверка прошла успешно, мы переходим к следующему полю; в противном случае программа выводит сообщение об ошибке, устанавливает флаг, который позднее используется для повторного отображения формы, и переходит к следующему полю. Процедура повторяется до тех пор, пока не будут проверены все поля формы (листинг 10.8).

Листинг 10.8. Проверка данных формы и вывод сообщений об ошибках

<html>

<head>

<title>Listing 10-8</title>

</head>

<body bgcolor="#ffffff" text="#000000" link="#cbda74" vlink="#808040" alink="#808040">

<?

// Создать форму

$form = "

<form action=\"Listing10-8.php\" method=\"post\">

<input type=\"hidden\" name=\"seenform\" value=\"y\">

<b>Give us some information!</b><br>

Your Name:<br>

<input type=\"text\" name=\"name\" size=\"20\" maxlength=\"20\" value=\"$name\"><br>

Your Email:<br>

<input type=\"text\" name=\"email\" s1ze=\"20\" maxlength=\"40\" value=\"$email\"><br>

<input type=\"submit\" value=\"subscribe!\">

</form>":

// Заполнялась ли форма ранее?

if ($seenform != "у"):

print "$form";

// Пользователь заполнил форму. Проверить введенные данные, else :

$error_flag = "n";

// Убедиться в том. что поле имени содержит информацию

if ($name == "") :

print "<font color=\"red\">* You forgot to enter your name!

</font> <br>":

$error_flag = "y";

endif:

// Убедиться в том. что поле адреса содержит информацию

if ($email == "") :

else :

print "<font color=\"red\">* You forgot to enter your email !

</font> <br>"

$error_flag = "y";

// Преобразовать все алфавитные символы в адресе

// электронной почты к нижнему регистру

$email = strtolower(trim($email)):

// Убедиться в правильности синтаксиса

// адреса электронной почты

if (! @eregi('^[0-9a-z]+'.

'([0-9a-z-]+\.)+'.

'([0-9a-z]){2.4}$'. $email)) :

print "<font color=\"red\">* You entered an invalid email address!

</font> <br>" :

$error_flag = "y";

endif;

endif;

// Если флаг ошибки $error_flag установлен.

// заново отобразить форму

if ($error_flag == "у") : print "$form";

else :

// Обработать данные пользователя

print "You entered valid form information!";

endif;

endif;

?>

</body>

</html>

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

за необходимым товаром или услугой в другое место.

Начертательная геометрия и инженерная графика, перспектива