![](/stc/img/evkova.png)
Разработка туристического сайта (Техническое задание и выбор средств реализации)
Содержание:
ВВЕДЕНИЕ
Персональный компьютер и Интернет, их доступность и надежность, способствуют проникновению во все сферы общества новых информационных технологий. Эти технологии обеспечивают рост производительности в сфере услуг, в частности и в туризме. Ведь туризм и информация неразделимы.
Сейчас уже трудно представить эффективную работу туристической фирмы без собственного сайта. Для турагентства — это быстрый выход на клиентов. Основным требованием к сайту туристического агентства является оперативность. На сайте турагентства нужна в первую очередь информация о конкретных предложениях.
Разработка сайта представляет собой четкую последовательность действий. В наше время, самостоятельно сделать сайт можно несколькими способами. Также существует немало сторонних фирм, занимающихся разработкой и раскруткой сайтов. Разработка и раскрутка сайта- различные понятия, которые можно рассматривать отдельно.
Темой данной курсовой работы является именно разработка сайта туристического агентства. Соответственно, целью работы является разработка сайта-визитки туристического агентства. В итоге должен получится сайт, на котором располагается информация о работе агентства, услугах, предоставляемых им и контактной информации.
В проекте требуется решение следующих задач:
- Изучение HTML-языка.
- Исследование основных понятий
- Разработка сайта
- Наполнение ресурса информацией
- Разработать руководство пользователя
Практическая значимость проекта заключается в том, что с помощью данного сайта можно ознакомиться с текущей деятельностью турфирмы в сети интернет.
1. Техническое задание и выбор средств реализации
Система представляет собой базу данных, которую смогут использовать сотрудники турфирмы. В базе данных осуществлен поиск, что позволяет быстро получить доступ к нужной информации. При её применении станет легче добавлять информацию о новых направлениях.
Основные возможности программы:
- ввод информации о направлениях в категории «Популярные направления»;
- вывод информации об организации;
- регистрация/авторизация пользователей;
- простой и удобный интерфейс для работы администратора.
Для решения поставленной задачи были выделены следующие средства:
- язык гипертекстовой разметки;
- язык программирования PHP;
- СУБД MySql;
Наилучшее решение — хранить информацию типа списков, пользователей и т.д. в БД. Однако база данных далеко не всегда статичное образование, чаще наоборот, она регулярно пополняться и корректируется. Для легкости управления этими БД, изменения и добавления данных существуют системы управления базами данных (СУБД).
Одна из самых популярных СУБД в современных интернет-технологиях, бесспорно, MySQL.
База данных, разрабатываемая в курсовом проекте, упрощает и ускоряет процесс обработки информации путем организации запросов к базе данных и отображения необходимой информации на экране.
Вывод и отображение информации на сайте реализуется средствами гипертекстовой разметки HTML, каскадными таблицами стилей CSS и языка программирования PHP.
2. Описание модулей серверной части программы и их взаимодействие
В процессе проектировании серверной части ресурса, были выделены следующие модули разделов сайта и активностей пользователя формируемых динамически:
- регистрация и авторизация клиентов с учётом прав пользователя;
- личный кабинет администратора;
- специальный раздел «Популярные направления»;
Рисунок 1 – Основные файлы веб страниц
Для реализации текущих задач было принято решение разработать несколько модулей, которые будут связываться с СУБД и запрашивать либо изменять информацию.
Все модули представлены в Таблице 1.
Таблица 1 – Основные модули для динамической обработки информации
Модуль |
Описание |
Login.php |
Модуль авторизации и регистрации пользователя |
Admin.php |
Модуль личного кабинета |
Popular.php |
Модуль раздела «Фильм дня» |
Модуль login.php – предназначен для обработки процесса регистрации и авторизации пользователей.
Файл содержит в себе две HTML формы, предназначенные для вышеуказанных задач, а так же PHP код, который содержит функционал для обработки введённой информации методом POST.
Одной из функцией является – проверка на наличие ошибок и вывод соответствующей информации при не соответствии требованиям (30 символов < Логин < 3 символов, Логин должен состоять из букв Латинского алфавита и т.д.).
Следующий модуль Admin.php – предназначен для отображения личного кабинета администратора. Содержит в себе форму для ввода информации для раздела «Популярные направления», а именно «Наименование», «Кол-во звёзд» и «Цена». После отправки формы, вышеуказанная информация отправляется в БД в соответствующие столбцы.
Информация из этой таблицы отображается на странице Фильм дня «popular.php» путём SQL запроса.
3. Описание структуры базы данных и ее функций
Для реализации необходимого функционала была создана база «bazasite», с таблицами «users» для обеспечения процесса регистрации/авторизации, «tur» для хранения информации для категории «Популярные направления»
Данные в полях «password» - шифруются по алгоритму MD5.
MD5 - 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом из Массачусетского технологического института (Massachusetts Institute of Technology, MIT) в 1991 году. Широко применяется для проверки целостности информации и хранения хешей паролей.
Рисунок 2 – ER модель
Cписок данных хранящихся в таблицах базы данных:
- информация о пользователях;
- информация для раздела «Популярные направления»;
Таблица «users», хранит в себе следующую информацию:
- «id» (числовое поле) порядковый номер пользователя формируемый автоматически;
- «login» (текстовое поле) имя пользователя, введённое при регистрации;
- «password» (текстовое поле) пароль в зашифрованном виде, введённый при регистрации;
Таблица «tur», хранит в себе следующую информацию:
- «id» (числовое поле) порядковый номер пользователя формируемый автоматически;
- «name» (текстовое поле) наименование страны тура;
- «stars» (текстовое поле) количество звёзд;
- «price» (текстовое поле) цена тура;
4. Описание структуры клиентской части
Клиентская часть сайта состоит из нескольких страниц.
Основные разделы сайта:
- Домашняя;
- О фирме;
- Популярные направления;
- Контакты.
Если посетитель авторизируется как «Администратор», ему становится доступен дополнительный раздел «Личный кабинет», для управления и редактирования информации.
Чтобы авторизироваться/зарегистрироваться на ресурсе, необходимо нажать на кнопку «Личный кабинет», которая находится в «Шапке» сайта, чтобы попасть на страницу авторизации (рисунок 3).
Рисунок 3 – Кнопка «Личный кабинет»
Если пользователь не зарегистрирован, ему необходимо внести информацию в определённые поля и нажать кнопку «Зарегистрироваться» (рисунок 4).
Рисунок 4 – Страница авторизации
ЗАКЛЮЧЕНИЕ
В процессе разработки данного ресурса, я обрёл навык работы с PHP и MySql, что позволило мне открыть для себя новые способы разработки динамических веб-страниц. Так, я смог упростить взаимодействие с элементами сайта, выведя их в отдельные файлы, организовал удобное добавление новых позиций.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.
- Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
- Прохоренок, Н. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера / Н. Прохоренок. - СПб.: БХВ - Петербург., 2010. - 900 с.
- Мазуркевич, А. PHP: настольная книга программиста / А. Мазуркевич. - М.: Новое знание, 2003. - 480 с.
- Богданов, М.Р. Перспективные языки веб-разработки / М.Р. Богданов. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
- http://biblioclub.ru/index.php?page=book&id=428953
- Никсон, Р. Создаем динамические web-сайты с помощью PHP, MySQL и JavaScript / Р. Никсон. - П.: Питер, 2011. - 496 с.
- PHP, SQL [Electronic resource] / блог. - Россия, 2010.: http://phpsql.ru/.
- Томсон, Л. Разработка Web-приложений на РНР и MySQL/ Л. Томсон. - М.: ДиаСофтЮП, 2003. - 672 с.
- PHPForum [Электронный ресурс] /форум.- Россия, 2003. - Режим доступа: http://phpforum.ru. - Дата доступа: 09.02.2012.
<!DOCTYPE html ru>
<html>
<head>
<meta charset="UTF-8">
<title>Сайт турфирмы</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="content">
<div id="head">
<div class="menu">
<a href="index.php"><img src="logo.png" alt=""></a>
<a href="index.php" class="link">Главная</a>
<a href="about.php" class="link">О фирме</a>
<a href="popular.php" class="link">Популярные направления</a>
<a href="contacts.php" class="link">Контакты</a>
<a href="login.php" class="link">Личный кабинет</a>
</div>
</div>
<div class="all">
<div class="banner">
<h1>Идеальные туры для поездок с детьми!</h1>
<p>Сезонное предложение, торопись!</p>
<a href="" class="more">Подробнее...</a>
</div>
<h3>Немного о нас</h3>
<p>
Мы обслуживаем более 20 млн клиентов в год, предлагая отдых в 180 странах мира. Свыше 300 отелей в более чем 30 странах мира, 6 авиакомпаний, 14 круизных лайнеров и др. Только в Европе мы имеем свыше 3 000 офисов продаж.
Мы обладаем самым большим чартерным флотом в Европе – более 130 самолетов.</p>
<div class="popular">
<h2>Популярные направления:</h2>
</div>
<div class="var var1">
<div class="pic1"></div>
<h3>Турция</h3>
<p>г. Стамбул</p>
<p>От 15 000р</p>
</div>
<div class="var var2">
<div class="pic2"></div>
<h3>Тунис</h3>
<p>г. Габес</p>
<p>От 10 000р</p>
</div>
<div class="var var3">
<div class="pic3"></div>
<h3>ОАЭ</h3>
<p>г. Абу-Даби</p>
<p>От 25 000р</p>
</div>
</div>
<div class="footer">
<p>Туристическое агенство "Мегатур" 2020г</p>
</div>
</div>
</body>
</html>
<!DOCTYPE html ru>
<html>
<head>
<meta charset="UTF-8">
<title>Сайт турфирмы</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="content">
<div id="head">
<div class="menu">
<a href="index.php"><img src="logo.png" alt=""></a>
<a href="index.php" class="link">Главная</a>
<a href="about.php" class="link">О фирме</a>
<a href="popular.php" class="link">Популярные направления</a>
<a href="contacts.php" class="link">Контакты</a>
<a href="login.php" class="link">Личный кабинет</a>
</div>
</div>
<div class="all">
<div class="about">
<h3>О нашей компании</h3>
<p>Группа компаний, занимающая лидирующие позиции на мировом туристическом рынке. Турфирма образована в 2014 году в результате слияния двух крупнейших европейских туристических компаний. Штаб-квартира объединенной компании расположена в России, ее акции котируются на Лондонской фондовой бирже.</p>
<p>
Мы обслуживаем более 20 млн клиентов в год, предлагая отдых в 180 странах мира. Свыше 300 отелей в более чем 30 странах мира, 6 авиакомпаний, 14 круизных лайнеров и др. Только в Европе мы имеем свыше 3 000 офисов продаж.
Мы обладаем самым большим чартерным флотом в Европе – более 130 самолетов.</p>
<p>
Турфирма – одна из самых прибыльных туристических компаний в мире, неоднократный лауреат престижной международной премии World Travel Awards, в 2013 году — в номинациях «Лучший в мире туроператор» и «Лучшая в мире чартерная авиакомпания».
</p>
<p>
Оборот компании в 2014/2015 финансовом году составил 20,1 млрд евро, операционная прибыль – 1, 069 млрд евро.
</p>
<p>
Количество сотрудников компании — более 76 000 человек в 130 странах.</p>
<img src="ban2.jpg" alt="" width="100%">
</div>
</div>
<div class="footer">
<p>Туристическое агенство "Мегатур" 2020г</p>
</div>
</div>
</body>
</html>
<!DOCTYPE html ru>
<html>
<head>
<meta charset="UTF-8">
<title>Сайт турфирмы</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="content">
<div id="head">
<div class="menu">
<a href="index.php"><img src="logo.png" alt=""></a>
<a href="index.php" class="link">Главная</a>
<a href="about.php" class="link">О фирме</a>
<a href="popular.php" class="link">Популярные направления</a>
<a href="contacts.php" class="link">Контакты</a>
<a href="login.php" class="link">Личный кабинет</a>
</div>
</div>
<div class="all">
<h2>Контакты</h2>
<h3>Метро: Кантемировская</h3>
<h3>Адрес: ул. Кантемировская, д.47, ТЦ "Кантемировский", 2 этаж, пав. 49</h3>
<h3>Телефон: +7 (495)-000-12-34</h3>
<h3>Почта: info@turfirma.ru</h3>
<div style="position:relative;overflow:hidden;"><a href="https://yandex.ru/maps?utm_medium=mapframe&utm_source=maps" style="color:#eee;font-size:12px;position:absolute;top:0px;">Яндекс.Карты</a><a href="https://yandex.ru/maps/213/moscow/search/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0/?ll=37.646921%2C55.725146&utm_medium=mapframe&utm_source=maps&z=9" style="color:#eee;font-size:12px;position:absolute;top:14px;">Москва — Яндекс.Карты</a><iframe src="https://yandex.ru/map-widget/v1/-/CGSAzOjO" width="100%" height="400" frameborder="1" allowfullscreen="true" style="position:relative;"></iframe></div>
</div>
<div class="footer">
<p>Туристическое агенство "Мегатур" 2020г</p>
</div>
</div>
</body>
</html>
<?php
// Настройки Базы (адрес, логин, пароль, название базы)
$link=mysqli_connect("localhost", "id13654685_root", "_123qwertyU1", "id13654685_bazasite");
if(isset($_POST['submit']))
{
// Вытаскиваем из БД запись, у которой логин равняеться введенному
$query = mysqli_query($link,"SELECT password FROM users WHERE login='".mysqli_real_escape_string($link,$_POST['login'])."' LIMIT 1");
$data = mysqli_fetch_assoc($query);
// Сравниваем пароли
if($data['password'] === md5(md5($_POST['password'])))
{
// Переадресовываем на страницу админки
if ($_POST['login'] === 'admin') {
header("Location: admin.php"); exit();
}
else {
header("Location: index.php"); exit();
}
}
else
{
echo "<h3>Вы ввели неправильный логин / пароль</h3>";
}
}
?>
<?php
if(isset($_POST['submit2']))
{
$err = [];
// проверям логин
if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))
{
$err[] = "Логин может состоять только из букв английского алфавита и цифр";
}
if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)
{
$err[] = "Логин должен быть не меньше 3-х символов и не больше 30";
}
// проверяем, не сущестует ли пользователя с таким именем
$query = mysqli_query($link, "SELECT id FROM users WHERE login='".mysqli_real_escape_string($link, $_POST['login'])."'");
if(mysqli_num_rows($query) > 0)
{
$err[] = "Пользователь с таким логином уже существует в базе данных";
}
// Если нет ошибок, то добавляем в БД нового пользователя
if(count($err) == 0)
{
$login = $_POST['login'];
// Убираем лишние пробелы и делаем двойное хеширование
$password = md5(md5(trim($_POST['password'])));
mysqli_query($link,"INSERT INTO users SET login='".$login."', password='".$password."'");
header("Location: index.php"); exit();
}
else
{
print "<br><b>Ошибки:</b><br>";
foreach($err AS $error)
{
print $error."<br>";
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Курсовая работа</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<a href="index.php" class="back">↩ Вернуться на главную</a>
<div class="content" style="text-align: center;">
<h1>Авторизируйтесь на нашем сайте</h1>
<div class="form login">
<h2>Вход:</h2>
<form method="POST">
Логин: <br>
<input name="login" type="text" required ><br>
Пароль: <br>
<input name="password" type="password" required> <br>
<input name="submit" type="submit" value="Войти">
</form>
</div>
<!-- РЕГИСТРАЦИЯ НАЧИНАЕТСЯ ЗДЕСЬ!!!!!-->
<div class="form register">
<h2>Регистрация:</h2>
<form method="POST">
Логин: <br>
<input name="login" type="text" required ><br>
Пароль: <br>
<input name="password" type="password" required><br>
<input name="submit2" type="submit" value="Зарегистрироваться">
</form>
</div>
</div>
</body>
</html>
<!DOCTYPE html ru>
<html>
<head>
<meta charset="UTF-8">
<title>Сайт турфирмы</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="content">
<div id="head">
<div class="menu">
<a href="index.php"><img src="logo.png" alt=""></a>
<a href="index.php" class="link">Главная</a>
<a href="about.php" class="link">О фирме</a>
<a href="popular.php" class="link">Популярные направления</a>
<a href="contacts.php" class="link">Контакты</a>
<a href="login.php" class="link">Личный кабинет</a>
</div>
</div>
<div class="all">
<h2>Популярные направления на 2020 год</h2>
<table>
<tr class="tbhead">
<td>Наименование</td>
<td>Звёзды</td>
<td>Цена</td>
</tr>
<tr>
<td>Турция</td>
<td>★★★★☆</td>
<td>От 15 000р</td>
</tr>
<tr>
<td>Тунис</td>
<td>★★★☆☆</td>
<td>От 10 000р</td>
</tr>
<tr>
<td>ОАЭ</td>
<td>★★★★★</td>
<td>От 25 000р</td>
</tr>
<?php
$link=mysqli_connect("localhost", "id13654685_root", "_123qwertyU1", "id13654685_bazasite");
$sql = mysqli_query($link, 'SELECT `name`, `stars`, `price` FROM `tur` ');
while ($result = mysqli_fetch_array($sql)) {
if ($result['stars'] == 2) {
$stars = "★★☆☆☆";
}
if ($result['stars'] == 3) {
$stars = "★★★☆☆";
}
if ($result['stars'] == 4) {
$stars = "★★★★☆";
}
if ($result['stars'] == 5) {
$stars = "★★★★★";
}
echo "<tr><td> {$result['name']}</td><td>$stars</td><td> От {$result['price']}р</td></tr>";
}
?>
</table>
</div>
<div class="footer">
<p>Туристическое агенство "Мегатур" 2020г</p>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Панель администратора</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<a href="index.php" class="back">↩ Вернуться на главную</a>
<div class="content">
<h2>Панель администратора</h2>
<h3>Добавить популярное направление:</h3>
<form action="#" method="post">
<p>Наименование:</p>
<input type="text" name="name" required>
<p>Кол-во звёзд:</p>
<input type="text" name="stars" required>
<p>Цена (От):</p>
<input name="price" type="text" required><br>
<input type="submit" name="submit" id="submit" value="Отправить">
</form>
<div class="footer">
<p>Турфирма 2020г</p>
</div>
</div>
</body>
</html>
<?php
$link=mysqli_connect("localhost", "id13654685_root", "_123qwertyU1", "id13654685_bazasite");
if(isset($_POST['submit'])){
$name = $_POST['name'];
$stars = $_POST['stars'];
$price = $_POST['price'];
if ($name != '') {
mysqli_query($link, "INSERT INTO tur SET name='$name', stars='$stars', price='$price' ");
}
}
?>
- Понятие и сущность системы обучения
- Автоматизация банковских операций
- Перевод «ложных друзей переводчика» в научно-техническом тексте.
- Офис управления проектами функции, структура, особенности формирования
- Управление корпоративными инновационными программами (Содержание инновационного менеджмента)
- Особенности инновационного маркетинга.
- Разработка стандартов сервиса для кофейни (Внедрение стандартов сервиса в кофейне)
- Разработка бизнес-плана кофейни (Цель разработки бизнес-плана)
- Разработка бизнес-плана кофейни (Виды бизнес-планирования)
- Разработка стандартов сервиса для кофейни
- Автоматизация обработки обращений в службу технической поддержки (Разработка стандартов сервиса в кофейне)
- Автоматизация обработки обращений в службу технической поддержки