Файл: Разработка серверных приложений для WEB - Разработка сайта спортшколы SportLife.pdf
Добавлен: 28.03.2023
Просмотров: 55
Скачиваний: 3
В зависимости от значений данных переменных система будет выдавать ту или иную информацию, доступную для вида пользователя, откроет или наоборот запретит доступ к определенным пунктам меню системы.
Также для организации связи с базой данных и получения или добавления в нее информации необходимо установить соединение с сервером базы данных. Связь с базой данных устанавливается при помощи определенных параметров, характеризующих соединение. Модуль ini.php, в котором содержится следующий код:
<?php
const USER = 0;
const ADMIN = 1;
const DB_NAME = "box";
const DB_USER = "root";
const DB_HOST = "127.0.0.1";
const DB_PASS = "";
Права администратора выдаются только через БД сайта.
Описание структуры базы данных и ее функций
После проработки структуры сайта и разработаем базу данных системы. Сначала необходимо подготовить инфологическую модель базы данных.
Инфологическая модель предметной области представляет собой описание структуры и динамики предметной области, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Данное описание проявляется в терминах не отдельных объектов предметной области и связей между ними, а их типов, связанных с ними ограничений целостности и тех процессов, которые приводят к переходу предметной области из одного состояния в другое.
Описание каждой сущности производится при помощи данных, называемых свойствами сущности или Атрибутами. Атрибуты, как правило, представляют собой определения в высказывании о сущности и для их обозначения, они используют имена существительные естественного языка. Сущности, как правило имеют связи друг с другом при посредстве включенных в них атрибутов. Каждое объединение атрибутов, составляющих описание одного реального проявления сущности, представляет из себя экземпляр сущности. Другими словами, экземпляры сущности – это ее реализации, которые отличаются друг от друга и допускают однозначную идентификацию.
Каждый из атрибутов сущности имеет домен. Домен – это определенное выражение, которое может принимать данный атрибут. Или по другому , домен – это определенная область возможных значений атрибута. На информационном уровне моделирования данных сопоставление домена атрибуту носит общий характер. Например: числовой атрибут, текстовый атрибут, , бинарный, дата или "не определен".
Основной компьютерный способ распознавания сущностей в базе данных является присвоение сущностям идентификаторов. Идентификатор сущности-это ключ.
Построим описание атрибутов сущностей разрабатываемой системы.
(Таблица 3.1).
Описание сущности Категории
Атрибут |
Ключ |
Значение |
Домен |
Код категории |
+ |
Идентификатор записи |
Число |
Наименование |
Наименование категории |
Текст |
(Таблица 3.2).
Описание сущности Пользователи
Атрибут |
Ключ |
Значение |
Домен |
Код пользователя |
+ |
Идентификатор записи |
Число |
Имя |
Имя пользователя |
Текст |
|
|
E-mail пользователя |
Текст |
|
Пароль |
Пароль пользователя |
Текст |
|
Группа |
Группа пользователя |
Число |
|
Статус |
Статус оплаты пользователем |
Текст |
|
Роль |
Роль пользователя |
Текст |
(Таблица 3.3).
Описание сущности Инструкторы
Атрибут |
Ключ |
Значение |
Домен |
Код инструктора |
+ |
Идентификатор записи |
Число |
Имя |
Имя инструктора |
Текст |
|
Группа |
В какой группе инструктор преподает |
Текст |
|
|
E-mail инструктора |
Текст |
|
Автомобиль |
Автомобиль инструктора |
Текст |
|
Коробка передач |
Коробка передач на автомобиле |
Текст |
|
Номер телефона |
Номер телефона инструктора |
Текст |
(Таблица 3.4)
Описание сущности Ученики
Атрибут |
Ключ |
Значение |
Домен |
Код пользователя |
+ |
Идентификатор записи |
Число |
Имя |
Имя ученика |
Текст |
|
|
E-mail ученика |
Текст |
|
Статус |
Статус оплаты ученика |
Текст |
|
Группа |
Группа ученика |
Текст |
|
Номер телефона |
Номер телефона ученика |
Текст |
На основе построенных описаний сущностей и их атрибутов построим схему базы данных, представленную далее (Рисунок 3.1).
Рисунок 3.1 – Схема базы данных
Для доступа и управления данными в программном комплексе системы Спорт школа «SportLife», на уровне бизнес-логики приложения используются хранимые процедуры MySQL.
Данные процедуры организовывают управление данными, удаление записей, добавление записей в таблицы, проведение комплексных изменений в нескольких таблицах системы.
.
Описание структуры клиентской части
Описание интерфейса «Обычный пользователь»
Начало работы начинается с главной страницы сайта (Рисунок 4.1).
Рисунок 4.1 – Главная страница сайта
Для получения доступа к функционалу пользователя, необходимо воспользоваться кнопкой «Вход», которая направит пользователя на форму запроса данных для входа в систему. (Рисунок 4.2)
Появившийся новый пункт “Ваши данные”, служит для просмотра имени, e-mail, группы и статуса оплаты обучения для обучающегося. Для завершения работы необходимо использовать кнопку Выйти.
Описание интерфейса «Администратор»
Если воспользоваться входом в систему под аккаунтом администратора я использовал следующий код:
<?php
if($usRole > 0) {
?>
<!-- Dropdown -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbardrop" data-toggle="dropdown">
Панель администратора
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="genree.php">Справочник</a>
<a class="dropdown-item" href="placeType.php">Ручная запись</a>
<div class="dropdown-divider"></div>
</div>
</li>
<?php
}
?>
Рисунок 4.3 – Меню администратора
В данном виде меню появилось несколько пунктов: Справочник и ручная запись. При помощи пункта «Справочник» система имеет возможность вносить изменения в справочники системы. При помощи пункта «Ручная запись» администратор системы может вручную перезаписать ученика или зарегистрировать его, если нужно будет.
Рисунок 4.4 – Новый справочник
Для удобного просмотра сайта, можно использовать меню системы. (4.5).
Рисунок 4.5 – Меню сайта
Так же присутствует кнопка «вход», чтобы войти в свой личный кабинет и регистрация, для регистрации новых пользователей. (Рисунок 4.6).
Рисунок 4.6 – Меню авторизации пользователя.
По кнопке регистрация происходит переход на форму регистрации в системе (Рисунок 4.7).
Рисунок 4.7 – Форма регистрации
Рисунок 4.8– Страница с ценами
Заключение
В процессе выполнения работы была создана база данных, с применением среды MySQL. Реализация проекта велась с применением языков CSS, HTML, PHP, а также частично использованием языка SQL запросов для изменения информации в связанной базе данных системы.
Результатом работы явилось достижение целей:
- практические навыки создания web-ресурса с применением языка программирования PHP.
- закрепление теоретического материала по дисциплинам, связанных с изучением баз данных;
Литература
- Чои Вин. Как спроектировать современный сайт. Питер, Санкт-Петербург, 2011. ISBN 978-5-459-00579-0.
- Дронов, В. HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов / В. Дронов. - М.: БХВ-Петербург, 2011. - 416 c. ISBN 978-5-9775-0596-3.
- Adobe Dreamweaver CS6. Официальный учебный курс. Эксмо, Москва, 2014. ISBN 978-5-699-69655-0.
- Н. Закас, Джереми Мак-Пик, Джо Фосетт. Ajax для профессионалов. Перевод: Александр Киселев. Символ, Санкт-Петербург, 2015. ISBN 978 5 93286-081-6.
- Вадим Дунаев. HTML, скрипты и стили. BHV, Санкт-Петербург, 2015. ISBN 978-5-9775-3317-1.
- Алан Купер, Дэйв Кронин, Кристофер Носсел, Роберт Рейман. Алан Купер об интерфейсе. Основы проектирования взаимодействия. Символ, Санкт-Петербург, 2015. ISBN 978-5-93286-132-5
- Кирилл Сухов. HTML 5. Путеводитель по технологии. ДМК, Москва, 2013. ISBN 978-5-94074-910-3.
Исходные коды
<?php
include_once ("header.php");
include_once ("showMenu.php");
?>
<div class="jumbotron">
<h4>Спортиная школа бокса "SportLife"</h4>
<p>
</p>
<img src="img/box2.jpg" alt="" class="img-fluid">
<hr class="my-4">
<p class="lead">
<a class="btn btn-primary btn-lg" href="info.php" role="button">Цены</a>
</p>
</div>
<?php
include_once ("footer.php");
<?php
?>
<header class="bg-secondary">
<nav class="navbar navbar-expand-md navbar-green bg-dark sticky-top">
<!-- Brand -->
<!-- <a class="navbar-brand" href="index.php">-->
<!-- </a>-->
<!-- Toggler/collapsibe Button -->
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
<span class="navbar-toggler-icon"></span>
</button>
<!-- Navbar links -->
<div class="collapse navbar-collapse" id="collapsibleNavbar">
<ul class="navbar-nav main-menu">
<li class="nav-item">
<a class="nav-link" href="index.php">Главная</a>
</li>
<li class="nav-item">
<a class="nav-link" href="info.php">Цена</a>
</li>
<li class="nav-item">
<a class="nav-link" href="zapis.php">Запись на первую бесплатную тренировку</a>
</li>
<li class="nav-item">
<a class="nav-link" href="aboutus.php">О нас</a>
</li>
<?php
if($usRole > 0) {
?>
<!-- Dropdown -->
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbardrop" data-toggle="dropdown">
Панель администратора
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="genree.php">Справочник</a>
<a class="dropdown-item" href="placeType.php">Ручная запись</a>
<div class="dropdown-divider"></div>
</div>
</li>
<?php
}
?>
</ul>
<ul class="navbar-nav ml-auto admin-menu">
<?php
if($id_us == 0) {
?>
<li class="nav-item">
<form class="form-inline" action="register.php" method="get">
<button class="btn btn-outline-warning">Регистрация</button>
</form>
</li>
<li class="nav-item ml-1">
<form class="form-inline" action="enter.php" method="get">
<button class="btn btn-success">Вход</button>
</form>
</li>
<?php
}
else {
?>
<li class="nav-item">
<form class="form-inline" action="exit.php">
<button class="btn btn-danger" type="submit">Выход</button>
</form>
</li>
<?php
}
?>
</div>
</ul>
</nav>
</header>