Оглавление

advertisement
Оглавление
Введение ............................................................................................................... 2
Цель работы ......................................................................................................... 5
Глава I. Анализ технологий создания активных Web-серверов ................... 6
Глава II. Программная реализация .................................................................. 13
2.1. Выбор сервера базы данных и разработка структуры данных ........... 13
2.2. Cистема администрирования для Web-приложения ........................... 16
2.3. Система аутентификации административного приложения. ............. 18
2.3. Система пользовательского интерфейса............................................... 20
Заключение ........................................................................................................ 22
Список использованной литературы ............................................................... 24
Приложение ....................................................................................................... 25
2
Введение
Электронный бизнес становится одной из самых актуальных
проблем современности.
Электронная коммерция с использованием Web–страниц является
одним из наиболее бурно развивающихся направлений всемирной сети.
Еще года два–три назад большинство сайтов коммерческих предприятий
носили исключительно рекламный характер, а сегодня любая уважающая
себя компания предоставляет возможность совершения сделок купли–
продажи в интерактивном режиме.
В белорусском Интернете уже есть свои Интернет-магазины.
Супероборотов своим владельцам они пока не приносят, но уже реально
работают.
На сегодняшний день в Интернет-каталоге Shop.by зарегистрировано
185 Интернет-магазинов. Для примера: в 2000 г. на том же Shop.by
числилось лишь 63 сайта.
По степени автоматизации торгового процесса способы организации
Интернет-магазина делятся на:
 Web-витрины - совокупность каталога, системы навигации и
системы оформления заказа с последующей передачей менеджеру
для
дальнейшей
обработки.
Этот
вариант
приемлем
для
специализированных магазинов с небольшим ассортиментом.
 собственно Интернет-магазины - к web-витрине подключается
торговая система и осуществляется полный торговый цикл; Эти
способы позволяют реализовать различные уровни обслуживания
покупателей.
Белорусские электронные магазины в основном специализируются
на продаже книг, видео- и аудиозаписей, компьютеров и комплектующих.
В последнее время ассортимент товаров торговых точек расширился и к
ним
добавились
бытовые
приборы,
фармацевтическая
продукция,
3
автозапчасти, подписка
на периодические издания,
подарочная
и
сувенирная продукция и т.д.
Вне всякого сомнения, перечисленные товарные категории обладают
рядом схожих характеристик, что позволяет им лидировать в продажах
через Интернет. А именно:
1. Покупки
этих
товаров
относятся
к
категории
наиболее
продуманных, совершаемых лишь после получения о них
достаточно полной информации. Это означает, что, чтобы
совершить хорошую покупку, покупателю необходимо получить
максимальную информацию о товаре.
2. Решение о покупке данных товаров можно принять, не потрогав и
не повертев в руках сам продукт (исключением является лишь
одежда).
Для их
покупки
вполне достаточно
аннотаций,
приведенных на сайте.
3. Каждая товарная категории включает массу товаров-аналогов,
конкурентов. Прежде чем совершить покупку, необходимо
выбрать из сотен аналогичных продуктов, что, несомненно,
быстрее сделать в режиме он-лайн, чем лично объезжать десятки
магазинов.
Торговое общество с ограниченной ответственностью «Фирма
Верасень» является официальным представителем Краковской станции
растениеводства и овощного семеноводства «ПОЛЯН».
Сегодняшняя стратегия «Фирмы Верасень» заключается в том,
чтобы предлагаемые семена попали непосредственно к клиенту. Фирму
интересуют мнения о сортах. Удовлетворяют ли сорта овощных культур
кулинарным вкусам, а в случае цветов – эстетическим ощущениям?
Универсальным
средством
взаимодействия
интерактивного
взаимодействия с клиентами является Internet. Предоставляемый товар
удовлетворяет характеристикам (приведенным выше), которые позволяют
4
лидировать в продажах через Internet, поэтому существует возможность
создания Internet-магазина.
5
Цель работы
Целью данной курсовой работы являлось создание Internet- магазина
для торгового общества с ограниченной ответственностью “Фирма
Верасень”.
Для достижения поставленной цели необходимо было решить
следующие задачи:
1. Произвести анализ существующих технологий создания активных
серверов Web, и осуществить выбор технологии для реализации
Internet-магазина, исходя из возможностей, скорости, стоимости.
2. Осуществить выбор сервера базы данных и разработать структуру
данных.
3. Разработать систему администрирования для Web-приложения,
связанную с эксплуатацией магазина и обработкой покупок.
4. Разработать для пользовательского приложения следующие
системы:
 навигации
 совершения покупки
 отправки заказа менеджеру
5. Произвести анализ системы аутентификации средствами PHP.
6
Глава I. Анализ технологий создания активных Web-серверов
Довольно часто в той или иной периодике встречаются обзоры или
результаты
тестирования
ограничиваются
различного
субъективными
ПО.
оценками.
Как
правило,
Практически
они
всегда,
интерпретация результатов тестирования носит несколько однобокий
характер и часто выглядит как «выпячивание» достоинств собственной
технологии. Данная глава посвящена сравнению производительности
нескольких, наиболее популярных серверных языков вместе с Webсерверами, обеспечивающими их работу (данную связку: интерпретатор на
стороне сервера и собственно сервер в дальнейшем будем называть
серверной технологией).
Рассматриваемые технологии
 Resin 1.1 b2 (internal web server)
 Orion 0.7.6b (internal web server)
 Tomcat (internal web server)
 Resin 1.1 b2/Apache 1.3.9
 mod_php 4.0b2
 mod_perl 1.21
 JRun 2.3.3/Apache 1.3.9
 ServletExec 2.2/Apache 1.3.9
 CGI using Perl
Для
анализа
производительности
серверной
использовались результаты тестов, приведенные в [8],
технологии
также схожие
результаты представлены [9,10].
Для
анализа
производительности
рассматривались
результаты
следующих тестов (таблица 1):
File. В данном тесте производилось чтение и передача небольшого
(311 байт) статичного файла — т.е. тестирования серверной технологии в
качестве обычного веб-сервера.
Servlet. Для измерения «накладных расходов» работы серверной
технологии использовалась тестовая программа "Hello, World". Другими
словами, как бы эффективно ни была написана ваша серверная программа,
7
вы никогда не получите более высокие показатели производительности,
нежели в этом тесте.
Hello. Тест, практически во все аналогичный тесту Servlet, с тем
отличием, что применялся для тестирования PHP, Perl`a и ASP, тогда как
Servlet относился лишь к Java серверной технологии.
Loop. Тест выводящий "Hello, World" в цикле суммарным объемом
около 64 кб. Этот тест, особенно в сравнении с тестом Big дает довольно
грубое представление о производительности базовых функций.
Big. В данном тесте производилась отправка сравнительно большого
(около 64 кб) массива статичной информации.
DB. Простейший запрос к базе данных (два запроса Select). Дает
оценочное представление о производительности цепочки веб-сервер —
серверная технология — сервер базы данных (точнее драйвер базы данных
— сервер базы данных, даже если драйвер встроенный). Для JAVA тестов
во второй части, первое число в таблице означает результаты тестирования
с использованием драйвера org.gjt MySql. Второе число — результат
тестирования с применением драйвера Caucho. В общем случае данный
метод двойного тестирования демонстрирует важность драйвера базы
данных для быстродействия системы в целом.
Cache. Тот же тест что и DB, но в заголовке страницы указывался
«срок давности» (Expires) плюс 15 секунд от времени исполнения
Под клиентом следует понимать C программу, выступающую в роли
браузера. В задачу программы входит отправка запроса, включающего
типичные заголовки, а также прием ответа сервера.
Таблица
1.
Производительности
серверных
технологий
(единицы
измерения - операций в секунду)
Технология
File Servlet Hello Big DB Cache
Resin/IBM
694
628
575
108 161
645
Resin/JDK1.2
509
451
480
74
474
85
8
Resin/Apache/IBM
550
390
417
55
104
438
Orion/JDK1.2
488
186
360
69
88
72
Mod_php/Apache
561
291
52
117
117
Mod_perl/Apache
550
365
92
111
111
59
59
ServletExec/Apache/IBM 536
98
103
100
94
20
50
50
67
28
7
7
25
25
24
24
Tomcat/IBM
129
CGI perl/Apache
550
JRun/Apache/JDK1.2
531
69
37
Tomcat/JDK1.2
37
62
37
12
Для однопользовательских систем результаты тестов представлены в
таблице 2.
Во всех тестах безусловным лидером является Resin/IBM, отчасти
благодаря встроенному веб-серверу, отчасти некоторого назначения
данной серверной технологии именно под высокую скорость исполнения.
Собственно первую причину подтверждают несколько худшие результаты
Resin/Apache/IBM,
где
вместо
специализированного
используется
универсальный веб-сервер. Mod_php и Mod_perl идут практически
вровень, попеременно от теста к тесту меняясь местами, за исключением
теста
"Big"
где
Mod_php
показал
почти
вдвое
меньшую
производительность. CGI perl значительно уступает во всех тестах, кроме
"File", где он показал результат аналогичный Mod_perl/Apache.
Также рассмотрим результаты тестов многопользовательской
системы, представленные в таблице 3.
Данные тестовые испытания проводились по несколько другой
схеме, исходными остались аппаратная платформа (RedHat 6.0 ) и сетевая
инфраструктура, к исследуемым серверным технологиям добавлен ASP,
(но ввиду некоторых проблем при обращении к серверу MySQL данный
тест для ASP не проводился), модифицирована клиентская программа —
для эмуляции «одновременной работы нескольких пользователей»,
9
некоторой внутренней модификации подверглись и сами тесты но их суть
их осталась прежней.
Таблица 2. Тест «Один пользователь»
(единицы измерения - операций в
секунду)
Технология
File Servlet Hello Loop Big
Resin/IBM
571
550
558
36
83 131/268
603
Resin/Apache/IBM
505
373
386
36
65 122/202
382
Resin/IIS
730
348
364
32
46
--
--
mod_perl/Apache
497
n/a
322
11
74
98
--
ASP/IIS
727
n/a
317
1.5
31
--
--
mod_php/Apache
504
n/a
308
13
36
130
--
Resin JS/Apache/IBM 484
n/a
254
16
61
33/118
376
DB
Cache
Таблица 3. Тест «Четыре пользователя»
(единицы измерения - операций в
секунду)
Технология
File Servlet Hello Loop Big
Resin/IBM
1455
1187
1553
46
96 176/367
1561
Resin/Apache/IBM
880
564
575
38
91 135/237
586
Resin/IIS
1619
417
422
35
48
--
--
mod_perl/Apache
801
n/a
385
11
97
93
--
ASP/IIS
1654
n/a
385
1.4
80
--
--
mod_php/Apache
869
n/a
342
13
44
141
--
DB
Cache
Оценить серверную технологию по результатам приведенных тестов
сложно. В первую очередь, это связано с отсутствием даже не
общепризнанных стандартов для тестирования серверных технологий, а
репрезентативной информации о приоритетах программистов (будь-то
скорость выполнения, модульность или малая требовательность к объему
10
памяти, — а ведь все это практически взаимоисключающие приоритеты).
До сих пор нет статистики по структуре используемых программ. Именно
по этим причинам о производительности можно судить используя
примитивные сценарии.
Произведем анализ результатов. С одной стороны, созданные
условия позволяли оценить чистую производительность серверной
технологии благодаря созданным тепличным условиям т.к. тестовые
программы это единственное, что выполняли сервер и клиент. С другой
тестирование проводилось для выяснения производительности всего
комплекса, а не только интерпретатора. Это привело к тому, что лидером
оказался Resin/JDK (во многом благодаря встроенному Web-серверу, по
своей сути быстрому, но с малыми возможностями, с другой стороны и
сама технология сервлетов сказывается — для данных тестовых сценариев
тезис «память в обмен на производительность» актуален). Однако,
превосходство не распространяется на базы данных — доступ к ним из
PHP и Perl, как правило, быстрее, чем из их Java оппонентов. В принципе
это означает, что в текущих реализациях JDBC драйверов еще есть
возможности для оптимизации, а сам Java тут не причем, что
подтверждают высокие показатели демонстрируемые при использовании
Caucho.
Также
заслуживает
внимания
динамика
изменения
производительности серверной технологии при росте числе обращений.
Perl при росте всех показателей продемонстрировал некоторое падение
производительности при обращении к базе данных, тогда как для PHP,
отмечается хоть и небольшой, но все же рост. Таким образом, PHP берет
верх при файловых операциях и при работе с базами данных. Perl лидирует
при обращении к большому объему информации с небольшим объемом
собственно вычислений — (тест Big это в основном отправка данных в
выходной поток). И Perl и PHP идут практически вровень при выполнении
11
теста Loop, что означает примерно одинаковые показатели скорости
выполнения простейшего сценария.
Теперь рассмотрим ASP. В тесте "File" опередил все серверные
технологии, однако в остальных тестах производительность упала.
Большая производительность в некоторых тестах может объясняется
скорее не преимуществами серверной технологии сколько особенностями
операционной системы (в смысле меньшими системными издержками NT
в сравнении c RedHat). С другой стороны пользователю нет дела до этого,
поэтому можно сказать, что, несмотря на посредственные показатели ASP
выглядит вполне достойно. Впрочем вопрос выбора между ASP и Perl/PHP
по критерию скорости вообще практически никогда не ставится —
серверная технология выбирается в зависимости от операционной системы
и предпочтений программистов/администраторов.
Делать выводы о скорости той или иной серверной технологии
сложно.
Скорость зависит от выбранной операционной системы, от
используемого Web-сервера, от режима работы сервера, от объема
используемой оперативной памяти, необходимой для исполнения каждого
сценария, от структуры программы и прочих факторов.
ASP и PHP представляются хорошим решением для Webприложения среднего уровня. Однако тесная интеграция PHP с MySQL,
которая также настроена для Web-приложений подобного уровня, где
нагрузка при выборке и закачке данных важнее поддержки транзакций,
выделяет PHP на первое место.
Сегодня PHP является: чрезвычайно удобным, недорогим в
разработке и эффективным. По своей производительности последние
версии РHP значительно обгоняют таких монстров как JSP и ASP,
особенно для приложений среднего и малого масштаба. Он оснащен
хорошими средствами работы с базами данных, средствами обработки
XML. PHP - идеальное решение для минимального по стоимости
корпоративного или презентационного сервера.
12
Основываясь на результатах приведенных тестов, а также исходя из
стоимости хостинга, было принято решение использовать PHP для
реализации Internet-магазина.
13
Глава II. Программная реализация
2.1. Выбор сервера базы данных и разработка структуры данных
В процессе реализации поставленной задачи я создал два варианта
Internet-магазина:
 с использованием базы данных MySQL.
 с использованием текстовых файлов.
Хранить информацию на сервере можно несколькими способами.
Первый – с использованием баз данных. Очень удобный способ хранения
больших
объемов
информации,
когда
необходимо
организовывать
выборки, сортировать информацию по различным параметрам и т. д. Если
же необходимо обработать небольшой объем информации, да еще и без
каких–то ухищрений, то подойдет второй способ
– размещение
информации в файлах.
Как сказано в документации, поставляемой с пакетом PHP,
разработчики этого языка считают поддержку баз данных самым важным и
значительным достоинством PHP. Язык PHP включает поддержку
следующих баз данных: InterBase, mSQL, MySQL, Sybase, Adabas D,
ODBC, dBase, и др.
Одно только наличие поддержки ODBC делает PHP совместимым
практически с любой базой данных. Было принято решение использовать
MySQL потому, что это широко распространенная база данных, она легко
доступна и чаще других используется в практике разработки PHPпрограмм. MySQL настроена для Web-приложений среднего уровня.
Для хранения данных о товаре используется таблица card, в которой
задается название продукта, цена, стоимость, путь к маленькому
изображению товара (предпросмотр), путь к большому изображению
товара,
описание
продукта,
идентификатор
категории
к
которой
принадлежит товар.
Для быстрого поиска нужного товара используется его группировка.
14
Все семена разделены на три группы Овощи, Цветы, Травы. В каждой
группе существуют категории, которые содержат соответствующий товар.
descid
thid
sum
proc
cid
name
price
thid
maxpict
minpict
text
int(11)
int(11)
int(11)
int(11)
int(11)
blob
blob
int(11)
blob
blob
blob
thid
text
type
int(11)
blob
int(11)
tid
text
nid
news
date
int(11)
blob
int(11)
blob
blob
В связи с небольшим ассортиментом товара, с одинаковой
характеристикой, можно обойтись без использования базы данных. Во
втором варианте Internet-магазина использовались текстовые файлы.
Многие считают, что этот способ хранения данных нельзя назвать ни
безопасным, ни производительным. Однако нарушение безопасности
возможно только при просчетах разработчиков, а производительность баз
данных возрастает только при большом количестве записей (порядка
10000). Ассортимент предоставляемых фирмой семян едва достигает 300
сортов. Поэтому представляется возможным организация хранения данных
в текстовых файлах. Использование файлов позволяет администрировать
магазин с помощью протокола FTP.
Для быстрого поиска товара, в магазине предусмотрена его
группировка по видам продукции. Файл
groups.ovo содержит строки,
задающие номер группы и ее название. Описание товара находится в
файле с именем XXXYYY.ovo, где XXX – номер группы, YYY – номер
продукта в группе. Изображение товара хранится в файле с именем
XXXYYYZ.jpg, где при Z=1,3 маленькие изображения, при Z=2,4 большие
изображения.
Для описание товара используются следующие поля:
15
Title – название продукта
Create – производитель
Tsena – цена продукта
Fasov – количество или вес продукта в упаковке
text1 – краткое описание товара
text2 – полное описание товара
В магазине организованы консультации. Посетитель может задать
интересующий его вопрос, который отправляется на E-mail менеджера.
Менеджер размещает ответ в файле, который содержится в папке cons.
Имя файла формируется как дата его создания в формате ГГММДД,
расширение - номер раздела Internet-магазина, к которому относится
вопрос. Файл имеет два поля:
Quest – заданный посетителем вопрос
Ansver- ответ на вопрос
16
2.2. Cистема администрирования для Web-приложения
Системе администрирования включает функции:
 редактирования
 новостей,
 категорий,
 продукции,
 скидок на продукцию
 добавления
 новостей,
 категорий,
 продукции,
 скидок на продукцию
 удаления
 новостей,
 категорий,
 продукции,
 скидок на продукцию
 функция смены пароля.
Функции администрирования
производятся с использованием
основных операций с базами данных. Прежде чем приступить к работе с
базой данных, сценарий PHP устанавливает соединение с сервером
MySQL, выбирает нужную базу в качестве текущей. Далее с помощью SQL
запросов обновляются таблицы, выбираются из них нужные данные в
соответствии с заданным критерием.
Установка соединения с сервером MySQL в Internet-магазине
производится с помощью обычного соединения, которое закрывается
автоматически при завершении сценария PHP.
Пример соединения базы данных и выборки из таблицы type
<? $connection=mysql_connect(localhost,"","");
17
if(!$connection)
{
echo "<br>"."<h1>Error connection MySQL server</h1>";
}
else
mysql_select_db("ds") or die("Error connection <b>nagorny<b>
database.");
$query="select * from type";
$result=mysql_query($query);
?>
Доступ
к
системе
администрирования
включает
систему
аутентификации.
Заказы
менеджера.
посетителей
для
обработки
отправляются
на
E-mail
18
2.3. Система аутентификации административного приложения.
Программа
представлена
вложенным
файлом
perm.php.
Следовательно, подобный файл можно вложить в любую страницу,
которая требует аутентификации пользователя.
<?session_start()?>
<?
if (isset($str))
{
$file= fopen ("user.p", "r");
$s=fgets ($file,100);
fclose($file);
if ($str!==$s)
{
echo"<center><big>У вас нет прав для администрирования!!! :(
<big></center>";
exit;
}
}
else
{
echo"<center><big>У вас нет прав для администрирования!!! :(
<big></center>";
exit;
}
?>
Аутентификация производится с помощью хэш-функции md5,
которая использует алгоритм MD5 Message-Digest Algorithm компании
RSA Data Security Inc. Хэш-значение введенного пользователем пароля
сравнивается со значением, хранящимся в файле user.p. В случае
19
совпадения, создается сессия и регистрируется переменная с хешзначением пароля.
Управление сессией в PHP довольно гибко. Имеется возможность
менять способ использования переменных сессии приложением, место
хранения переменных на сервере, срок хранения информации о сессии.
В переменных сессии необходимо хранить только те переменные,
которые удовлетворяют следующим критериям:
 Переменная используется на протяжении всей программы, почти
на каждой странице.
 Переменная уникальна для данной сессии.
 Переменная представляет собой первичные данные.
После того как отработали программы администрирования, на диске
был найден файл sess_fdbda988d1c9ca03aa15c57d3a5dba1f, в котором были
такие
данные
информация
о
str|s:32:"5f4dcc3b5aa765d61d8327deb882cf99";.
сессии
хранится
в
файлах
с
Значит
именами
вида
sess_$PHPSESSID, а идентификатор сессии передается с использованием
файлов Cookie. Такой механизм сессий в PHP4 используется по
умолчанию, при необходимости его можно изменить. В связи с этим при
завершении
администрирования
необходимо
вызвать
сценарий
уничтожающий все данные связанные с текущей сессией. В разработанном
приложении нажать на ссылку выхода из администрирования.
20
2.3. Система пользовательского интерфейса
Фактически клиентское приложение Internet-магазина состоит из
нескольких компонентов, объединенных в рамках одного узла Web:
 Древовидный каталог семян, предназначенный для поиска по
классовой принадлежности.
 Лента новостей, содержащая сообщения о появлении в продаже
новых семян или о других событиях, связанных с работой
магазина.
 Модуль оформления заказа, позволяющий рассчитать стоимость
заказа.
На
первой
странице
расположена
лента
новостей,
которая
формируется средствами сценария расположенного в файле main.ds из
таблицы news, содержимое которой готовится сотрудниками Internetмагазина средствами административного приложения.
На странице просмотра списка семян, расположенной в файле
market.php посетитель может отобрать понравившиеся ему семена В
начале работы сценарий создает соединение с MySQL, выбирает
требуемую
базу
данных.
Далее
производится
выборка
данных,
соответствующих заданным критериям, и если требуемые записи есть,
запускается цикл формирования отчета в виде таблицы, содержащей поля
извлеченного набора записей.
Для каждой записи в создаваемую таблицу вставляется ссылка на
страницу ord_add.php, средствами которой можно добавить семена в
«корзину» покупателя.
Корзина в магазине организована с использованием файлов Cookie.
В файлах Cookie хранится идентификатор товара, выбранного посетителем
виртуального электронного магазина и его количество. Покупатель
отмечает разный товар на разных страницах сервера. При этом полный
заказ вначале формируется и хранится в Cookie, а затем по явному запросу
21
пользователя переправляется на E-mail менеджера, при этом формируется
полный отчет о произведенной клиентом покупке.
22
Заключение
Цели данной курсового работы были успешно достигнуты.
Произведен анализ современных серверных технологий создания
активных Web-серверов.
Была изучена технология PHP: синтаксис, типы данных, операторы,
операторы управления потоком выполнения, основные функции работы с
файлами, с базой данных MySQL.
Средствами технологии PHP были созданы интерактивные Webприложения, без использования расширения CGI или ISAPI.
Разработаны два Internet-магазина с различным способом хранения
информации.
Разработана система администрирования для Web-приложения,
связанную с эксплуатацией магазина и обработкой покупок.
Разработаны
для
пользовательского
приложения
следующие
системы:
 навигации
 совершения покупки
 отправки заказа менеджеру
Произведен анализ системы аутентификации средствами PHP.
В планах было интегрировать магазин c платежной системой, однако
из-за неразвитости Интернет-торговли эта услуга экономически не
выгодна.
Среди причин зачаточного состояния Интернет-торговли в Беларуси
можно назвать следующие:
 недоверие
крупного
и
среднего
белорусского
бизнеса
к
возможностям Интернета;
 неразвитость платежных средств;
 отсутствие системы доставки (сроки и гарантии обычной почты
мало кого устраивают, основные расчеты при выполнении заказов
23
производятся
наличными,
а
курьерская
служба
должна
одновременно производить инкассаторские функции, отдать же
инкассацию “в чужие руки” никто не хочет, и это тормозит
создание независимых служб доставки);
 слабое доверие потенциальных покупателей;
 небольшое количество пользователей Интернета;
 бедность населения в целом.
24
Список использованной литературы
1. Фролов А., Фролов Г.
“Практика применения PERL, PHP,
APACHE и MySQL для активных Web-сайттов” // Русская
редакция “Питер-Пресс“ - СПб – 2002. 576 стр.
2. Фролов А., Фролов Г. “Создание Web-приложений“ // Русская
редакция “Питер-Пресс“ - СПб – 2001 –1040 стр.
3. Фролов А., Фролов Г. “Связь Web-приложений с базами данных“
// Русская редакция “Питер-Пресс“ - СПб – 2000 – 487 стр.
4. Microsoft Developers Network 2000
5. Блейк Швендимен “PHP4 Руководство разработчика“ // Вильямс
– Москва – 2002 – 688 стр
6. Официальный сайт PHP // http://www.php.net
7. Официальный сайт базы данных MySQL // http://www.mysql.com
8. Журнал «СОФТЕРРА» http://www.softerra.ru/
9.
Еженедельник «Компьютер Price» // http://www.comprice.ru/
10.
System Administration and Networking Conference SANE 2002,
pages 103-119, May 2002,
http://www.dmst.aueb.gr/dds/pubs/conf/2002-SANEDynCont/html/dyncont.html
25
Приложение
26
27
Download