- •Серверное программирование
- •Предисловие
- •Введение в серверное web-программирование
- •Пассивные и активные серверы Web
- •Программы cgi, схема их работы
- •Язык создания cgi-сценариев — php
- •Контрольные вопросы
- •Обработка на сервере запросов с клиентской машины
- •Запчасти от Занифа
- •Комментарии к коду формы
- •Особенности синтаксиса языка php
- •Методы передачи информации в серверную php-программу
- •Метод post
- •Метод get
- •Варианты передачи данных серверной программе с разных элементов формы
- •Проверка данных, введенных в форму
- •Разработка и отладка локального сайта с помощью локального сервера
- •Система Денвер
- •Установка Web-сервера на локальном компьютере
- •Структура папок локального Web-сервера
- •Порядок создания интерактивного сайта
- •Контрольные вопросы
- •Лабораторные работы
- •Запчасти от Занифа Форма заказа
- •Последовательность выполнения работы
- •Задание 2
- •Задание 3
- •Задание 4
- •Обзор терминов и понятий из области серверного web-программирования
- •Типы данных php
- •Тестовые задания
- •Серверное Web-программирование. Язык серверного Web-программирования php
- •Типы данных
- •Операторы
- •Функции
- •Литература
- •Интернет-ресурсы
Программы cgi, схема их работы
Для того чтобы сервер Web мог вести диалог с пользователем, был разработан механизм программных расширений сервера, на- зываемый стандартным шлюзовым интерфейсом Common Gate- way Interface (CGI). Это часть Web-сервера, которая может взаи- модействовать с другими программами, выполняющимися на этом Web-узле. И в этом смысле CGI является шлюзом для пере- дачи данных, полученных от клиента.
Общая схема работы CGI состоит из следующих этапов:
получение (через протокол HTTP) информации с клиент- ских машин (от пользователя);
обработка полученной информации. В некоторых случаях CGI-программа не может обработать информацию (ответить на запрос) самостоятельно. Например, запрос может потребовать обращения к некоторой базе данных, которую CGI-программа читать не умеет. В этом случае CGI-программа на основании по- лученной информации формирует запрос к компетентной про- грамме, выполняющейся на том же Web-сервере;
отправка обработанной информации обратно в виде нового документа HTML.
При этом для ввода информации со стороны пользователя в документ HTML встраиваются формы, содержащие такие органы управления, как текстовые поля, списки, переключатели, кнопки и т.д.
Обычно одна из кнопок (типа Submit) предназначена для за- вершения ввода данных в форму. Когда пользователь заполнит всю форму, он нажимает эту кнопку, и данные из полей формы передаются программе CGI. Обработав данные, программа CGI динамически формирует новый документ HTML с результатами обработки и отправляет его обратно пользователю. При необхо- димости программа CGI может обращаться к СУБД.
Этот
процесс проиллюстрирован на рис. 1.1.
Рис. 1.1. Взаимодействие браузера и сервера Web
Таким образом, программы CGI позволяют Web-серверу вести диалог с пользователем.
Что представляет собой программа CGI?
Это обычное консольное приложение, работающее в среде операционной системы сервера Web и осуществляющее обмен данными через стандартные потоки ввода и вывода.
Такое приложение загружается в оперативную память сервера и запускается только по явному запросу пользователя, когда к не- му выполняется обращение из документа HTML (с помощью тега типа <form action=“obrabotka.php” method = “post”>). Здесь CGI- программа — это “obrabotka.php”. Окончив обработку запроса пользователя, программа CGI завершает свою работу и выгружа- ется из памяти сервера.
Программа CGI работает на сервере как отдельный процесс. В рамках этого процесса она способна, в частности, обращаться к базам данных для выборки или обновления информации.
Язык создания cgi-сценариев — php
Для использования технологии CGI программа Web-сервер должна удовлетворять определенным критериям — «поддерживать CGI». CGI-программы, запускаемые на Web-сервере, представлены не двоичным кодом (т.е. скомпилированным файлом), а текстовым. Поэтому для их выполнения требуется программа-интерпретатор того языка, на котором написана эта программа. Такой интерпрета- тор включается в состав Web-сервера и вызывается им при необхо- димости заняться выполнением программного кода.
CGI-сценарий (CGI-скрипт) — программа (в текстовом виде), предназначенная для исполнения на Web-сервере. Для создания CGI-скриптов можно использовать любой язык программирова- ния — важно лишь, чтобы на том Web-сервере, где предполагает- ся эту программу запускать, имелся интерпретатор этого языка.
Препроцессор — программа (интерпретатор), работающая со- вместно с Web-сервером, которая просматривает все или некото- рые файлы, выдаваемые Web-сервером посетителям, и выполняет над ними определенные действия в зависимости от содержащихся в этих файлах инструкций. Примером препроцессора является РНР (первоначальная расшифровка была Personal Home Page).
От других CGI-языков РНР отличается в лучшую сторону прежде всего своей простотой.
При создании программы на РНР нет необходимости учиты- вать все те многочисленные мелочи, которые усложняют жизнь программистам на Perl или C++ [9]. Синтаксис языка РНР допус- кает его легкое освоение как начинающим программистом, так и тем, кто уже использовал ранее какой-либо язык программирова- ния. Можно целиком и полностью сосредоточиться на решаемой задаче и не думать о мелочах.
Именно это и делает РНР наиболее подходящим вариантом для Web-дизайнера.
Одним из достоинств РНР является возможность без особых затруднений работать с серверами баз данных. Благодаря РНР использование базы данных на сайте стало едва ли не элементар- ным. Для работы с подавляющим большинством типов баз дан- ных в РНР есть встроенные функции, поэтому теперь достаточно лишь установить на Web-сервере программу работы с базой дан- ных (наиболее часто используется бесплатная MySQL — http://www.mysql.com) и включить в текст PHP-сценария команды работы с нею.
