Проектирование Web-приложения "Туристическое агенство"

 

1. Формулировка задачи


Целью данного курсового проекта является разработка Web-приложения Туристическое агенство.

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

Необходимо провести предпроектное обследование объекта автоматизации и выбранных средств разработки. Разработать техническое задание, технический проект, рабочий проект, изложить результаты тестовых запусков. Составить документацию с инструкцией по установке программного продукта.



2. Предпроектное обследование объекта автоматизации


Интернет является одним из самых эффективных инструментов ведения бизнеса.

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

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

Разрабатываемая система виртуального туристического агентства относится к автоматизированным информационным системам. При разработке информационной системы приходится решать две основные задачи:

-задачу разработки базы данных, предназначенной для хранения информации;

-задачу разработки графического интерфейса пользователя.

Таким образом, под информационной системой обычно понимается система, ориентированная на сбор, хранение, поиск и обработку текстовой информации.

Для реализации задачи необходимо разработать и создать базу данных и интерфейс для работы с ней.

2.1 Теоретическая часть


Web-технологии. Интернет - это общедоступная глобальная компьютерная сеть, которая делится на множество подсетей связывающих между собой компьютеры, и, имеющая набор стандартных правил - протоколы, с помощью которых пользователь может передавать и получать различную информацию. Родоначальником сети интернет, была созданная в 1969 году в США компьютерная сеть ARPAnet, объединяющая компьютерные центры министерства обороны и ряда академических организаций.- это язык разметки. Интернет состоит из Web-страниц (Web-pages), а эти страницы создаются при помощи языка разметки гипертекста (HyperТext Markup Language, HTML). Используя HTML разметку делаюттекстовый документ, который будет использован при выводе текста на экран монитора.

Зачастую у web-дизайнера возникает необходимость применить в процессе создания html-документа сложное форматирование - от абзаца к абзацу менять шрифт, расположение текста, его цвет, формировать различные таблицы данных. Можно решить эту проблему с помощью стандартных средств HTML: описывать каждый абзац отдельным набором команд, но в этом случае итоговый документ будет иметь большой размер, да и само создание кода становится весьма трудоемкой работой. Можно пойти другим путем: включить в страницу описание CSS или подключить внешний файл, выполненный с стандарте CSS - Cascading Style Sheets (каскадные таблицы стилей), в котором с помощью специального макроязыка один раз жестко задать форматирование страницы. Другими словами, файл CSS выполняет роль некого шаблона, применяемого для форматирования текста, таблиц и иных элементов в документе HTML. Есть возможность подключать один и тот же физический файл CSS к различным web-страницам сайта. CSS можно использовать на любом сервере без каких-либо ограничений, поскольку команды CSS исполняются непосредственно на компьютере пользователя. К недостаткам данной технологии можно только отнести отсутствие поддержки CSS старыми браузерами (Internet Explorer и Nescape Navigator ниже 4-ой версии) и немного разный набор свойств CSS, поддерживаемый последними версиями этих двух браузеров.(Dynamic Hyper Text Markup Language, динамический язык разметки гипертекста) является расширением стандарта HTML и позволяет создавать web-страницы, включающие такие интерактивные элементы, как движущийся фон, расположенный под статичным содержимым документа, движущиеся объекты, выпадающие меню, кнопки, подсвечивающиеся при наведении курсора мыши, анимацию, бегущие титры и многое другое. По большому счету DHTML представляет собой "среднее арифметическое" между технологиями HTML и JavaScript. Этот стандарт использует простые сценарии, подготовленные с помощью интерпретируемого макроязыка, обрабатываемого браузером совместно с кодом HTML. Такие сценарии именуются "скриплетами".

Для создания скриплетов используются стандартные расширения DHTML и любой макроязык, поддерживающий директивы интерфейса ActiveX. DHTML распознается браузерами Microsoft Internet Explorer, начиная с версии 4.0 и выше.- язык создания сценариев, который давно перерос свое название. PHP - это аббревиатура от слов Personal Home Page. Первая версия PHP была создана Расмусом Лердорфом в 1994 г. и представляла собой набор инструментов для отслеживания посетителей Web-страницы. Со временем PHP из набора инструментов превратился в полноценный язык программирования, а его название было изменено как рекурсивное образование PHP HyperText Preprocessor (препроцессор гипертекста PHP). PHP - это серверный язык создания сценариев. Конструкции PHP, вставленные в HTML-текст, выполняются сервером при каждом посещении страницы. Результат их обработки вместе с обычным HTML-текстом передается браузеру.

JavaScript - объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript.

JavaScript по большей части используется как встраиваемый язык для программного доступа к объектам приложений. Особенно широкое использование находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.

JavaScript применяется для придания пользовательскому интерфейсу большей интерактивности по сравнению со статическим HTML, он позволяет реализовать: бегущую строку, изменяемые рисунки и т.д.


2.2 Практическая часть


После анализа предметной области и оценки задачи, в качестве реализации была выбрана базы данных MySQL, в качестве языка программирования выбран PHP.

База данных представляет собой структурированную совокупность данных. Эти данные могут быть любыми - от простого списка предстоящих покупок до перечня экспонатов картинной галереи или огромного количества информации в корпоративной сети. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является MySQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по-разному - как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений.

MySQL - это система управления реляционными базами данных. В реляционной базе данных данные хранятся в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных.- это реляционная СУБД, типа клиент/сервер. СУБД MySQL включает в себя SQL-сервер и программы-клиенты, осуществляющие доступ к серверу, средства администрирования и программный интерфейс для программирования своих собственных программ. обладает отличной переносимостью и может с тем же успехом использоваться на дорогих коммерческих операционных системах (таких как Solaris, Irix или Windows) и на любой аппаратуре вплоть до мощных серверов. Более того, так же как и ее более "дорогие соперники", она позволяет обрабатывать большие базы данных, содержащие миллионы записей.

Сравнивая СУБД MySQL с другими базами данных, всегда необходимо помнить о том, какой фактор является самым важным для конкретной разработки. Производительность, поддержка, возможности (соответствие стандартам языка SQL, возможность расширения и т.д.); условия лицензирования и ограничения и, наконец, цена. Принимая во внимание эти соображения, СУБД MySQL обладает многими преимуществами.

¾быстродействие. MySQL - самая быстрая СУБД в мире.

¾простота использования. СУБД MySQL является высокопроизводительной и относительно простой в использовании СУБД, которую значительно проще инсталлировать и администрировать, чем многие большие системы.

¾цена. СУБД MySQL распространяется бесплатно.

¾поддержка языка запросов. MySQL "понимает" команды языка SQL (Structured Query Language - структурированный язык запросов). Этот язык применяется во всех современных СУБД. MySQL также поддерживает интерфейс ODBC (Open Database Connectivity), протокол интерфейса с базами данных, разработанный компанией Microsoft, что позволяет легко подключить эту базу к любому средству разработки интерфейсов

¾возможности. Сервер позволяет одновременно подключаться неограниченному количеству пользователей. Доступ к серверу СУБД MySQL можно осуществить в интерактивном режиме с помощью различных интерфейсов, позволяющих вводить запросы и просматривать полученные результаты: это программы- клиенты, работающие с командной строкой, Web-броузеры или программы-клиенты, работающие в системе X Window. Кроме того, в наличии имеются программные интерфейсы для таких языков, как С, Perl, Java, PHP и Python. Таким образом, можно использовать как готовое клиентское программное обеспечение, так и создавать свое собственное.

¾взаимодействие и безопасность. MySQL предназначена для работы в сети и может быть доступна через Internet, таким образом, с данными можно работать в любой точке земного шара. Но при этом СУБД MySQL снабжена развитой системой защиты от несанкционированного доступа.

¾переносимость. СУБД MySQL отлично работает как под управлением самых различных версий UNIX, так и под управлением систем, не использующих UNIX, таких как Windows и OS/2. СУБД MySQL работает как на домашних ПК, так и на мощных серверах.

¾открытое распространение. Дистрибуция СУБД MySQL легкодоступна. Для этого достаточно воспользоваться Web-браузером.

Приложение будет разработано на языке PHP.- язык программирования, специально разработанный для написания web-приложений (скриптов, сценариев), исполняющихся на Web-сервере. Синтаксис языка во многом основывается на синтаксисе C, Java и Perl. Он очень похож на С и на Perl, поэтому для профессионального программиста не составит труда его изучить. С другой стороны, язык PHP проще, чем C, и его может освоить веб-мастер, не знающий пока других языков программирования.

Огромным плюсом PHP, в отличие от, например, JavaScript, является то, что PHP-скрипты выполняются на стороне сервера. PHP не зависит от скорости компьютера пользователя или его браузера, он полностью работает на сервере. Пользователь может не знать, получает ли он обычный HTML-файл или результат выполнения скрипта.

Сценарии на языке PHP могут исполняться на сервере в виде отдельных файлов, а так же могут интегрироваться в html страницы.способен генерировать и преобразовывать не только HTML документы, но и изображения разных форматов - JPEG, GIF, PNG, файлы PDF и FLASH. PHP способен формировать данные в любом текстовом формате, включая XHTML и XML. - кроссплатформенная технология. Дистрибутив PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix, Microsoft Windows, Mac OS и многих других. PHP поддерживается на большинстве вебсерверов, таких, как Apache, Microsoft Internet Information Server (IIS), Microsoft Personal Web Server и других.

Для большинства серверов PHP поставляется в 2-х вариантах - в качестве модуля и в качестве CGI препроцессора.поддерживает работу с ODBC и большое количество баз данных: MySQL, MSQL, Oracle, PostgreSQL, SQLite и др.

Язык программирования PHP, особенно в связке с популярнейшей базой данных MySQL - оптимальный вариант для создания интернет-сайтов различной сложности.

Для разработки базы данных для Web-приложения выбрана система управления базами данных MySQL. СУБД MySQL лучше остальных поддерживается PHP.

Приложение будет разработано с использованием языка серверного программирования PHP, а также средств создания web-страниц: HTML,CSS, JAVA SCRIPT.



3. Техническое задание


3.1 Наименование и область применения разработки


Полное наименование проекта: приложение Туристическое агентство Ялта-путник.


3.2 Основание для разработки


Разработка Web-приложения Туристическое агентство Ялта-путник ведется на основании задания на курсовой проект по дисциплине «Технология программирования и создание программных продуктов». Задание утверждено на заседании кафедры Программное обеспечение автоматизированных систем зав. кафедрой к.т.н.,доцент Василенко П.Г. и выдано преподавателем кафедры Филимоненковой Т.Н. 15 марта 2011 г.


3.3 Назначение разработки


Разработка является курсовым проектом по дисциплине «Технология программирования и создания программных продуктов».


3.4 Требования к программному продукту


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

3.5 Требования к программной документации


Состав программной документации должен включать следующие разделы:

¾описание программы - общая характеристика продукта. Общие требования к программному обеспечению, комплексу технических средств;

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

¾руководство программиста (оператора) - указывает особенности установки (инсталляции) программного продукта и его внутренней структуры - состав и назначение модулей, правила эксплуатации и обеспечения надежной и качественной работы программного продукта.

Диск с проектом будет содержать файл Readme.txt


3.6 Технические показатели разработки


Web-приложение Туристическое агентство Ялта-путник должно корректно работать во всех распространённых программ для просмотра web-страниц. Для правильной работы приложения необходимо в браузере разрешить использование JavaScript (если не заданно по умолчанию). Не рекомендуется использовать программы для просмотра web-страниц компании Microsoft, так как в них не предусмотрена поддержка CSS3.

Минимальные технические требования к компьютеру: 1.0 ГГц Celeron, ОЗУ 128 Мб, 10 Мб свободного места на жестком диске. ОС Windows XP. Microsoft Internet Explorer 7.

3.7 Календарный план


1.Предпроектное обследование объекта автоматизации. Изучение теоретических материалов по теме работы. 15.03.2011 г.

2.Разработка технического задания, определение модели и общей структуры программного приложения. 01.04.2011 г.

.Разработка технического проекта. 10.04.2011 г.

.Разработка рабочего проекта. 20.04.2011 г

.Разработка документации по приложению и инструкции по эксплуатации. 30.04.2011 г

.Написание отчета (пояснительной записки). 10.05.2011 г.

Представление результатов научному руководителю. 15.05.2011 г. 3.8 Порядок приемки

Приемка проекта должна осуществляться комиссией в составе преподавателей кафедры Программного обеспечения автоматизированных систем в соответствии с графиком защиты курсового проекта, утвержденного на заседании кафедры.



4. Технический проект


4.1 Разработка концептуальной модели базы данных


4.1.1 Концептуальное моделирование структуры данных

Для реализации приложения Туристическое агентство Ялта-путник, необходимо разработать модель базы данных.

Принято выделять два уровня представления модели данных - физический и логический.

Логические Модели

В логической модели все данные представлены в виде таблиц . Строки в каждой таблице - это кортеж неструктурированных единиц данных, "атрибутов". Набор кортежей, составляющий таблицу, образует математическое отношение; таким образом, модель данных представляется множеством таблиц-отношений (называемых также R-таблицами)

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

Значения атрибутов в таблице-отношении могут иметь только один определенный вид функциональной зависимости друг от друга, а именно, все значения в произвольном кортеже должны по отдельности зависеть только от значений столбца или группы столбцов - одних для всего отношения. Такой столбец или группа столбцов, называются ключевыми, а значения атрибутов в них - ключами.

Физическая модель

При проектировании физической базы данных логическая модель переводится в набор операторов SQL, которые определяют базу данных MySQL. - реляционная базаданных, поэтому необходимо перевести логическую модель, подобную описанной, в физическую базу данных MySQL.

Правила перевода из логической модели в физическую

1.Объекты становятся таблицами в физической базе данных.

2.Атрибуты становятся колонками в физической базе данных. Для каждой колонки нужно выбрать подходящий тип данных.

.Уникальные идентификаторы становятся колонками, не допускающими значение NULL. В физической базе данных они называются первичными ключами (primary keys). По необходимости можно создать уникальный индекс по идентификатору, чтобы обеспечивать уникальность. Отношения моделируются в виде внешних ключей (foreign keys).

В физической схеме из всех названий объектов необходимо удалить пробелы. Это вызвано тем, что названия нужно преобразовать в вызовы SQL, создающие таблицы, поэтому названия таблиц должны удовлетворять правилам SQL для образования имен. Все первичные ключи нужно сделать типа INT. Поскольку эти атрибуты искусственные, нужно приписать им любой индексируемый тип. Для остальных колонок установлен тип TEXT и VARCHAR с длиной от 50 до 255 символов.


4.2 Создание базы данных


Ниже представлены скрипты MySQL для создания таблиц базы данных Web-приложения Туристическое агентство Ялта-путник.

CREATE TABLE `categories` ( `id` int(2) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;TABLE `comments` ( `id` int(5) NOT NULL auto_increment, `post` int(5) NOT NULL, `author` varchar(100) NOT NULL, `text` text NOT NULL, `date` date NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=68 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=68 ;TABLE `contact_form` ( `id` int(5) NOT NULL auto_increment, `name` varchar(100) NOT NULL, `email` varchar(100) NOT NULL, `themes` varchar(100) NOT NULL, `text` text NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=51 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=51 ;TABLE `country` ( `id` int(2) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 AUTO_INCREMENT=29 ;TABLE `data` ( `id` int(5) NOT NULL auto_increment, `transporte` int(3) NOT NULL, `cat` int(3) default '0', `meta_d` varchar(255) default NULL, `meta_k` varchar(255) NOT NULL default '', `description` text, `text` text, `view` int(7) NOT NULL default '0', `duration` varchar(100) default NULL, `date` date default NULL, `mini_img` varchar(255) default NULL, `title` varchar(255) character set ucs2 default NULL, `secret` int(1) NOT NULL default '0', `rating` int(10) NOT NULL default '5', `q_vote` int(10) NOT NULL default '1', `isto` varchar(255) NOT NULL, `price1` int(5) default NULL, `price2` int(5) NOT NULL, `price3` int(5) NOT NULL, `price4` int(5) NOT NULL, `price5` int(5) NOT NULL, `country` int(3) default NULL, `rut` int(3) NOT NULL, `city` varchar(150) NOT NULL, `hotel` int(1) default NULL, `photo1` varchar(255) NOT NULL, `photo1_desc` varchar(155) NOT NULL, `photo2` varchar(255) NOT NULL, `photo2_desc` varchar(155) NOT NULL, `photo3` varchar(255) NOT NULL, `photo3_desc` varchar(55) NOT NULL, PRIMARY KEY (`id`), KEY `title` (`title`), KEY `title_2` (`title`), KEY `title_3` (`title`), FULLTEXT KEY `text` (`text`)

) ENGINE=MyISAM AUTO_INCREMENT=98 DEFAULT CHARSET=utf8 AUTO_INCREMENT=98 ;TABLE `form_ticket` ( `title` varchar(155) NOT NULL, `id` int(5) NOT NULL auto_increment, `date` varchar(150) NOT NULL, `period` varchar(150) NOT NULL, `price` varchar(150) NOT NULL, `people` varchar(250) NOT NULL, `name` varchar(250) NOT NULL, `email` varchar(250) NOT NULL, `mobile` varchar(250) NOT NULL, `text` text NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=96 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=96 ;TABLE `guestbook` ( `id` int(11) NOT NULL auto_increment, `guest` varchar(100) NOT NULL, `text` text NOT NULL, `date` date NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=21 ;TABLE `rutas` ( `id` int(2) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;TABLE `settings` ( `id` int(3) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, `page` varchar(255) NOT NULL default '', PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;TABLE `transporte` ( `id` int(2) NOT NULL auto_increment, `title` varchar(255) NOT NULL default '', `meta_d` varchar(255) NOT NULL default '', `meta_k` varchar(255) NOT NULL default '', `text` text NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 AUTO_INCREMENT=26 ;TABLE `users` ( `id` int(11) NOT NULL auto_increment, `login` varchar(15) NOT NULL default '', `password` varchar(15) NOT NULL default '', PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=30 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=30 ;


4.3 Технологическая схема обработки информации


Web-приложение Туристическое агентство Ялта-путник имеет два входа: администраторскую зону и зону простого пользователя.

Администраторская часть предназначена для ввода новых путёвок, курортов, маршрутов, стран, видов транспортировки, а так же для редактирования текста главных разделов сайта.

Пользовательская зона - основная часть сайта. Предназначена для просмотра полной информации о путёвках, заказов туров, а так же расчёта стоимости выбранного тура.

Следующие данные необходимы для ввода в таблицы с исходной информацией.

Страницы регистрации пользователей (рис.4.2):

Любой посетитель сайта может зарегистрироваться на сайте. Для успешной регистрации необходимо заполнить поле логин и пароль и нажать кнопку зарегистрироваться.

Логин - это имя пользователя для входа в систему, предназначено для ввода символьной информации, размер не более 30 символов;

Пароль - поле, которое содержит пароль пользователя для входа в систему, предназначено для ввода символьной информации, размер не более 30 символов.

Страница добавления путёвок (рис.4.3). Эта страница доступна только из администраторской зоны. Предназначена для добавления новых туров в базу данных.

Страница добавления типов курортов (рис.4.4). Страница предназначена для добавления новых типов курорта.

Раздел страницы (рис.4.5) создан для удобного управления контентом таких страниц, как главная, о компании.

Страница заказа путёвок (рис.4.6). Создана для заказа путёвок посетителями сайта. Страница полностью автоматизирована.

Пользователю необходимо ввести количество людей и контактные данные. Всё остальное система заполнит автоматически.



5. Робочий проект


5.1 Описание и назначение программного продукта

приложение Туристическое агентство Ялта-путник реализует функции виртуального туристического агентства, предлагающее летние/зимние туры, и осуществляющее прием заказов онлайн.


5.2 Описание программных модулей


Файл index.php - главная веб-страница

Файл about.php - страница о компании.

Файл book.php - невидимая страница обработки данных гостевой книги.

Файл comment.php - невидимая страница обработки данных для отзывов.

Файл bus_next.php - невидимая страница обработки данных формы обратной связи.

Файл form_ticket.php - невидимая страница обработки данных заказа выбранного тура.

Файл guestbook.php - гостевая книга.

Файл order_ticket.php - страница заказа выбранного тура.

Файл reg.php - страница регистрации новых пользователей.

Файл saveuser.php - страница обработки регистрации.

Файл send.php - страница уведомления заказов

Файл test_reg.php - страница обработки регистрации.

Файл view_cat.php - страница видов курорта.

Файл view_country.php - страница показа путёвок по выбранной стране.

Файл view_date.php - страница показа путёвок по дате.

Файл view_order.php - страница заказа путёвок.

Файл view_post.php - страница показа полной информации о туре.

Файл view_rut.php - страница показа путёвок по выбранному маршруту.

Файл view_search.php - страница показа результатов поиск.

Файл view_transoprte.php - страница показа путёвок по выбранной транспортировке.

Файл vote_res.php - страница обработки оценок.

Каталог /admin/ - блок для администратора.

Каталог blocks/ - блоки подключения к сайту: bd.php, footer.php, left.php, right.php, top.php, top_2.php.

Файл blur.js- скрипт проверки заполнености формы заказа

Файл count_price.js - расчёт стоимости путёвки.

Файл jquery.js- библиотека jquery.

Файл myscripts.js - файл сценария jQuery для сайта.

Файл style.css - файл стиля сайта.


5.3 Исходные тексты программных модулей


Файл bd.php - отвечает за подключение к базе данных.


<?

$db = mysql_connect ("localhost","user","z45242");_select_db("moto",$db);_start();

?>


Файл index.php - главная страница. В начале в переменную $result_in

Запросом mysql_query заносятся необходимые данные из таблицы settings. Затем идёт проверка на их наличие в базе. Если ничего не найдено, будет выведено сообщение Запрос на выборку данных из базы не прошел. Напишите об этом администратору [email protected] и код ошибки.

Данные из таблицы выводятся циклом do while, выводом ptintf.

В MySQL запросе стоит лимит на количество выводимых записей - 10 туров.


<? include ("blocks/bd.php");

$result_in = mysql_query("SELECT title,meta_d,meta_k,text FROM settings WHERE page='index'",$db); (!$result_in)

{

echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору [email protected]. <br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}(mysql_num_rows($result_in) > 0)

{

$myrow_in = mysql_fetch_array($result_in);

}

else

{

echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";

exit();

}_start();

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "#"justify"><html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title><? echo $myrow_in["title"]; ?></title>

<link href="style.css" rel="stylesheet" type="text/css">

<meta name="description" content="<? echo $myrow_in["meta_d"]; ?>">

<meta name="keywords" content="<? echo $myrow_in["meta_k"]; ?>">

</head>

<body>

<div id="wrap"> <div>

<? include ("blocks/top.php"); ?>

<? include ("blocks/left.php"); ?>

<div>

<p style="line-height:1.4;padding:5px;">

<? echo $myrow_in["text"]; ?>

</p>

<br/>

<div>

<div>

$result = mysql_query("SELECT * FROM data ORDER BY id DESC LIMIT 10",$db); (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код

ошибки:</strong></p>";(mysql_error());

}(mysql_num_rows($result) > 0)

{

$myrow_in = mysql_fetch_array($result);

{

$r = $myrow_in["rating"]/$myrow_in["q_vote"];

$r = intval($r);

$sum= $myrow_in["price1"] + $myrow_in["price2"] + $myrow_in["price3"] + $myrow_in["price4"] + $myrow_in["price5"];("<div>

<div> <div>%s</div> <div> </div> <div>

<div>

}($myrow_in = mysql_fetch_array($result));

}

else

{

echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";

exit();

} ?>

</div>

</div>

<? include ("blocks/right.php"); ?>

</div>

<? include ("blocks/footer.php"); ?>

</body>

</html>


Файл view_cat.php - страница категория туров. Страница отвечает за вывод путёвок по категориям. В Начале файлы запускается сессия <? session_start();?>. Затем осуществляется проверка переменных на наличие методом GET. Далее идёт проверка является ли переменная числом. Если нет, то выводится соответствующее сообщение.

В переменную $result заносятся данные из таблицы категории с условием WHERE, где id тура равняется переменной $cat. Далее данные из таблицы выводятся циклом do while, выводом ptintf.


<? session_start();?>

<? include ("blocks/bd.php");(isset($_GET['cat'])) {$cat = $_GET['cat']; } (!isset($cat)) {$cat = 1;}

/* Проверяем, является ли переменная числом */

if (!preg_match("|^[\d]+$|", $cat)) { ("<p>Неверный формат запроса! Проверьте URL!");

}

$result = mysql_query("SELECT * FROM categories WHERE id='$cat'",$db); (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору [email protected]. <br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}(mysql_num_rows($result) > 0)

{

$myrow_cat = mysql_fetch_array($result);

}

else

{

echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";

exit();

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "#"justify"><html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title><? echo "$myrow_cat[title]"; ?></title>

<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body>

<div id="wrap">

<? include ("blocks/top.php"); ?>

<? include ("blocks/left.php"); ?>

<div>

<div>

<? echo "$myrow_cat[title]"; ?></a>

</div>

<br/><br/><br/> <?

$result = mysql_query("SELECT * FROM data WHERE cat='$cat' ORDER BY id",$db); (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}(mysql_num_rows($result) > 0)

{

$myrow_cat = mysql_fetch_array($result);

{

$r = $myrow_cat["rating"]/$myrow_cat["q_vote"];

$r = intval($r);("<div>

<div> <div>%s</div> <div> </div> <div>

<div>

}($myrow_cat = mysql_fetch_array($result));

}

else

{

echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";

exit();} ?>

</div>

<? include ("blocks/right.php"); ?>

</div>

<? include ("blocks/footer.php"); ?>

</body>

</html>


Файл view_order.php - страница заказа выбранного тура. Предназначен для оформления заказа выбранной пользователем путёвки. В начале файла идёт подключение к базе данных, через файл bd.php. Далее осуществляется проверка переменных на наличие методом GET. Затем условным выражением проверяется формат запроса. Если формат неверный, - будет выведено соответствующее сообщение.

Пользователю доступна форма, которая обрабатывается файлом form_ticket.php, т.е. у которой action='form_ticket.php' . Обработка осуществляется методом post.


<? include ("blocks/bd.php");(isset($_GET['id'])) {$id = $_GET['id']; }(!isset($id)) {$id = 1;(!preg_match("|^[\d]+$|", $id)) { ("<p>Неверный формат запроса! Проверьте URL!");

}

$result = mysql_query("SELECT * FROM data WHERE id='$id'",$db); (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору<br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}(mysql_num_rows($result) > 0)

{

$myrow_post = mysql_fetch_array($result);

$new_view = $myrow_post["view"] + 1;

$update = mysql_query ("UPDATE data SET view='$new_view' WHERE id='$id'",$db);

}

else

{

echo "<p>Информация по запросу не может быть извлечена, в базе нет записей.</p>";

exit();

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "#"justify"><html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title><? echo "$myrow_post[title]"; ?></title>

<link href="style.css" rel="stylesheet" type="text/css">

<script src="js/jquery.js" type="text/javascript"></script>

<script src="js/blur.js" type="text/javascript"></script>

<script src="js/count_price.js" type="text/javascript"></script>

</head>

<body>

<div id="wrap">

<? include ("blocks/top.php"); ?>

<? include ("blocks/left.php"); ?>

<div>

<div>

<? echo "$myrow_post[title]"; ?></a>

</div>

<?

$r = $myrow_post["rating"]/$myrow_post["q_vote"];

$r = intval($r); ("<div>

</div>");

?>

<br/>

<?

$sum= $myrow_post["price1"] + $myrow_post["price2"] + $myrow_post["price3"] + $myrow_post["price4"] + $myrow_post["price5"];

?>

<div>

<b>

<label><span>

<input id='tuor' name='title' type='text'>

<br/><br/>

<label><span>

<input id='date' name='date' type='text'>

<br/><br/>

<script type='text/javascript'>

</script>

<label><span>

<input name='period' type='text' id='days'>

<br/>

<br/>

<label><span><input name='period' type='text' id='days'>

<br/>

<br/>

<label><span>

<input id='people' name='people' type='text'>

<br/>

<br/>

<br/><b>

<input id='fio' name='name' type='text'>

<br/><br/> <label><span><input type='text' name='email' id='email'>

<br/><br/> <label><span><input name='mobile' id='mobile' type='text'>

<br/><br/><br/><br/> <b><br/><br/> <textarea name='text'><!-- Submit Button--> <input name='ticket_but' type='submit' id='send_b' value='Отправить' /> </form> </div>

<br/>

<?

$r = $myrow_post["rating"]/$myrow_post["q_vote"];

$r = intval($r); ("<div>

<br/>

<div id='price_count'>* подробности о суммарной стоимости &darr;</div>

<br/> автоматизация приложение программный

<form id='form_price' name='form1'>

<b> <label><span>

<br/> <label><span>

<br/> <div></div> <br/> <br/>

<b>

</form>

</div>", $myrow_post["price1"], $myrow_post["price2"], $myrow_post["price3"], $myrow_post["price4"], $myrow_post["price5"] );

?>

</div>

<div>

<form action="vote_res.php" method="post" name="vv">

<p>

&nbsp; <input>

<input name="id" type="hidden" value="<?php echo "$id";?>">

</p>

</form>

</div>

<br/>

<?

$result3 = mysql_query ("SELECT * FROM comments WHERE post='$id' ORDER BY id",$db);(mysql_num_rows($result3) > 0)

{

$myrow_post3 = mysql_fetch_array($result3);

{("<div>

<p>

}($myrow_post3 = mysql_fetch_array($result3));

}

$result4 = mysql_query ("SELECT img FROM comments_setting",$db);

$myrow_post4 = mysql_fetch_array($result4);

?>

<div id="show_comments">Оставить отзыв &darr;</div>

<div id="form_comments">

<span>

<form action="comment.php" method="post" name="form_com">

<p>

<textarea name="text">

<br><input name="sub_com">

</form>

</div>

</div>

<? include ("blocks/right.php"); ?>

</div>

<? include ("blocks/footer.php"); ?>

</body>

</html>

Файл right.php - страница правого блока(авторизация, горящие путёвки, актуальные туры).

Файл состоит из эдентичных блоков, отличающихся практически только SQL запросом.

Форма для авторизации обрабатывается файлом testreg.php методом POST.

Далее идёт вывод Горящих туров запросом $result = mysql_query("SELECT * FROM data WHERE secret=1 ORDER BY id DESC LIMIT 5 ",$db);

Актуальные туры запросом $result = mysql_query("SELECT * FROM data ORDER BY view LIMIT 5",$db);

Архив путёвок запросом $result4 = mysql_query("SELECT DISTINCT left(date,7) AS month FROM data WHERE secret=0 ORDER BY month DESC",$db);

<div id="sidebar_r">

<div>

<div>

<form action="testreg.php" method="post">

<!--**** testreg.php - это адрес обработчика. То есть, после нажатия на кнопку "Войти", данные из полей отправятся на страничку testreg.php методом "post" ***** --> <p> <label>Ваш логин:<br></label> <input>

<!--**** В текстовое поле (name="login" type="text") пользователь вводит свой логин ***** --> <p><br/> <label>Пароль:<br></label> <input>

<!--**** В поле для паролей (name="password" type="password") пользователь вводит свой пароль ***** -->

<p>

<input type="submit" name="submit" value="Войти">

<!--**** Кнопочка (type="submit") отправляет данные на страничку testreg.php ***** -->

<br>

<!--**** ссылка на регистрацию, ведь как-то же должны гости туда попадать ***** -->

<div>

</p></form>

<?php

// Проверяем, пусты ли пересменные логина и id пользователя

if (empty($_SESSION['login']) or empty($_SESSION['id']))

{

// Если пусты, то мы не выводим ссылку

echo "<span>

}

?>

<div>

<?

$result = mysql_query("SELECT * FROM data WHERE secret=1 ORDER BY id DESC LIMIT 5 ",$db); (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}(mysql_num_rows($result) > 0)

{

$myrow = mysql_fetch_array($result); {

$r = $myrow["rating"]/$myrow["q_vote"];

$r = intval($r);("<div>

<div>

<div>

<div>

<div>

</div>",$myrow["mini_img"],$myrow["id"],$myrow["title"],$myrow["description"],$myrow["date"]);

}($myrow = mysql_fetch_array($result));

}

else

{

echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";

} ?>

<div>

<?

$result = mysql_query("SELECT * FROM data ORDER BY view LIMIT 5",$db); (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору <br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}(mysql_num_rows($result) > 0)

{

$myrow = mysql_fetch_array($result);

{

$r = $myrow["rating"]/$myrow["q_vote"];

$r = intval($r);("<div>

<div>

<div>

<div>

<div>

</div>",$myrow["mini_img"],$myrow["id"],$myrow["title"],$myrow["description"],$myrow["date"]);

}($myrow = mysql_fetch_array($result))

}

else

{

echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";

exit();

}?>

<div>

<? $result4 = mysql_query("SELECT DISTINCT left(date,7) AS month FROM data WHERE secret=0 ORDER BY month DESC",$db);(!$result4)

{"<p>Неизвестная ошибка. напишите администартору [email protected]. <br> <strong>Ошибка номер:</strong></p>";(mysql_error());

}(mysql_num_rows($result4) > 0)

{

$myrow4 = mysql_fetch_array($result4);

{("<span>

}($myrow4 = mysql_fetch_array($result4));

}

else

{

echo "<p>Информация остутствует.</p>";

exit();

}

</div>


Файл view_post.php - страница описания выбранного тура.

Описание практически эдентичны с файлом index.php. Отличается запросом mysql_query("SELECT * FROM data WHERE id='$id'",$db);

Html блоками и стилями CSS.

<? include ("blocks/bd.php");(isset($_GET['id'])) {$id = $_GET['id']; }(!isset($id)) {$id = 1;}(!preg_match("|^[\d]+$|", $id)) { ("<p>Неверный формат запроса! Проверьте URL!");

}

$result = mysql_query("SELECT * FROM data WHERE id='$id'",$db); (!$result)

{

echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору<br> <strong>Код ошибки:</strong></p>";

exit(mysql_error());

}(mysql_num_rows($result) > 0)

{

$myrow_post = mysql_fetch_array($result);

$new_view = $myrow_post["view"] + 1;

$update = mysql_query ("UPDATE data SET view='$new_view' WHERE id='$id'",$db);

}

else

{

echo "<p>Информация по запросу не может быть извлечена, в базе нет записей.</p>";

exit();

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "#"justify"><html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title><? echo "$myrow_post[title]"; ?></title>

<link href="style.css" rel="stylesheet" type="text/css">

<script src="js/jquery.js" type="text/javascript"></script>

<script src="js/blur.js" type="text/javascript"></script>

<script src="js/count_price.js" type="text/javascript"></script>

</head>

<body>

<div id="wrap">

<? include ("blocks/top.php"); ?>

<? include ("blocks/left.php"); ?>

<div>

<div>

<? echo "$myrow_post[title]"; ?></a>

</div>

<div id="print">Просмотров: <? echo "$myrow_post[view]"; ?> </div>

<?

$r = $myrow_post["rating"]/$myrow_post["q_vote"];

$r = intval($r); ("<div>

<br/><br/>

<div>

<div id='photo_view'>Фотографии курорта &darr;</div>

<div id='gallery'><h2>Фотографии курорта</h2>

<br/>

<div>

<img src='%s' />

<em>%s </em>

</div>

<div>

<img src='%s' />

<em>%s </em>

</div>

<div>

<img src='%s' />

<em>%s </em>

</div>

</div>

<div>

<div>

<div>Продолжительность тура: %s</div>

<div>Подробная информация: <a target='_blank' href='%s'>%s</a></div>

</div>

<div>

<img>

</div>

<br/>

<br/>

<div id='price_count'>Расчёт стоимости тура &darr;</div>

<br/>

<form id='form_price' name='form1'>

<b> <label><span>

<br/> <label><span>

<br/>

<label><span><select name='znak'><option value='dollar'>доллары</option> <option value='euro'>евро</option> <option value='grivna'>гривны</option> <option value='rubles'>рубли</option> </select> </div> <br/>

<input>

<br/>

<b>

</form>

</div>",$myrow_post["title"],$myrow_post["text"],$myrow_post["photo1"],$myrow_post["photo1_desc"],$myrow_post["photo2"]

,$myrow_post["photo2_desc"],$myrow_post["photo3"],$myrow_post["photo3_desc"],$myrow_post["hotel"],$myrow_post["duration"],

$myrow_post["isto"],$myrow_post["isto"],$myrow_post["date"],$myrow_post["city"], $r, $myrow_post["price1"], $myrow_post["price2"], $myrow_post["price3"], $myrow_post["price4"], $myrow_post["price5"] );

?

<?

$sum= $myrow_post["price1"] + $myrow_post["price2"] + $myrow_post["price3"] + $myrow_post["price4"] + $myrow_post["price5"];

?>

<div>

<div id='order_ticket'>Оформить заказ путёвки &darr;</div>

<div>

<b>

<label><span><input id='tuor' name='title' type='text'>

<br/><br/>

<label><span><input id='date' name='date' type='text'>

<br/><br/>

<script type='text/javascript'>

</script>

<label><span><input name='period' type='text' id='days'>

<br/>

<br/>

<label><span><input name='period' type='text' id='days'>

<br/>

<br/>

<label><span><input id='people' name='people' type='text'>

<br/>

<br/>

<br/><b><input id='fio' name='name' type='text'>

<br/><br/> <label><span><input type='text' name='email' id='email'>

<br/><br/> <label><span><input name='mobile' id='mobile' type='text'>

<br/><br/><br/><br/> <b><br/><br/> <textarea name='text'>

<br/><br/><br/> <!-- Submit Button--> <input name='ticket_but' type='submit' id='send_b' value='Отправить' /> </form> </div> <!-- /contentForm -->

</div>

<br/>

<div>

<form action="vote_res.php" method="post" name="vv">

<p>

&nbsp; <input>

<input name="id" type="hidden" value="<?php echo "$id";?>">

</p>

</form>

</div>

<br/>

<?

$result3 = mysql_query ("SELECT * FROM comments WHERE post='$id' ORDER BY id",$db);(mysql_num_rows($result3) > 0)

{

$myrow_post3 = mysql_fetch_array($result3);

{("<div>

<p>

}($myrow_post3 = mysql_fetch_array($result3));

}


?>

<div id="show_comments">Написать отзыв &darr;</div>

<div id="form_comments">

<span>

<form action="comment.php" method="post" name="form_com">

<p>

<textarea name="text">

<br><input name="sub_com">

</form>

</div>

</div>

<? include ("blocks/right.php"); ?>

</div>

<? include ("blocks/footer.php"); ?>

</body>

</html>


Файл count_price.js - расчёт стоимости тура.

Файл count_price со сценарием Java Script отвечает за расчёт стоимости путёвки. В переменные a,b,c,d,e вносятся значения из формы, которые в свою очередь заполняются из базы даны администратором. Затем при помощи switch case рассчитывается стоимость путёвки в выбранном денежном формате.

function count_price()

{ var a,b,c,d,e,f, sign; a=parseInt(document.form1.op1.value,10); b=parseInt(document.form1.op2.value,10); c=parseInt(document.form1.op3.value,10); d=parseInt(document.form1.op4.value,10); e=parseInt(document.form1.op5.value,10); sign = document.form1.znak.value; switch (sign) { case "dollar": f=a+b+c+d+e; break; case "grivna": f=(a+b+c+d+e)*8; break; case "rubles": f=(a+b+c+d+e)*29; break; } document.form1.result.value=f; }

6. Документація


6.1 Справочное руководство


6.1.1 Назначение программы

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


.1.2 Условия выполнения программы

Для использования Web-приложения в режиме пользователя необходимо зарегистрироваться на сайте, затем войти под своим логином и паролем. Чтобы заказать тур, следует пройти по ссылке Заказать тур на странице выбранного тура, затем заполнить форму оформления заказа и нажать кнопку Отправить. Для использования Web-приложения в режиме администрирования необходимо войти в систему на Web-странице для администратора, используя логин и пароль. Для добавления новых записей, редактирования и удаления заказов необходимо пройти по ссылке добавить/редактировать/удалить соответственно.


6.2 Руководство системного программиста


6.2.1 Сведения по установке программы

Для загрузки Web-приложения Туристическое агентство Ялта-путник на сервер необходим FTP-клиент. Клиент следует настроить соответствующим образом - заполнить адрес доступа к серверу по FTP, логин и пароль - предоставляется администрацией при покупке хостинга. После верной настройки FTP-клиента необходимо выбрать все файлы для отправки и выполнять загрузку на сервер (upload).


6.3 Руководство пользователя


6.3.1 Назначение программы

Web-приложениеТуристическое агенство Ялта-путник предназначено для реализации функции виртуального туристического агентства, предлагающее путёвки клиентам, и осуществляющее прием заказов онлайн. В режиме администрирования обеспечивает возможность ввода данных в любую страницу сайта и корректировку информации, а так же получение сведений о заказах.


6.3.2 Требования к аппаратному и программному обеспечению

Web-приложение Туристическое агенство Ялта-путник должно корректно работать во всех распространённых программ для просмотра web-страниц. Для правильной работы приложения необходимо в браузере разрешить использование JavaScript (если не заданно по умолчанию). Не рекомендуется использовать программы для просмотра web-страниц компании Microsoft, так как в них не предусмотрена поддержка CSS3.

Минимальные технические требования к компьютеру: 1.0 ГГц Celeron, ОЗУ 128 Мб, 10 Мб свободного места на жестком диске. ОС Windows XP. Microsoft Internet Explorer 7.


6.3.3 Типовые приемы работы с программой

Запуск Web-приложение Туристическое агентство Ялта-путник с правами администратора.

Работа администратора в приложении начинается со страницы Форма входа для администратора. Для входа в систему необходимо ввести в URL admin/.

Все сделанные заказы путёвок выводятся на главной странице администратора.

Для просмотра полной информации о путёвке в режиме пользователя необходимо выбрать тур и нажать на ссылку Подробная информация. Данная ссылка присутствует при выводе путёвок, как на главной странице, так и при поисковых запросах, выводе туров по дате, маршрутам, курортам, странам и видах транспортировки.

После перехода по ссылке открывается страница с полной информацией тура: название, полное описание, фотографиями, категорией отеля, продолжительностью тура, дате начала путёвки, городе. Так же осуществляется расчёт стоимости путёвки.

Для совершения заказа, необходимо пройти по ссылке Оформить заказ путёвки или выбрать путёвку из пункта главной навигации Заказать тур.

Затем откроется страница с информацией выбранной путёвки, где необходимо ввести количество людей, а так же контактные данные.

Так же предусмотрена возможность просмотра суммарной стоимости выбранного тура.

После заполнения контактной информации необходимо нажать кнопку Отправить, после чего будет выведено сообщение об успешном заказе.



Список используемых источников


1.Веллинг, Т. Разработка Web-приложений на РНР и MySQL / Т. Веллинг. - СПб.: ДиаСофтЮП, 2003. - 672 с.

2.Все о HTML и CSS. - Режим доступа: http://www.css-standart.ru/

3.Гутманс, Э. PHP5 профессионанальное программирование / Э. Гутманс. - М.: Символ-плюс, 2006. - 704 с.

4.Джентльменский Набор Web-Разработчика (PHP 5.3.3, MySQL 5.1, PostgreSQL 8.4 etc.). - Режим доступа: <http://www.denwer.ru/>

5.Информационно-справочная система CSS/HTML. -Режим доступа: http://htmlbook.ru/

6.Клуб профессиональных разработчиков на JS. - Режим доступа: http://clubs.ya.ru/4611686018427388103/

.Кузнецов, М. PHP5 практика создания Web-сайтов / М. Кузнецов. - СПб.: Питер, 2005. - 960 с.

.Кузнецов, М. PHP5 в примерах / М. Кузнецов. - СПб.: Питер, 2005. - 576 с.

9.Web-дизайн онлайн. - Режим доступа: http://www.photoshop-master.ru/

.Харрис, Э. PHP и MySQL для начинающих / Э. Харрис - М.: Вильямс, 2005. - 384 с.


1. Формулировка задачи Целью данного курсового проекта является разработка Web-приложения Туристическое агенство. Для реализации этой задачи необходи

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ