Глава 11. Лабораторная работа «Разработка web-приложения в среде Dreamweaver»

Содержание

11.1. Основы динамического web-сайта
11.1.1. Начало
11.1.2. Выбор серверной модели
11.2. Установка Apache, PHP, MySQL, phpmyAdmin
11.2.1. Установка Apache
11.2.2. Установка СУБД MySQL
11.2.3. Настройка MySQL
11.2.4. Конфигурирование Apache
11.2.5. Установка PHP
11.2.6. Настройка PHP
11.2.7. Тестирование
11.2.8. Если тест не прошёл
11.2.9. Установка сценария phpMyAdmin
11.3. Создание  первого динамического приложения
11.3.1. Настройка
11.3.2. Регистрация
11.3.3. Создание страницы ввода
11.3.4. Создание страницы вывода
11.3.5. Резюме
11.4. Перемещение данных между страницами
11.4.1. Протокол HTTP
11.4.2. Получение данных из URL-адреса
11.4.3. Отправка данных при помощи гиперссылок
11.4.4. Установка и считывание файлов cookie
11.4.5. Резюме
11.5. Создание приложения для расчета стоимости путешествий
11.5.1. Cоздание страниц
11.5.2. Создание формы
11.5.3. Получение, обработка и отображение данных
11.5.4. Мое имущество
11.5.5. Создание серверного сценария для проверки формы
11.5.6. Создание условной области
11.5.7. Резюме
11.6. Базы данных в сети
11.6.1. Создание БД
11.6.2. Подключение к базе данных
11.6.3. Извлечение наборов записей и отображение информации из базы данных
11.6.4. Резюме
11.7. Приложение для расчета стоимости
11.7.1. Создание динамически наполняемого списка
11.7.2. Фильтрация наборов записей
11.7.3. Добавление динамических данных в сценарий расчета
11.7.4. Резюме
11.8. Фильтрация и отображение данных
11.8.1. Подготовка страницы ввода
11.8.2. Динамическое формирование URL-адресов
11.8.3. Подготовка страницы вывода
11.8.4. Наполнение страницы динамическими данными
11.8.5. Добавление динамических изображений и форматирование численности населения
11.8.6. Поиск данных внешней таблицы при помощи SQL
11.9. Создание разделов с информацией о путешествиях
11.9.1. Создание наборов записей из объединенных таблиц
11.9.2. Создание разделов с информацией о путешествиях
11.9.3. Добавление изображений и атрибутов alt
11.9.4. Реализация постраничного вывода наборов записей
11.9.5. Передача данных другим приложениям
11.10. Аутентификация пользователей
11.10.1. Создание страниц для регистрации
11.10.2. Создание страницы доступа
11.10.3. Активация управления сессиями
11.10.4. Ограничение доступа на страницы
11.10.5. Резюме
11.11. Управление содержанием при помощи форм
11.11.1. Создание административного раздела
11.11.2. Создание интерфейса формы
11.11.3. Использование переменных сессии и скрытых полей для отслеживания пользователей
11.11.4. Вставка записи
11.11.5. Резюме

В главе использованы материалы [DW].

11.1. Основы динамического web-сайта

11.1.1. Начало

Если на мгновение отвлечься от особенностей сайта Enisey Tours, описанных в предыдущих уроках, будет легко понять ряд принципов, которые важны для разработки динамического сайта. Один из них – это отделение структурной разметки от дизайна. К этому моменту за структурную разметку страниц отвечает XHTML-код, а за их внешний вид – каскадные таблицы стилей. Другой принцип – сочетание двух различных типов документов (HTML-страницы и CSS-файла), в результате чего появляется новый документ, непохожий на исходные. Эти принципы являются системообразующими при разработке динамичных веб-сайтов.

Для того чтобы понять это взаимодействие и подготовиться к будущим заданиям, уделим время анализу отношений между тремя различными источниками информации, из которых формируется каждая веб-страница: контентом (текстом, картинками и т.д.), логической структурой (иерархическим построением элементов структуры документа, например, заголовками и обычным текстом) и оформлением (цветом, размером шрифтов, расположением и другими визуальными эффектами).

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

В результате изменений, проведенных в предыдущих уроках взаимосвязь изменилась, а конкретно, внешний вид документа был отделен от его структуры и контента. Информация о внешнем виде теперь содержится в CSS-файле. Содержимое документа расположено в виде текста внутри разметки XHTML, отображающей логическую структуру документа. Только при объединении XHTML- и CSS-документов формируется итоговая страница. Эта новая взаимосвязь представлена на второй схеме вверху следующей страницы.

Рисунок 11.1. Взаимосвязь между контентом, логической структурой и офрмлением

Взаимосвязь между контентом, логической структурой и офрмлением

Теперь в эту взаимосвязь будет добавлен еще один уровень, еще мощнее и значимее, чем переход от HTML к XHTML и CSS. Его суть заключается в том, что при добавлении на страницу сведений из базы данных, оно отделяется от структурных компонентов документа. Это означает, что все три уровня – внешний вид, логическая структура и контент – становятся практически независимыми друг от друга, то есть при существенном изменении на одном из уровней не требуется вносить правки на других. Взаимосвязь (и основной план для всей книги) представлена на схеме вверху следующей страницы.

HTML не позволяет отделить контент от логической структуры документа. Даже в ключевой пятой версии (XHTML 1) язык разметки HTML, в значительной мере, предназначен для разметки открытого текста. Он не может выполнять сценарии, вычислять значения выражений, производить математические расчеты, взаимодействовать с базой данных или обмениваться с пользователем информацией. Тем временем, для отделения логической структуры от контента порой необходимо использовать все эти возможности и даже больше. Для выполнения всех этих задач с помощью HTML требуются дополнительные средства, и для этого идеально подходят технологии, выполняемые на стороне сервера – Microsoft ASP, Macromedia ColdFusion MX и PHP.

Рисунок 11.2. Взаимосвязь между контентом, логической структурой и офрмлением

Взаимосвязь между контентом, логической структурой и офрмлением

Примечание. Язык стилей XSLT (eXtensible Stylesheet Language for Transformation – расширяемый язык стилей для преобразования) представляет усиленный вариант CSS и способен создавать циклы, преобразовывать данные и многое другое. Одна из самых полезных его особенностей – это возможность конвертировать один тип XML-документов (например, язык XML, разработанный для внутреннего применения) в другой (в частности, стандартный тип XML-документов для передачи другим), и наоборот. Несмотря на свои полезные функции, XSLT не настолько эффективен и гибок, как приложения, выполняемые на стороне сервера, разработанные при помощи ASP, ColdFusion или PHP.

Серверные технологии (ASP, ColdFusion, PHP и другие, к примеру, JSP и ASP.NET) способны выполнять программные задачи, в частности, вычисление значения выражений, проведение математических расчетов и выполнение сценариев. Вдобавок, они могут взаимодействовать с источниками данных, включая базы данных, структурированные текстовые файлы и, в некоторых случаях, данные XML-документов. Ряд функций связан исключительно с сетью, например, с возможностью собирать данные, присланные пользователем и управлять информацией, которая отправляется ему обратно.

Но здесь есть одна загвоздка. Браузеры могут обрабатывать только HTML, CSS и JavaScript, а серверные сценарии они не способны обрабатывать (под серверными сценариями подразумевается код, написанный на ASP, ColdFusion, PHP и т. п.). Поэтому серверные сценарии выполняются на сервере, а затем пересылаются браузеру. Все, что сервер отправляет браузеру, должно быть предварительно преобразовано в стандартный HTML-код.

Проще говоря, для того чтобы страница с динамическим содержимым отобразилась в браузере, следует запустить ее на сервере, способном выполнить код. Это и есть главное отличие от стандартных HTML-страниц, которые отображаются в браузере, независимо от их расположения. Если открыть в Internet Explorer или Netscape любую HTML-страницу из папки Lesson04/Start, то она отобразится должным образом. Если попытаться открыть страницы из папки Lesson04/Complete, то окажется, что они не открываются (или открываются в Dreamweaver MX и не открываются в браузере). Браузер не распознает непонятный для него код и отказывается открывать файл. Именно поэтому для просмотра окончательной версии использовался сайт, размещенный по адресу http://www.allectomedia.com, а не файлы с компакт-диска.

Обычно, когда речь идет о серверах в сети, под сервером подразумевается компьютер, на котором хранится HTML-файл. Правильнее называть его веб-сервером. К самым популярным веб-серверам относятся Apache, управляемый операционными системами Unix/Linux или Mac OS X, и Microsoft Internet Information Services (IIS) под управлением Windows.

Помимо веб-серверов, для отправки динамических данных применяются и другие виды серверов, в частности, серверы баз данных (например, MySQL или Microsoft SQL Server) или серверы приложений. Сервер приложений выполняет серверные сценарии. ColdFusion, по существу, является сервером приложений. Сервер приложений, выполняющий сценарии ASP, встроен в IIS, то есть IIS – это гибрид веб-сервера и сервера приложений. PHP – это сервер приложений, который устанавливается в качестве модуля на сервер Apache.

11.1.2. Выбор серверной модели

Итак, существует несколько распространенных серверных языков. Это знание порождает логичный вопрос, естественный для тех, кто только начинает заниматься разработкой динамичных сайтов, а именно: "Какую серверную модель следует использовать?". В приведенном ниже списке описаны основные функции, а также "плюсы" и "минусы" каждой технологии.

  1. Aсtive Server Pages (ASP). ASP – это технология, разработанная Microsoft для создания динамичных веб-сайтов. Технология соединяет IIS- и PWS-серверы (соответственно Internet Information Services для Windows 2000 and XP и Personal Web Server для Windows 98) с языком VBScript (Visual Basic Script). Второй язык, используемый в ASP, – JScript –представляет собой реализацию корпорацией Microsoft языка JavaScript. Технология ASP бесплатна и встроена в IIS- и PWS-серверы. Это означает, что каждый пользователь Windows, разобравшись в настройках, имеет возможность бесплатно разрабатывать сайты на основе технологии ASP. Правда, для тех, у кого нет опыта в программировании, язык VBScript может показаться довольно сложным. В настоящее время ASP постепенно вытесняется более разрекламированной технологией ASP.NET (см. ниже).

  2. ColdFusion. ColdFusion – это серверная технология, разработанная компанией Macromedia. Ее синтаксис, основанный на тегах, гораздо проще, чем синтаксис VBScript, а код значительно более компактный. Большинство разработчиков считают ее самой подходящей из всех серверных моделей. Объективно говоря, ColdFusion представляет собой мощный язык, намного ускоряющий разработку динамичных сайтов. С выходом Macromedia ColdFusion MX 6.1 заметно увеличилось быстродействие, которое оставляло желать лучшего в прежних версиях. Недостаток технологии ColdFusion заключается в том, что ее использование является платным, хотя стоимость окупается повышением производительности. Установка и настройка ColdFusion осуществляются невероятно просто.

  3. PHP Hypertext Processor (PHP). Технология, в названии которой используется рекурсивный акроним PHP, довольно быстро развивается по ряду причин. Это проект с открытым исходным кодом, а, кроме того, он является бесплатным и хорошо сочетается с другими замечательными свободно распространяемыми продуктами, такими как веб-сервер Apache и система управления базами данных MySQL. Код четвертой версии PHP 4, используемой в этой книге, по сложности сравним с ASP, хоть и несколько проще. В появившейся недавно пятой версии языка, в большей степени, задействован объектно-ориентированный подход и, как следствие, он намного сложнее для начинающих (хотя значительно удобнее и эффективнее для опытных программистов). Один, общий для всех программных продуктов с открытым исходным кодом, недостаток заключается в том, что установка и настройка связки PHP-Apache-MySQL может оказаться непростым делом.

  4. ASP.NET. ASP.NET является частью платформы .NET и отвечает за создание веб-приложений. Это новая мощная технология для реализации быстродействующих и эффективных веб-разработок. Как и предшествующая технология ASP, ASP.NET запускается на любом сервере Microsoft IIS, если на нем установлены бесплатные расширения .NET. Но с учетом принципов своей работы и архитектуры ASP.NET отличается от ASP, ColdFusion и PHP. Вне зависимости от уровня профессионализма и опыта разработчика (даже если он работал с ASP) для эффективной работы с ASP.NET требуется определенная подготовка. ASP.NET поддерживает многочисленные языки программирования, но самыми популярными являются VisualBasic.NET и C#.

  5. Java Servlet Pages (JSP). Технология разработки динамичных веб-сайтов JSP основана на языке Java. Для интерпретации кода требуется Java-сервер (такой, например, как J2EE). Технология JSP отличается впечатляющей скоростью откликов на запросы и невероятной эффективнойстью. Пожалуй, до появления .NET она была самой мощной технологией, да и сейчас вполне может "померяться силами" с .NET. Но, опять же, код JSP очень сложен для тех, кто только приступает к разработке динамичных веб-сайтов.