П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 4064 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6717 раз(а).

Учебник HTML.
Просмотров 3688 раз(а).

Руководство по PHP5.
Просмотров 5958 раз(а).

Хостинг через призму DNS.
Просмотров 4766 раз(а).

Подборка текстов стандартных документов.
Просмотров 56212 раз(а).

Учебник PHP - Самоучитель
Просмотров 3654 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 8238 раз(а).

Внешние атаки...
Просмотров 4507 раз(а).

Учебник PHP.
Просмотров 3149 раз(а).

SSI в примерах.
Просмотров 156 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





ГЛАВА 10. Формы

Проверка ошибок

Обработка пользовательских данных дает осмысленный результат лишь в том случае, если данные имеют правильную структуру. Проверить достоверность введенных данных невозможно, однако вы можете проверить их целостность(например, убедиться в том, что адрес электронной почты соответствует стандартному шаблону). Хотя для проверки данных часто применяется технология 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 убеждается в том, что поля имени и адреса электронной почты не остались пустыми, а также проверяет правильность синтаксиса вве-, денного адреса. Если в результате каких-либо проверок в форме обнаруживаются ошибки, программа выводит соответствующие сообщения и отображает форму заново — при этом вся введенная ранее информация остается в форме, благодаря чему пользователю будет проще внести исправления. Если вывести пустую форму и предложить пользователю заполнить ее заново, он может отправиться за необходимым товаром или услугой в другое место.

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru