11.5.5. Создание серверного сценария для проверки формы

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

Весь процесс выглядит следующим образом. Пользователь заполняет форму и нажимает кнопку Submit. На сервер отправляется запрос на страницу tourprice_processor.php. В верхней части этой страницы расположен небольшой сценарий PHP, проверяющий правильность заполнения формы. Если в обоих полях формы введены числа, страница обрабатывается и отправляется клиенту в обычном порядке. Если хотя бы одно поле не содержит число, пользователь перенаправляется обратно на страницу tourprice.php, на которой появляется скрытая ранее область с сообщением об ошибке.

274. Откройте файл tourprice_processor.php. В начале документа перед сценарием расчета стоимости оставьте немного места для нового сценария.

275. Создайте сценарий, который проверяет, содержатся ли числа в переменных формы.

Пример 11.6. Сценарий проверки чисел в переменных формы

<?php
if (is_numeric($_POST['numAdults']) == false or
is_numeric($_POST['numChildren']) == false)
?>


276. Добавьте внутреннее действие, которое выполняется, если в результате логической операции возвращается значение true. C отступом в пустой строке после инструкции if

{

header("Location: tourprice.php?error=notnumeric");

exit;

}

277. Сохраните файл tourprice_processor.php и загрузите его на сервер. Протестируйте страницу tourprice.php.

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