![](/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. Описание структуры базы данных и ее функций
Для реализации необходимого функционала была создана база «turbaza», с таблицами «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.
Код странички index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<!DOCTYPE html ru> <html> <head> <meta charset="UTF-8"> <title>Сайт турфирмы</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="content"> <div id="header"> <a href="index.php"><img src="logo.png" width="15%"></a> <div style="display: inline-block;overflow: hidden;"> <h2>Организуем путешествие Вашей мечты!</h2> <p>+7 (495)-000-12-34</p> </div> <div class="menu"> <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> <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> |
Код странички about.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<!DOCTYPE html ru> <html> <head> <meta charset="UTF-8"> <title>О турфирме</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="content"> <div id="header"> <a href="index.php"><img src="logo.png" width="15%"></a> <div style="display: inline-block;overflow: hidden;"> <h2>Организуем путешествие Вашей мечты!</h2> <p>+7 (495)-000-12-34</p> </div> <div class="menu"> <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> <div class="ban2"></div> <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> </div> <div class="footer"> <p>Турфирма 2020г</p> </div> </div> </body> </html> |
Код странички popular.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
<!DOCTYPE html ru> <html> <head> <meta charset="UTF-8"> <title>Популярные направления</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="content"> <div id="header"> <a href="index.php"><img src="logo.png" width="15%"></a> <div style="display: inline-block;overflow: hidden;"> <h2>Организуем путешествие Вашей мечты!</h2> <p>+7 (495)-000-12-34</p> </div> <div class="menu"> <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", "root", "root", "turbaza"); $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> |
Код странички contacts.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<!DOCTYPE html ru> <html> <head> <meta charset="UTF-8"> <title>Контакты</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="content"> <div id="header"> <a href="index.php"><img src="logo.png" width="15%"></a> <div style="display: inline-block;overflow: hidden;"> <h2>Организуем путешествие Вашей мечты!</h2> <p>+7 (495)-000-12-34</p> </div> <div class="menu"> <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> <div class="footer"> <p>Турфирма 2020г</p> </div> </div> </body> </html> |
Код странички login.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Войти</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="content"> <div id="header"> <a href="index.php"><img src="logo.png" width="15%"></a> <div style="display: inline-block;overflow: hidden;"> <h2>Организуем путешествие Вашей мечты!</h2> <p>+7 (495)-000-12-34</p> </div> <div class="menu"> <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> <?php // Настройки Базы (адрес, логин, пароль, название базы) $link=mysqli_connect("localhost", "root", "root", "turbaza"); 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>"; } } ?> <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> <?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>"; } } } ?> <div class="footer"> <p>Турфирма 2020г</p> </div> </div> </body> </html> |
Код странички admin.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Панель администратора</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="content"> <div id="header"> <a href="index.php"><img src="logo.png" width="15%"></a> <div style="display: inline-block;overflow: hidden;"> <h2>Организуем путешествие Вашей мечты!</h2> <p>+7 (495)-000-12-34</p> </div> <div class="menu"> <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> <h2>Панель администратора</h2> <h3>Добавить популярное направление:</h3> <?php $link=mysqli_connect("localhost", "root", "root", "turbaza"); $name = $_POST['name']; $stars = $_POST['stars']; $price = $_POST['price']; if ($name != '') { mysqli_query($link, "INSERT INTO tur SET name='$name', stars='$stars', price='$price' "); } ?> <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> |
- Итальянский ренессанс
- Бизнес-план спортивного магазина
- Принципы спонсорства в спорте
- Факторы, влияющие на качество и конкурентоспособность товаров (Теоретические основы формирования качества и конкурентоспособности продовольственных товаров)
- Факторы, влияющие на качество и конкурентоспособность товаров (Характеристика исследуемых образцов вареных колбас)
- Психологические факторы, влияющие на принятие решения (Процесс принятия решений)
- Разработка конфигурации «Мебельная Фабрика» на платформе 1С: Предприятие
- Разработка и реализация конфигурации «магазин» в среде 1С:Предприятие»
- Менеджмент в ресторанном и гостиничном бизнесе
- Выбор приоритетного подхода к организации премирования производственного персонала и сотрудников аппарата управления
- Менеджмент в системе отношений со СМИ
- Анализ деятельности спортивной организации ЦСКА