|
инга 7.4 всего лишь наличием
оператора @ внутри скобок инструкции if.
Еще раз хочу посоветовать вам включать максимальный контроль ошибок в
настройках PHP, а в спорных местах применять оператор @. Это просто, кра-
сиво, удобно. К тому же, как я уже говорил, способно в несколько раз облег-
чить отладку сценариев, не работающих по загадочным причинам.
Глава 8
Работа с данными
формы
Дойдя до этого места, я столкнулся с проблемой непростого выбора: продолжать и
дальше рассказывать о самом языке PHP или же чуть-чуть уйти в сторону и
рассмот-
реть более прикладные задачи. Я остановился на последнем. Как-никак, Web-
программирование в большей части (или хотя бы наполовину) представляет собой
как раз обработку различных данных, введенных пользователем — т. е., обработку
форм.
Пожалуй, нет другого такого языка, как PHP, который бы настолько облегчил нам
задачу обработки и разбора форм, поступивших из браузера. Дело в том, что в
язык
на самом нижнем уровне встроены все необходимые возможности, так что нам не
придется даже и задумываться над особенностями протокола HTTP и размышлять,
как же происходит отправка и прием POST-форм или даже загрузка файлов. Разра-
ботчики PHP все предусмотрели.
В седьмой главе мы довольно подробно рассмотрели механизм работы протокола
HTTP, который отвечает за доставку данных из браузера на сервер и обратно.
Впро-
чем, там было довольно много теории, так что предлагаю повторить этот процесс
еще
раз — так сказать, с прикладных позиций, а также разобрать возможности, предос-
тавляемые PHP.
Передача данных командной строки
Вначале хочу вас поздравить: сейчас мы уже знаем достаточно, чтобы начать
писать
простейшие сценарии на PHP типа "Hello world, сейчас 10 часов утра". Однако
нашим
сценариям будет недоставать одного — интерактивного взаимодействия с пользова-
телем.
Зададимся задачей написать сценарий, который принимает в параметрах имя и воз-
раст пользователя и выводит: "Привет, <имя>! Я знаю, вам <возраст> лет!".
Сначала рассмотрим наиболее простой способ передачи имени и возраста сцена-
рию — непосредственный набор их в URL после знака ? — например, в формате
name=имя&age=возраст (мы рассматривали этот прием в первой части книги).
Правда, даже программисту довольно утомительно набирать эту строку вручную.
Часть III. Основы языка PHP 144
Всякие там ?, &, %... К счастью, существуют удобные возможности языка HTML, ко-
торые, конечно, поддерживаются всеми браузерами.
Итак, пусть у нас на сервере в корневом каталоге есть сценарий на PHP под
названи-
ем hello.php. Наш сценарий распознает 2 параметра: name и age. Он должен отра-
ботать и вывести следующую HTML-страницу:
Привет, name! Я знаю, Вам age лет!
Разумеется, нужно name и age заменить на соответствующие значения. Таким обра-
зом, если задать в адресной строке браузера
http://www.somehost.com/script.cgi?name=Vasya&age=20
мы должны получить страницу с требуемым результатом.
Как только задача осознана, можно приступать к ее решению. Но прежде бывает по-
лезно решить аналогичную, но более простую задачу. Итак, как же нам в сценарии
получить строку параметров, переданную после знака вопроса в URL при обращении
к сценарию? Как было указано в первой части книги, для этого можно
проанализиро-
вать переменную окружения QUERY_STRING, которая в PHP доступна под именем
$QUERY_STRING. Напишем небольшой пример, чтобы это проиллюстрировать (лис-
тинг 8.1).
Листинг 8.1.
|
|