- •Серверное программирование
- •Предисловие
- •Введение в серверное web-программирование
- •Пассивные и активные серверы Web
- •Программы cgi, схема их работы
- •Язык создания cgi-сценариев — php
- •Контрольные вопросы
- •Обработка на сервере запросов с клиентской машины
- •Запчасти от Занифа
- •Комментарии к коду формы
- •Особенности синтаксиса языка php
- •Методы передачи информации в серверную php-программу
- •Метод post
- •Метод get
- •Варианты передачи данных серверной программе с разных элементов формы
- •Проверка данных, введенных в форму
- •Разработка и отладка локального сайта с помощью локального сервера
- •Система Денвер
- •Установка Web-сервера на локальном компьютере
- •Структура папок локального Web-сервера
- •Порядок создания интерактивного сайта
- •Контрольные вопросы
- •Лабораторные работы
- •Запчасти от Занифа Форма заказа
- •Последовательность выполнения работы
- •Задание 2
- •Задание 3
- •Задание 4
- •Обзор терминов и понятий из области серверного web-программирования
- •Типы данных php
- •Тестовые задания
- •Серверное Web-программирование. Язык серверного Web-программирования php
- •Типы данных
- •Операторы
- •Функции
- •Литература
- •Интернет-ресурсы
Проверка данных, введенных в форму
При передаче данных из формы в серверную программу необ- ходимо бывает организовать контроль:
полноты введенных данных (все ли поля заполнены);
корректности введенных данных (например, по типу — бу- квы или числа);
корректности введенных данных (например, вхождение зна- чений данных в заданный диапазон).
С этой целью рассмотрим еще один пример.
Составим серверное Web-приложение, выполняющее следую- щие функции.
Вывод формы с запросом на ввод сторон треугольника.
После завершения ввода и нажатия кнопки типа Submit проверка на полноту ввода.
Проверка того, что в поля ввода введены только числа.
Проверка на корректность введенных значений сторон тре- угольника (должны соблюдаться известные из геометрии соотно- шения между длинами сторон треугольника).
Обеспечение в любом из предыдущих трех случаев непра- вильного ввода повторного ввода данных в форму.
Вычисление площади треугольника по формуле Герона.
Форма для решения задачи может иметь следующий вид (рис. 2.7).
Рис. 2.7. Форма для ввода исходных данных для решения задачи
Для ее реализации потребуется такой HTML-код:
Листинг 2.4
<html><title>Вычисление площади треугольника</title>
<body>
<form action="obrabotka.php" method="POST"> Введите стороны треугольника:
<br>a = <input type="text" name="a">
<br>b = <input type="text" name="b">
<br>c = <input type="text" name="c">
<p><input type="submit" value="Вычислить">
</form></body></html>
PHP-скрипт для решения нашей задачи будет такой:
Листинг 2.5
<html><title>Вычисление площади треугольника</title><body>
<?php
$a=$_POST["a"];
$b=$_POST["b"];
$c=$_POST["c"]; if(!is_numeric($a)||!is_numeric($b)||!is_numeric($c))
{echo "Ошибка! Введены не числа или заполнены не все поля. "; echo"<a href='index.htm'>На повторный ввод</a>";
exit();}
if($a+$b<=$c||$a+$c<=$b||$b+$b<=$a)
{echo "Ошибка! Эти значения не могут быть сторонами тре- угольника. ";
echo"<a href='index.htm'>На повторный ввод</a>"; exit();}
$pp=($a+$b+$c)/2;
$s_tr=sqrt($pp*($pp-$a)*($pp-$b)*($pp-$c)); echo "Площадь треугольника = ".$s_tr;
?>
</body></html>
Разбор скрипта следует начать с 6-й строки. Она содержит ус- ловие проверки ввода числовых значений во все поля формы. Функция is_numeric($a) возвращает значение true только в том случае, если переменная $a содержит данные, и эти данные явля- ются числом. В остальных случаях (поле не заполнено или в него введены не цифры) результатом выполнения этой функции будет значение false.
Если условие в строке 6 будет выполнено, значит пользователь ввел неверные данные или что-то не ввел. Об этом ему сообщит строка 7: «Ошибка! Введены не числа или заполнены не все поля». Строка 8 выведет гиперссылку На повторный ввод. Щелчок по этой ссылке снова вызовет на экран форму для ввода исходных данных.
Вызов функции exit() в строках 9 и 13 нужен для завершения выполнения скрипта после вывода формы для повторного ввода данных.
Строка 10 содержит условие проверки корректности введен- ных длин сторон треугольника. При некорректности введенных значений строка 11 выводит сообщение: «Ошибка! Эти значения не могут быть сторонами треугольника».
Строка 12 выведет гиперссылку На повторный ввод. Щелчок по этой ссылке снова вызовет на экран форму для ввода исходных данных.
Строки 14—16 выполняются, когда во все поля формы будут введены правильные значения. Здесь вычисляется площадь тре- угольника по форме Герона и выводится результат.
