<? include "header. php"? >
Включает в страницу текст файла header. php.
Практически все страницы приложения сформированы следующим образом:
Создается пустой файл нужной страницы с тэгами <html>, <head> и <title>;
К нему подключается файл header. php, в котором хранится скрипт, отображающий заголовочную часть с логотипом и названием сайта;
Далее подключается файл body_left. php, с содержимым левой части страницы.
Выводится основная часть страницы в виде НазваниеСтраницы_right. php;
Формируется нижняя строка из файла buttom. php.
В свою очередь файл НазваниеСтраницы_right. php содержит фреймы для вывода данных. Каждый фрейм включает заголовочную часть из файла body_list_header. php, затем выводится текст заголовок, нижняя часть строки заголовка body_list_after_header. php, текст фрейма и нижняя часть фрейма body_list_footer. php. Внешний вид фрейма, который используется для вывода данных на страницах приложения, представлен на рисунке 2. 20.
Рисунок 2.20 - Фрейм для вывода данных
Для вывода данных используется функция echo - это функция, которая отправляет браузеру текст. Между словом и символом конца строки "; " помещается строка, которая заключается в кавычки. Текст и тэги HTML, находящиеся внутри кавычек, отправляются браузеру. Если в тексте используется символ кавычки или прямой слэш, то перед ними помещается еще один слэш, т.е./” или // Таким образом выводятся и другие служебные символы.
Листинг некоторых основных страниц приложения приведен в приложении Б.
Чаще всего серверные скрипты используются для обработки результатов заполнения форм. Например, в гостевой книге посетитель вводит данные в форму, которая затем обрабатывается на сервере. Отвечая на какой-либо вопрос пользователь, аналогично, устанавливает значение определенных полей формы.
Каждое поле ввода имеет атрибут NAME, которое будет передано в обработчик вместе со своим значением. Существует два метода передачи данных: GET и POST. Их отличие состоит в том, что при использовании метода GET значения полей присоединяются к URL, указанному в атрибуте ACTION. Происходит это таким образом:
http: // localhost/action. php? имя=значение&... имя=значение
Схема состоит в том, что для каждого элемента, имеющего имя (NAME), создается пара NAME=VALUE, где VALUE- конкретное значение соответствующего элемента формы. Для кнопок и переключателей передается только значение выбранного элемента. Указанные выше пары соединяются в виде символьных последовательностей, причем в качестве разделителей пар используется символ &. Сформированный таким образом набор символов пересылается как часть URL-запроса и носит название строка запроса.
Внутри символьной последовательности могут содержаться символы, недопустимые в составе URL-запроса. Известно, что ASCII-символы кодируются двумя шестнадцатиричными цифрами. Поэтому недопустимые в составе запроса символы заменяются триадами из знака % и 2-х цифр шестнадцатиричной системы счисления, соответствующих этому символу.
Пары "имя=значение" создаются для каждого элемента ввода, для которого указано имя атрибутом NAME. В случае использования метода POST значения полей передаются в заголовке запроса к серверу. Формат передачи при этом методе нам не интересен, значения передаются "незаметно" для обычного пользователя.
При исполнении скрипта на языке PHP создаются переменные с именами, соответствующими именам полей и содержащие соответствующие значения.
Cуществует специальный тип поля HIDDEN. Это поле, которое не выводится на экран, но, если ему присвоено имя атрибутом NAME, значение его передается в форму. Это бывает полезно, например, когда один обработчик может производить не одно, а несколько действий. С помощью такого поля можно задать тип действия, которое мы хотим произвести с данными формы.
В таблице 2.14 перечислены все элементы ввода, которые используются в приложении.
Таблица 2.14 - Описание файловой структуры приложения
№п/п | Тип | Описание |
1 | TEXT | Поле ввода текста |
2 | CHECKBOX | Кнопка-флажок. Используется для выбора варианта |
3 | SUBMIT | Кнопка, которая инициирует вызов обработчика формы |
4 | HIDDEN | Скрытое поле ввода текста |
Теперь рассмотрим, как значения и состояния этих элементов передаются в обработчик.
Введенное значение в поле TEXTпередается в виде: имя=значение. В обработчике значение можно получить из переменной $имя. Для поля HIDDEN передача параметров осуществляется аналогично.
CHECKBOX - если флажок установлен, то передается значение on, если флажок не установлен, то переменная не передается вообще. Таким образом, установку флажка в скрипте можно проверить, сравнив значение переменной $имя с "on". Переменная и строка выглядят аналогично элементу типа TEXT.
SUBMIT - кнопка SUBMIT, как ни странно, тоже может передавать значение в обработчик. Значение устанавливается из атрибута VALUE. Все остальное аналогично полю типа TEXT.
PHP предоставляет еще одну интересную особенность. Мы можем каждому элементу присвоить имя переменной массива.
В этом случае мы сможем получить доступ к значениям, обращаясь к элементам ассоциативного массива:
$personal ["name"] и $personal ["email"].
Кроме того, если включена директива PHP <? php_track_vars? >, то, при передаче значений, будут заполнены массивы $HTTP_GET_VARS и $HTTP_POST_VARS, для соответствующих методов передачи переменных в обработчик.
Этапы взаимодействия данного приложения с web-сервером следующие:
Пользователь с помощью браузера формирует запрос на получение документа и через сеть Интернет посылает его на Web-сервер.
Сервер извлекает документ (форму) из своей базы данных и через сеть Интернет посылает его пользователю (клиенту).
Клиент с помощью браузера заносит в документ необходимые данные и вновь направляет его через сеть web-серверу.
Сервер с помощью CGI-программы анализирует полученный документ и (при необходимости) направляет его для обработки в соответствующее приложение.
Приложение, используя CGI-переменные, обрабатывает направленный в него документ и возвращает серверу выходную информацию.
Сервер передает выходную информацию клиенту.
Клиент (web-браузер) получает выходную информацию, которая отображается у него и может быть оценена и использована.
Таким образом, пользователь (клиент) имеет возможность не только получать информацию (документы) от сервера, но и передавать свои данные на сервер, где с помощью соответствующего приложения, установленного на Web-узле, эти данные будут обработаны, а клиент получит результаты обработки данных. Такая система взаимодействия обеспечивает принципиально более высокий уровень интерактивности в системе клиент-сервер, и реализацию дистанционной обработки данных клиента.
CGI-программа создает динамический (виртуальный) гипертекстовый документ или же формирует ссылку на уже имеющийся документ и дополняет его передачей результатов. Чаще всего для передачи данных от удаленного пользователя Web-серверу используются HTML-формы. Именно с их помощью организуется диалог между браузером пользователя и Web-сервером удаленного узла сети. Такой диалог позволяет осуществить важнейшие операции в сети Интернет.
Web-сервер, получив URL-запрос от клиента, присваивает переменной среды QUERY_STRING значение строки запроса и вызывает CGI-программу, указанную в первой части запроса. Затем CGI-программа может обратиться к переменной среды QUERY_STRING, чтобы осуществить обработку закодированной в ней информации.
Для подключения к серверу баз данных необходимо задать ряд параметров:
$SERVER = "localhost"; // Имя сервера
$USER = "root"; // Имя пользователя
$PASSWD = "geijr"; // Пароль
$DB = "rli_test"; // Имя базы данных "RLI_test"
$REPLY = "andrewnik@list. ru";
mysql_createdb ($DB); // Создание базы данных
Для выбора и работы с созданной базой данных сначала пытаемся присоединиться к серверу: