Карачев - Библиотека, Заря, статьи, обзоры.
Разделение представления и проверки
Обратите внимание, что в листинге 5.11 комментариями выделены "пользовательская" и проверочная части. Как уже упоминалось, одной из задач сценария проверки является отделение кода представления формы от проверочного кода. Взглянув на листинг 5.11, легко заметить, что весь код можно разделить на три отдельных файла: один — для HTML-кода, второй для пользовательской функциональности и третий —для проверочного сценария формы. Для убедительности давайте разместим все, что находится внутри комментариев, касающихся проверочного сценария, в файле formvalidate .php, a HTML-форму — в файле html form. php. Расположив оставшийся код и несколько дополнительных включений в третьем файле, получим листинг 5.12 (для экономии места комментарии удалены).
Листинг 5.12. Разделение HTML-кода и проверочного кода <?php include_once('formvalidate.php') ; $method~= &$_GET; if(isset($method['submit'])) { validate_form($method); } function email_validate($data, $desc) { $regex = "Л [a-zO-9\ .__-] +@+ [a-zO-9\ ._-] +\ . + [a-z] {2, 3}$/i"; if(preg_match($regex, $data) != 1) return "Поле '$desc' не верно."; return true; } function process_form($data) { $msg = "Форма {$_SERVER['PHP_SELF']}". " отправлена со следующими значениями: \n\n"; foreach($data as $key=>$val) { $msg .= "$key => $val\n"; } mail("joeuser@somewhere.com", "отправка формы", $msg)"; } include("htmlform.php");
Очевидно, что размещение сценария в нескольких файлах делает его лучше управляемым. Более того, он может быть применен к любой HTML-форме простым включением строки formvalidate.php в начале сценария и расположением HTML-кода формы в конце сценария. Такой метод проверки форм идеален, и вы можете использовать его в своих разработках. Полезное для студентов: Новые сочинения по русскому языку, большой пакет по всем темам и категориям.
|
Категория: Технологии | Добавил: witkom (16.01.2011)
|
Просмотров: 778
|
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация |
Вход ]