- •Инструменты разработки интернет-приложений
- •Введение
- •Интернет – основа интерактивного бизнеса
- •Электронный бизнес – закономерный этап инновационной спирали
- •Особенности Интернет как среды электронной коммерции
- •Основные определения
- •Этапы разработки и продвижения Интернет-проекта
- •Планирование Интернет-проекта
- •Определение контента сайта
- •Размещение сайта в Интернет
- •Регистрация в поисковых системах
- •Регистрация в рейтингах
- •Баннерная реклама
- •Обмен текстовыми ссылками
- •Массовая рассылка рекламных сообщений
- •Размещение объявлений о сайте на электронных досках
- •Рассылка в телеконференции (группы новостей)
- •Контрольные вопросы
- •Принципы работы интернет-приложений
- •Архитектура «клиент-сервер»
- •Отладка web-приложений на сервере
- •Сравнительный анализ возможностей web-технологий
- •Использование баз данных в Интернет
- •Интерактивное взаимодействие с помощью форм
- •Элементы управления формы
- •Способы передачи параметров Строка передаваемых параметров
- •Метод get
- •Метод post
- •Контрольные вопросы
- •Разработка интернет-приложений на языке php
- •Область применения языка php
- •Теги сценарияPhp
- •Константы
- •Переменные
- •Типы данных
- •Скалярные типы
- •Составные типы Массивы
- •Приведение типов
- •Управляющие конструкции
- •Операторы
- •Функции
- •Определение и вызов функций
- •Вложенные функции
- •Возврат значений из функции
- •Рекурсивные функции
- •Объекты (классы)
- •Работа с файлами
- •Стандартные функции php для работы с файлами
- •Обработка данных в нескольких файлах Использование атрибута action
- •Операторы включения файлов
- •СубдMySql
- •История созданияMySql
- •Взаимодействие с субдMySql
- •Способ хранения таблиц и баз данных
- •Типы таблиц
- •Типы данных в субдMySql
- •Стандартные функции рнр для работы с MySql
- •Соединение с сервером
- •Выбор базы данных
- •Выполнение указанного запроса
- •Извлечение информации
- •Ввод данных
- •Обработка ошибок
- •Контрольные вопросы
- •Разработка интернет-приложений в delphi
- •КонсольноеCgi-приложение
- •Использование специальных средствDelphIдля разработкиweb-приложений
- •КомпонентTWebModul
- •КомпонентTPageProducer
- •Компоненты для работы с базами данных
- •Редактирование наборов данных
- •Добавление записей
- •Удаление записей
- •Обновление записей
- •Создание и использование форм ActiveForm
- •Отладка приложений на локальном сервереWebAppDebugger
- •Обзор дополнительных возможностейDelphiдля создания сетевых приложений
- •Контрольные вопросы
- •Список литературы
- •Приложение а Листинг программы проверки переменных окружения сервера apache
- •Приложение б Поисковые системы и каталоги
- •Приложение в Службы баннерного обмена
КомпонентTPageProducer
Для упрощения формирования ответа в формате HTML в DELPHI создан целый ряд компонентов, расположенных на вкладке Internet.
TPageProducer - простейший компонент для генерации HTML-страницы. Страница может быть загружена одним из двух взаимоисключающих способов:
может быть создана в текстовом редакторе, который открывается щелчком по построителю в свойстве HTMLDoc: TStrings;
может быть сформирована из готового HTML-файла, адрес которого указывается в свойстве HTMLFile: TFileName.
В большинстве случаев необходимо динамически генерировать только некоторый фрагмент HTML-кода. Остальная часть страницы (заголовки, сопроводительная информация) остаются неизменными. Для того чтобы можно было контролировать только активное содержимое, используются шаблоны, с помощью которых можно осуществить подстановку различных значений (параметров) в текст HTML. Шаблон HTML представляет собой обычный файл HTML, в котором используются теги-шаблоны («прозрачные» теги), которые помечаются знаком #. При нахождении этого тега в составе Web-страницы активизируется событие OnHTMLTag компонента TPageProducer для замены строк шаблона. Через параметр ReplaceText возвращается строка, на которую должен быть эаменен обрабатываемый тег.
Если обработчик этого события не указан, или он не вернул конечные значения, то в результирующем потоке «прозрачные» теги будут проигнорированы, и пользователю будет передано сообщение без них.
Пример определения текущей даты и текущего времени:
Разместить компонент PageProducer1 внутри контейнера WebModul1. Нажать на построитель в свойстве HTMLDoc и в открывшемся окне прописать следующий код:
<html>
<script>
function t()
{alert("Сегодня: <#td>. Время входа на страницу: <#tm>")}
</script>
<input type=button value="Сегодня..." onClick=t()>
</html>
В обработчике события OnHTMLTag компонента PageProducer1 создать следующую процедуру:
if tagstring='tm' then
ReplaceText:=Timetostr(Now);
if tagstring='td' then
ReplaceText:=Datetostr(date);
Создать новое действие модуля для показа страницы, формируемой компонентом PageProducer1, которое выполняется по умолчанию.
Компоненты для работы с базами данных
Для генерации HTML-страниц на основе информации, извлекаемой из баз данных, предназначены следующие компоненты:
TDataSetPageProducer;
TDataSetTableProducer;
TQueryTableProducer.
TDataSetPageProducer
Данный компонент имеет единственное отличие от компонента TPageProducer – связь с набором данных осуществляется с помощью свойства DataSet. Набор данных формируется стандартными компонентами для работы с базами данных: TTable, TQuery, TADOTable, TADOQuery и т.д.
HTML-код, созданный в свойстве HTMLDoc для публикации таблицы Country из базы данных DELPHI с псевдонимом DBDEMOS, может иметь вид:
<html>
<table border=1>
<tr><th>Название</th><th>Столица</th><th>Континент</th></tr>
<tr><td><#Name></td><td><#Capital></td><td><#Continent></td></tr>
</table>
</html>
При обработке шаблона теги, имена которых совпадают с именами полей набора данных, заменяются значениями этих полей из текущей записи.
Фрагмент обработчика события OnHTMLTag для простого вывода данных может выглядеть следующим образом:
if TagString='Name' then
replaceText:=DataSetPageProducer1.DataSet.FieldByName(TagString).AsString;
Название поля в наборе данных Name совпадает с обозначением «прозрачного» тега.
Для публикации всего набора данных необходимо организовать последовательный перебор записей.
TDataSetTableProducer
Неудобства работы с компонентом TDataSetPageProducer устранены в компоненте TdataSetTableProducer. Этот компонент является своего рода генератором табличных отчетов для публикации на web-странице.
Основные свойства компонента:
Dataset: TDataSet – указывается набор данных (Table, Query, ADOTable, ADOQuery и т.п.);
Header: TString – текст перед таблицей;
Footer: TString - текст после таблицы;
MaxRows: Integer – максимальное число записей для вывода на экран.
Пример публикации информации из таблицы Country базы данных DBDEMOS, поставляемой с DELPHI:
Разместить компоненты DataSetTableProducer1 и Table1 внутри контейнера WebModul1. Установить свойство DataSet компонента DataSetTableProducer1 равным Table1.
Выполнить подключение компонента Table1 к таблице Country.db и временно активизировать её для просмотра данных.
Двойным щелчком по компоненту DataSetTableProducer1 открыть окно редактора столбцов HTML-таблицы. Отформатировать таблицу, изменяя соответствующие свойства (border, caption, bgcolor и т. д.). Установить значение false свойства Active компонента Table1.
Создать действие модуля для показа страницы, сформированной компонентом DataSetTableProducer1, выполняющееся по умолчанию. Обработчик события OnAction для созданного действия:
Table1.Open;
Response.Content:=DataSetTableProducer1.Content;
Table1.Close;
Откомпилировать приложение и проверить его работу на сервере.
TQueryTableProducer
Данный компонент имеет только одно существенное отличие от компонента TDataSetTableProducer: он может связываться только с набором данных TQuery и позволяет настраивать параметры заданного SQL-запроса в соответствии со строкой параметров, полученной с помощью HTTP-запроса, т.е. пользователь может задавать критерии выборки данных.
Пример вывода информации из таблицы Country.db базы данных DBDEMOS в соответствии с заданным в текстовом поле критерием:
Разместить компоненты QueryTableProducer1 и Query1 внутри контейнера WebModul1 и связать их, задав свойство Query компонента QueryTableProducer1.
Выполнить подключение компонента Query1 к базе данных DBDEMOS. В свойстве SQL сформировать параметрический запрос:
SELECT * FROM Country WHERE Continent=:cnt
Создать действие модуля для показа страницы, сформированной компонентом QueryTableProducer1, выполняющееся по умолчанию. Обработчик события OnAction для созданного действия:
Query1.Open;
Response.Content:=QueryTableProducer1.Content;
Query1.Close;
Сохранить проект, откомпилировать приложение и разместить исполняемый файл на сервере.
Для вызова CGI-приложения создать HTML-страницу следующего содержания:
<html>
<form method=post action= “/cgi-bin/название_файла.exe”>
Континент:  <select name= “cnt”>
<option>North America</option>
<option>South America</option>
</select>
<input type=submit value= “Показать”>
</form>
<html>
Разместить HTML-файл в каталоге WWW сервера и проверить работу CGI-приложения.