
- •Язык php
- •Динамические сайты
- •Преимущества обработки страниц на стороне сервера
- •Современные технологии обработки страниц на стороне сервера
- •Active Server Pages (asp)
- •Java Servlets и jsp
- •Контрольные вопросы
- •Возможности языкаPhp ОбработкаHtmLформ
- •ГенерированиеHtmLстраниц
- •Взаимодействие с субд
- •Поддержка большого количества библиотек
- •Контрольные вопросы
- •Создание динамических страниц Создание простейшегоPhp-скрипта
- •Рнр и код, выполняемый на стороне клиента
- •Взаимодействие с пользователем
- •Контрольные вопросы
- •Синтаксис языкаPhp Типы данных
- •Константы
- •Объявление и инициализация переменных
- •Преобразование типов
- •Арифметические операторы
- •Унарный оператор
- •Оператор конкатенации строк
- •Сокращенная запись для присвоениязначений переменным
- •Операторы сравнения
- •Условные операторы
- •Функции пользователя
- •Массивы
- •Работа с файлами
- •Контрольные вопросы
- •Рнр иMySql Обработка и хранение структурированных данных
- •Динамические сайты, использующие базу данных
- •Построение реляционной базы данных
- •Продавцы
- •Заказчики
- •SqLзапросы к реляционной базе данных
- •Insert into salespeople values(1001,'Иванов','Москва',0.12);
- •Insert into customers values(2001,'Белкин','Москва',100,1001);
- •Insert into orders values(3008,4723.00,'2002-10-05',2006,1001);
- •Особенности реализацииMySql
- •ВзаимодействиеPhp иMySql
- •Контрольные вопросы
- •Разработка системы "Прайс-лист"
- •Постановка задачи
- •Принципы функционирования программного комплекса
- •Разработка структуры базы данных
- •Проектирование системы администрирования
- •Проектирование генератора прайс-листа
- •Контрольные вопросы
Какую работу нужно написать?
ГенерированиеHtmLстраниц
Одним из основных достоинств динамических сайтов является возможность создания/изменения страниц в зависимости от потребностей пользователя. Рассмотрим два примера, иллюстрирующие данные возможности.
Первый пример иллюстрирует процесс генерирования HTML страницы. Предположим, что на сервере установлена PHP-программа (обычно программы, написанные на языке PHP называют скриптами), которая при вызове формирует HTML страницу, содержащую текущую дату и время. Фактически, данная программа состоит из вызова трех функций языка PHP:
получение текущего времени от сервера
формирование строки вида "ДД.ММ.ГГГГ ЧАС:МИН"
Вывод сообщения, состоящего из слов "Сейчас" и сформированной строки с текущей датой и временем
Как видно из представленного выше примера, страница формируется на основе логики, заложенной разработчиком в PHP-скрипт. При этом никаких дополнительных данных от пользователя не требуется. Однако чаще всего скрипт должен сгенерировать страницу на основе данных, полученных от пользователя.
Рассмотрим пример, являющийся комбинацией двух предыдущих примеров – скрипта обработки формы и скрипта, выдающего информацию о текущей дате и времени. Сценарий работы такой программы выглядит следующим образом. На первом этапе пользователь вводит в поле формы свое имя и отправляет данные на сервер нажатием кнопки ввода. После получения данных PHP-скрипт:
вычисляет и соответствующим образом форматирует информацию о текущей дате и времени (как было описано в предыдущем примере)
формирует строку, состоящую из слов "Здравствуйте" и имени пользователя.
формирует строку, содержащую слова "Сейчас" и информацию о дате и времени.
Выводит строку приветствия
Выводит строку с информацией о времени
Таким образом, если пользователь введет в текстовое поле формы строку "Иван Иванов" и нажмет кнопку ввода, то в результате получит HTML страницу, состоящую из следующих слов: "Здравствуйте, Иван Иванов Сейчас 10.11.2002 18:00"
Более подробно создание PHP-скриптов будет рассмотрено в главе "Создание динамических страниц".
Взаимодействие с субд
Одним из основных достоинств PHP является возможность взаимодействия с большим количеством СУБД. PHP может обращаться к базам данных как через стандартный интерфейс ODBC, так и при помощи встроенных функций, работающих на уровне API самих СУБД. Ниже приведен список наиболее распространенных СУБД, поддержка которых реализована в PHP:
dBase
Informix
InterBase
mSQL
MySQL
Oracle
PostgreSQL
Sybase
Использование возможностей СУБД при построении динамического сайта позволяет гибко управлять информацией, располагаемой на страницах сайта. В качестве примера рассмотрим пример с каталогом интернет - магазина. Предположим, что каталог содержит классификатор, выполненный в виде меню. Элементы классификатора (меню) позволяют отображать на странице список товаров, доступных для покупки в данной категории. Например, меню состоит из элементов "Телевизоры", "Холодильники", "Стиральные машины". Рассмотрим, каким образом работает данный сайт.
На первом этапе разработчик сайта должен определить структуру базы данных. Главное условие заключается в том, чтобы разработанная структура наиболее полно соответствовала выбранной предметной области и позволяла хранить информацию обо всех типах объектов. Например, для каждого из перечисленных типов товаров характерны такие атрибуты, как цена, габариты, название фирмы-производителя, список технических характеристик и т.д. Определившись со структурой данных, разработчик заполняет базу данных в соответствии с номенклатурой, предлагаемой магазином.
Суть второго этапа заключается в разработке PHP-приложения, предоставляющего посетителям магазина возможность манипулирования данными (различные выборки и сортировки), хранимыми в базе данных.
По условиям поставленной задачи, пользователь должен получать список товаров, имеющихся в продаже. Выбор категории товаров осуществляется при помощи пунктов меню.
Программа, предоставляющая подобный сервер состоит из блока построения запроса к СУБД и блока формирования списка на основе полученных данных. При выборе одного из пунктов меню PHP-скрипт получает информацию о том, данные о товарах какой категории необходимо выбрать. На основе этой информации строится SQL-запрос к СУБД. После того, как СУБД возвращает ответ на запрос, скрипт формирует страницу, содержащую список товаров выбранной категории.
При подобном подходе происходит разделение данных и кода программы, что значительно облегчает как процедуру управления данными, так и процесс модификации программы. Фактически, можно добавлять, удалять, модифицировать данные в базе данных (при условии, что структура базы данных остается неизменной) и это никак не отразится на работоспособности программы. С другой стороны, мы можем вносить изменения в программу (например менять принципы оформления списка товаров) и при этом сами данные никаких изменений не требуют.