Файл: РАЗРАБОТКА ПРОМО САЙТА ДЛЯ МАГАЗИНА НИЖНЕГО БЕЛЬЯ PSSPWR.RU.pdf
Добавлен: 18.05.2023
Просмотров: 188
Скачиваний: 3
СОДЕРЖАНИЕ
1. Техническое задание и выбор средств реализации
2. Описание модулей серверной части программы и их взаимодействие
3. Описание структуры базы данных и ее функций
4. Описание структуры клиентской части
4.1. Описание интерфейса «Обычный пользователь»
Клиентская часть приложения делится на три части с разными настройками доступа :
- гостевая часть (светло серый фон) – данная часть состоит из страницы авторизации и страницы регистрации, которые доступны всем посетителям сайта (зарегистрированным или незарегистрированным),
- административная часть (темно серый фон) – данная часть состоит из страницы администратора, а также страниц добавления, редактирования и удаления информации, которые доступны только администратору сайта,
- пользовательская часть – данная часть состоит из страниц сайта, представляющих основную информацию об услугах праздничного агентства, которые доступны только зарегистрированным пользователям

Общая структура клиентской части приложения представлена на рисунке .
4.1. Описание интерфейса «Обычный пользователь»
Интерфейс обычного пользователя состоит из страниц, которые
представляют собой основное содержание сайта магазина нижнего белья:
- Главная,
- О нас,
- Обратная связь,
- Меню авторизации,
- Окно регистрации
4.2. Описание интерфейса «Администратор»
Интерфейс администратора предназначен для управления данными в
базе данных.
На главной странице интерфейса администратора представлены три
ссылки, каждая из которых открывает соответствующую форму:
- добавление информации в базу данных,
- редактирование информации в базе данных,
- удаление информации из базы данных.
Заключение
В первом разделе дана краткая характеристика организационной
структуры онлайн-магазина нижнего белья ручной работы PssPwr.ru, а также описаны основные бизнес-процессы, при выполнении которых используется сайт.
Обоснован выбор следующих средств разработки:
- язык запросов – SQL,
- система управления базами данных – MySQL,
- язык гипертекстовой разметки – HTML,
- язык программирования на стороне сервера – PHP.
Во втором разделе разработана структура серверной части приложения,
а также приведены описания основных модулей.
В третьем разделе разработана база данных, которая предназначена для
хранения учетных записей пользователей, а также всей динамической
информации сайта.
В четвертом разделе разработана структура клиентской части
приложения с разделением на интерфейсы администратора и обычного
пользователя.
Таким образом, в процессе выполнения работы были решены все
задачи, поставленные перед началом её выполнения:
1. Произведен анализ организационной структуры промо-сайта
2. Выбраны технические и программные средства разработки
3. Произведена декомпозиция бизнес-процессов деятельности организации
4. Спроектирована серверная часть приложения
5. Спроектирована базу данных
6. Разработана структура сайта
В результате выполнения работы достигнута её основная цель –
разработан промо-сайт онлайн-магазина нижнего белья PssPwr.ru.
Список литературы
- Куликов Г.Г. Набатов А.Н. Речкалов А.В. Автоматизированное проектирование информационно-управляющих систем. Системное моделирование предметной области.. — Уфа: Уфимский государственный авиационный технический университет, 1998. — 104 с. — ISBN 5-89611-190-0.
- Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.
- Прохоренок, Н. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера / Н. Прохоренок. - СПб.: БХВ - Петербург., 2010. - 900 с.
- Богданов, М.Р. Перспективные языки веб-разработки / М.Р. Богданов. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
- Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
- Никсон, Р. Создаем динамические web-сайты с помощью PHP, MySQL и JavaScript / Р. Никсон. - П.: Питер, 2011. - 496 с.
- Томсон, Л. Разработка Web-приложений на РНР и MySQL/ Л. Томсон. - М.: ДиаСофтЮП, 2003. - 672 с.
- PHPForum [Электронный ресурс] /форум.- Россия, 2003. - Режим доступа: http://phpforum.ru. - Дата доступа: 09.02.2012.
- Харрис, Э. PHP/MySQL для начинающих / Э. Харрис. - М.: Кудиц - образ, 2005.
- Парк, Д. PHP и MySQL. Библия программиста / Д. Парк, С. Суэринг. - Диалектика, 2010. - 912 с.
- Гущин А.Н. Базы данных: учебник. - М.: Директ-Медиа, 2014. - 266с
- Дейт К. Дж. Введение в системы баз данных = IntroductiontoDatabaseSystems. — 8-е изд. — М.: «Вильямс», 2006. — 1328 с. — ISBN 0-321-19784-4.
- Peter Pin-Shan Chen «The Entity-Relationship Model — Toward a Unified View of Data» (англ.) // ACM Transactions on Database Systems (TODS) : Сб. — Нью-Йорк: ACM, 1976. — Vol. 1. — P. 9-36. — ISSN 0362-5915. — DOI:10.1145/320434.320440.
- Когаловский М. Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002. — 800 с. — ISBN 5-279-02276-4.
- Федоренко, Е.В.Базы данных: учебное пособие / Е.В. Федоренко, А.С. Самардак. – М. : Находка, 2016. – 116 с.
- Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системыбазданных. Полныйкурс = Database Systems: The Complete Book. — Вильямс, 2003. — 1088 с. — ISBN 5-8459-0384-X.
- MySQL 5.7 Reference Manual [Электронныйресурс] // Официальныйсайт MySQL URL: https://dev.mysql.com/doc/refman/5.7/en/
- Учебное пособие по MySQL [Электронный ресурс] URL:http://www.mysql.ru/docs/man/Tutorial.html
- Триггеры в MySQL [Электронный ресурс] URL: https://habrahabr.ru/sandbox/65316/
- Date, C. J. Database in Depth. — O'Reilly, 2005. — 240 с. — ISBN 0-596-10012-4.
Приложение
Фрагмент кода модуля управления пользователями, который добавляет в базу данных регистрационные данные нового пользователя:
<?php
$dbc = mysqli_connect('localhost', 'root', '', 'lesson') OR DIE('Ошибка подключения к базе данных'); // Устанавливает новое соединение с сервером MySQL и проверка OR DIE
if(isset($_POST['submit'])){ /*Определяет, была ли установлена переменная значением, отличным от NULL*/
$username = mysqli_real_escape_string($dbc, trim($_POST['username'])); // trim — Удаляет пробелы (или другие символы) из начала и конца строки
$password1 = mysqli_real_escape_string($dbc, trim($_POST['password1'])); // Эта функция используется для создания допустимых в SQL строк,
$password2 = mysqli_real_escape_string($dbc, trim($_POST['password2'])); // которые можно использовать в SQL выражениях. Заданная строка кодируется в экранированную SQL строку, используя текущий набор символов подключения.
if(!empty($username) && !empty($password1) && !empty($password2) && ($password1 == $password2)) {
$query = "SELECT * FROM `signup` WHERE username = '$username'";
$data = mysqli_query($dbc, $query); // Выполняет запрос к базе данных
if(mysqli_num_rows($data) == 0) { // Возвращает количество рядов результата запроса
$query ="INSERT INTO `signup` (username, password) VALUES ('$username', SHA('$password2'))";
mysqli_query($dbc,$query);
echo 'Всёготово, можетеавторизоваться';
mysqli_close($dbc); // Закрывает ранее открытое соединение с базой данных
exit();
}
else {
echo 'Логин уже занят';
}
}
}
?>
Фрагмент кода модуля стиля CSS
a {
text-decoration: none;
color: #302172;
}
ul {
list-style-type: none;
}
body {
font-family: Arial, sans-serif;
font-size: 0.85em;
margin: 0 20%;
}
header {
width: 100%;
height: 400px;
background: url("../images/4.jpg");
position: relative;
margin-bottom: 15px;
}
header ul {
width: 100%;
position: absolute;
bottom: 0;
text-align: center;
}
Фрагмент кода модуля отображения данных, который создает COOKIES файлы на сайте, и проверяет подключение к базе данных:
<?php
$dbc = mysqli_connect('localhost', 'root', '', 'lesson'); // Устанавливает новое соединение с сервером MySQL
if(!isset($_COOKIE['user_id'])) /*Определяет, была ли установлена переменная значением, отличным от NULL*(нажатие на кнопку)*/ {
if(isset($_POST['submit'])) {
$user_username = mysqli_real_escape_string($dbc, trim($_POST['username'])); // Эта функция используется для создания допустимых в SQL строк,
$user_password = mysqli_real_escape_string($dbc, trim($_POST['password'])); // которые можно использовать в SQL выражениях. Заданная строка кодируется в экранированную SQL строку, используя текущий набор символов подключения.
if(!empty($user_username) && !empty($user_password))/*если оба поля не пустые создаем запрос в базу данных*/ {
$query = "SELECT `user_id` , `username` FROM `signup` WHERE username = '$user_username' AND password = SHA('$user_password')"; // Secure Hash Algorithm 1 — алгоритмкриптографическогохеширования.
$data = mysqli_query($dbc,$query); // Выполняет запрос к базе данных (с помощью неё можно сделать всё)
if(mysqli_num_rows($data) == 1) { // Если нашло хотя бы одну запись, тогда выполняем ->
$row = mysqli_fetch_assoc($data); // Обрабатывает ряд результата запроса и возвращает ассоциативный массив (Если нашло, то присваевыемровуусернейм и усерайди)
setcookie('user_id', $row['user_id'], time() + (60*60*24*30)); // Задает cookie, которое будет передано клиенту вместе с другими HTTP-заголовками.
setcookie('username', $row['username'], time() + (60*60*24*30)); // Возвращает текущую метку системного времени Unix (30 дней будет жить куки)
$home_url = 'http://' . $_SERVER['HTTP_HOST'];
header('Location: '. $home_url); // Используется для отправки HTTP-заголовка. После того как скрипт прошел, переходим на главную страницу
}
else {
echo 'Errorpassword';
}
}
else {
echo 'Авторизуйтесь для входа';
}
}
}
<?php
unset($_COOKIE['user_id']); //unset удаляет переменную
unset($_COOKIE['username']);
setcookie('user_id', '', -1, '/');
setcookie('username', '', -1, '/');
$home_url = 'http://' . $_SERVER['HTTP_HOST'];
header('Location: ' . $home_url);
?>
<?php
$dbc = mysqli_connect('localhost', 'root', '', 'lesson') OR DIE('Ошибка подключения к базе данных'); // Устанавливает новое соединение с сервером MySQL и проверка OR DIE
if(isset($_POST['submit'])){ /*Определяет, была ли установлена переменная значением, отличным от NULL. Когд происходит отправка данных формы php - скрипту, информация из этой формы становится доступной ему.*/
$username = mysqli_real_escape_string($dbc, trim($_POST['username'])); // trim — Удаляет пробелы (или другие символы) из начала и конца строки
$password1 = mysqli_real_escape_string($dbc, trim($_POST['password1'])); // Эта функция используется для создания допустимых в SQL строк,
$password2 = mysqli_real_escape_string($dbc, trim($_POST['password2'])); // которые можно использовать в SQL выражениях. Заданная строка кодируется в экранированную SQL строку, используя текущий набор символов подключения.
if(!empty($username) && !empty($password1) && !empty($password2) && ($password1 == $password2)) {
$query = "SELECT * FROM `signup` WHERE username = '$username'";
$data = mysqli_query($dbc, $query); // Выполняет запрос к базе данных
if(mysqli_num_rows($data) == 0) { // Возвращает количество рядов результата запроса
$query ="INSERT INTO `signup` (username, password) VALUES ('$username', SHA('$password2'))";