Добавлен: 01.04.2023
Просмотров: 385
Скачиваний: 13
В блоках /blocks/header.php и /blocks/footer.php находятся блоки шапки и подвала сайта. Шапка и подвал были вынесены в отдельные блоки для того, чтобы не приходилось прописывать их каждый раз в при создании новой страницы сайта, достаточно лишь сослаться на них при написании страницы.
В блоке /blocks/header.php также присутствует фрагмент кода с php, отвечающий за изменение наименования ссылки “Войти”, на логин, который хранится в COOKIE, после авторизации на сайте.
Блок /blocks/footer.php отвечает за нижнюю страницу сайта, в которой распложены:
· Дублирование навигации сайта
· Номера телефонов компании
· Электронная почта компании, при нажатии происходит переход на about.php
· Адрес компании
2.1.2 Модуль страницы “о нас”.
Наиболее простой модуль, предназначен для перехода на страницу с информацией о компании (рис.4). Модуль находится в onas.php, переход на данную страницу осуществляется посредством клика вкладки “О нас” в шапке сайта или же по клику на ссылку «О компании» в подвале сайта. Для возвращения на главную страницу, нужно нажать на вкладку «Главная» в шапке сайта или же «Главная» в подвале сайта соответственно.
Рисунок 4. Страница о нас.
2.1.3 Модули страницы “Написать нам”
Данная страница (Рис. 5) обрабатывается модулем check.php. Предполагается использование пользователями для обратной связи с компанией посредством электронной почты. Сообщения из полей ввода, должны отправляется на почту, указанную в модуле check.php. Но так как сервер локальный и без домена, письма не отправляются, а анкеты сохраняются в текстовом виде, в папку OpenServer\userdata\temp.
Так же модуль check.php проводит проверку полей, на количество символов. Сообщение должно состоять более чем из 10 символов, Email должен быть разделен знаками “@” и “.”.
При нарушении условий, будет информационная сообщение об ошибке (Рис. 6), при успехе, будет сообщение о успешной отправке анкеты.
Рисунок 5. Страница «Написать нам»
Рисунок 6. Сообщение о неуспехе.
На странице “Войти”, присутствуют две формы, одна предназначена для регистрации, а вторая для авторизации пользователей (рис 7). Данная страница находится в модуле auth.php. Форма регистрации обрабатывается в модуле /validation-form/check1.php, форма авторизации обрабатывается в модуле /validation-form/auth1.php Данная система регистрации и авторизации работает с msql базой данных (users) в которой хранит порядковый номер пользователя – id, логин пользователя – login, пароль пользователя – pass и имя пользователя – name, которые после авторизации будет отображаться в шапке сайта вместо кнопки «Войти», реализовано это следующим PHP кодом:
<?php
if($_COOKIE['user'] == ''):
?>
<a class="btn btn-outline-primary" href="/auth.php">Войти</a>
<?php else: ?>
<a class="btn btn-outline-primary" href="/auth.php"><?=$_COOKIE['user']?></a>
<?php endif;?>
Рисунок 7. Страница “Войти”.
При регистрации, происходит проверка, логин не должен быть меньше 5 символов и не более 90, имя не менее 3 и не более 50 символов, пароль не менее 2 и не более 6 символов. В противном случае, будет перенаправление на страницу с ошибкой (рис.8). За проверку полей и внесение данных в СУБД, отвечает модуль /validation-form/check1.php. Не маловажно для безопасности хэшировать пароли пользователей, непосредственно здесь это происходит при помощи PHP скрипта:
$pass = md5($pass."qwerty12345");
"qwerty12345" – является своего рода ключом, который добавляется к каждому захэшированному паролю и без которого данный пароль невозможно будет расшифровать.
Рисунок 8. Неудачная регистрация.
При имеющейся учетной записи, нужно ввести данные в форму авторизации. При неправильно введенных данных, произойдет переадресация на ошибку (Рис.9), при успешной авторизации, модуль /validation-form/auth1.php создаст COOKIE файл со временем жизни 1 час, в течении которого пользователю не нужно будет вновь авторизоваться на сайте, даже если он закроет браузер т.е. при помощи сессий.
Сессии в PHP представляют из себя механизм сохранения на стороне сервера информации о компьютере клиента.
Сессии – это группы переменных, которые хранятся на сервере, но относятся к одному уникальному посетителю. Повторю, это ключевой момент: сессии хранятся на сервере.
Для того, чтобы обеспечить взаимодействие каждого посетителя с его данными из его сессии используется файл cookie, команду создать который PHP даёт сам, вам об это беспокоится не нужно. Этот cookie имеет значение только для сервера и не может быть использован для получения данных о пользователе.
На сервере данные сессии хранятся в текстовом файле, и они доступны в массиве $_SESSION. Чтобы сохранить переменную в сессии нужно присвоить ей значение в этом массиве.
Реализовано это при помощи данной строки кода:
setcookie('user', $user['name'], time() + 3600, "/");
После чего пользователя перенаправит на главную страницу сайта и ему станет доступен полный список услуг компании (Рис. 10) Также, в верхнем правом углу мы видим имя учетной записи и при переходе на нее мы попадаем на страницу, где можно выйти из учетной записи (Рис. 11). Выход с сайта реализован крайне просто – мы отнимает час жизни COOKIE файла, который был создан при авторизации, реализовано это следующим кодом:
<?php
setcookie('user', $user['name'], time() - 3600, "/");
header('Location: /');
?>
Рисунок 9. Неудачная авторизация.
Рисунок 10. Успешная авторизация.
Рисунок 11. Страница выхода.
2.1.4 Модуль страницы “Контакты”
Данная страница (Рис. 12) обрабатывается модулем kontakti.php. И предназначена для предоставления пользователям исчерпывающей информации о местоположение компании.
На странице использован JavaScript предоставленный сервисом Яндекс.Карты, который отображает нужное нам местоположение на карте, показывает рейтинг компании, тэги, номер телефона, адрес сайта, точный физический адрес, а также, в нем можно почитать или написать отзыв о компании. Помимо всего перечисленного, также, указаны часы работы и при его помощи на мобильных устройствах можно построить маршрут через Яндекс.Навигатор.
Рисунок 12. Страница «Контакты».
phpMyAdmin — веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PhpMyAdmin позволяет через браузер и не только осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL команд.
3 Описание структуры базы данных и ее функций.
В проекте используется одна база данных «register-bd», с одной таблицей «users». База данных имеет тип MyISAM. На таблицу допускается только одна одновременная delete или update операция, и остальные вынуждены ждать завершения текущей операции, что, при больших объемах данных, приводит к серьезным проблемам. Так как объемы данных не столь велики. Данный тип удовлетворяет условиям для данного проекта.
К преимуществам движка можно отнести поддержку полнотекстовый поиск, компрессию и GIS функции. Под хранение таблицы отводятся два файла –данные и индексы. Формат данных платформенно независимый, что позволяет переносить данные с сервера на сервер простым копированием таблицы – это еще одно преймущество.
Кодировка, выбрана utf8_general_ci, так как она лучше всего распознает кириллицу и не возникают проблемы с отображением информации на сайте.
Таблица 1.Структура БД register-bd
Количество таблиц |
Строки |
Тип |
Сравнение |
Размер |
Фрагментирован |
1 |
4 |
MyISAM |
utf8_general_c |
2.2 КиБ |
0 Байт |
Таблица «users» в базе данных «register-bd» хранит всего четыре параметра, id, login, pass и name. Тип для id был выбран – int, для остальных строк - varchar, для того что бы выполнялась корректировка, убирались пробелы и было ограничение по символам.
Рисунок 13. Структура таблицы «users».
4 Описание структуры клиентской части.
4.1 Описание интерфейса «Обычный пользователь».
Пользователем является любой гость сайта, который не авторизирован, на сайте, пользователь может свободно перемещаться по всем структурам сайта, но при этом у него не доступен весь список услуг представленный на главной странице.
4.2 Описание интерфейса «Администратор».
Администратором сайта является любой зарегистрированный пользователь, после входа на сайт, пользователю предоставляется более обширный список услуг компании.
При открытии страницы, пользователю доступны переходы через шапку сайта, а также, через его подвал, где находятся навигационные ссылки.
«Главная» - переход на главную страницу.
«О нас» - переход на страницу с информацией о компании.
«Написать нам» - отправить электронное письмо со своими пожеланиями и предложениями.
«Контакты» - посмотреть местоположение компании на карте, номера телефонов и другие контакты.
«Войти» - осуществить регистрацию или авторизацию на сайте.
Заключение
В результате выполнение задания на курсовую работу проанализировано понятие сайта и этапы его создания.
На следующем этапе выполнения задания курсовой работы было проанализировано и выполнено задание по проектированию структуры сайта автосервиса «Авто-Тема». Для выполнения данной задачи был проведен детальный анализ всех видов требований к данному программному продукту на основании которых, была разработана структура сайта и его содержание.
Используя современные инструменты разработки были определены детали интерфейса сайта, его структура, на базе которых было разработано техническое задание на разработку сайта.
Был разработан сайт для автосервиса. В ходе проектирования были применены современные средства, использован современный дизайн, а также, его работа была протестирована через Open Server.
Созданный сайт может помочь расширить базу потенциальных клиентов и партнеров, повысить узнаваемость и способность создавать конкуренцию другим автосервисам.
Благодаря модулю «Написать нам» пользователи и гости сайта имеют возможность оставить свои предложения и пожелание, либо же связаться с компанией посредством электронной почты.
Литература
1. Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.
2. Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
3. Прохоренок, Н. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера / Н. Прохоренок. - СПб.: БХВ - Петербург., 2010. - 900 с.
4. Мазуркевич, А. PHP: настольная книга программиста / А. Мазуркевич. - М.: Новое знание, 2003. - 480 с.
5. Богданов, М.Р. Перспективные языки веб-разработки / М.Р. Богданов. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016 6. http://biblioclub.ru/index.php?page=book&id=428953
7. Никсон, Р. Создаем динамические web-сайты с помощью PHP, MySQL и JavaScript / Р. Никсон. - П.: Питер, 2011. - 496 с.
8. PHP, SQL [Electronic resource] / блог. - Россия, 2010.: http://phpsql.ru/.
9. Парк, Д. PHP и MySQL. Библия программиста / Д. Парк, С. Суэринг. - Диалектика, 2010. - 912 с.
10. Гудман Д. JavaScript.Библия пользователя, 4-е изд.: Пер. з англ. М.: Изд.дом "Вильямс", 2017. - 960 с.
11. Коггзолл Джон. РНР 5. Полное руководство.: Пер. з англ. М.: Издательский дом "Вильямс", 2016. - 752 с.
12. Грызлов В. Java Script. Изд. 3-е.М.: ДМК Пресс, 2015. 416 с.
13. Хестер Н. Создание Web-страниц в Dreamweaver. М.: НТ Пресс, 2015. – 104 с.
14. Гудман Д. JavaScript и DHTML. Сборник рецептов. Для профессионалов, Питер, 2016. - 122 с.
15. Лещев.Д.Создание интерактивного web-сайта: учебный курс. СПб.:Питер, 2017. - 544 с.
/blocks/footer.php
<footer class=" container pt-4 my-md-5 pt-md-5 border-top">
<div class="row">
<div class="col-12 col-md">
<img class="mb-2" src="/docs/4.3/assets/brand/bootstrap-solid.svg" alt="" width="24" height="24">
<small class="d-block mb-3 text-muted">© 2020 Волков В.С. Группа СБИ-313</small>