Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Серверное программирование.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
591.14 Кб
Скачать
      1. Проверка данных, введенных в форму

При передаче данных из формы в серверную программу необ- ходимо бывает организовать контроль:

  • полноты введенных данных (все ли поля заполнены);

  • корректности введенных данных (например, по типу — бу- квы или числа);

  • корректности введенных данных (например, вхождение зна- чений данных в заданный диапазон).

С этой целью рассмотрим еще один пример.

Составим серверное Web-приложение, выполняющее следую- щие функции.

  1. Вывод формы с запросом на ввод сторон треугольника.

  2. После завершения ввода и нажатия кнопки типа Submit проверка на полноту ввода.

  3. Проверка того, что в поля ввода введены только числа.

  4. Проверка на корректность введенных значений сторон тре- угольника (должны соблюдаться известные из геометрии соотно- шения между длинами сторон треугольника).

  5. Обеспечение в любом из предыдущих трех случаев непра- вильного ввода повторного ввода данных в форму.

  6. Вычисление площади треугольника по формуле Герона.

Форма для решения задачи может иметь следующий вид (рис. 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 выполняются, когда во все поля формы будут введены правильные значения. Здесь вычисляется площадь тре- угольника по форме Герона и выводится результат.