Добавлен: 20.05.2023
Просмотров: 165
Скачиваний: 3
Структурная схема сайта показана на рисунке (Рисунок 2.1).
Каждая страница ресурса представлена отдельным php модулем.
Так главная страница – модуль index.php. Страница «О Компании» - модуль aboutus.php.
Несмотря на различное назначение и наполнение разных страниц и используемых для их формирования модулей, каждая из них содержит заголовок, меню и подвал сайта.
Для отображения данных подразделов страниц информационного ресурса имеет смысл вынести их формирование в отдельные модули и подключать их по мере необходимости.
Так модуль showMenu.php – используется для показа меню системы, модуль header.php – для вывода заголовка сайта, footer.php – для отображения подвала.
Для контроля пользовательского входа в систему применяется механизм сессий.
Для отслеживания авторизации пользователей и их прав в системе используется механизм сессий. Сессии в PHP представляют из себя механизм сохранения на стороне сервера информации о компьютере клиента.
Сессии – это группы переменных, которые хранятся на сервере, но относятся к одному уникальному посетителю. Повторю, это ключевой момент: сессии хранятся на сервере.
Для того, чтобы обеспечить взаимодействие каждого посетителя с его данными из его сессии используется файл cookie, команду создать который PHP даёт сам, вам об это беспокоится не нужно. Этот cookie имеет значение только для сервера и не может быть использован для получения данных о пользователе.
На сервере данные сессии хранятся в текстовом файле, и они доступны в программе PHP в массиве $_SESSION. Чтобы сохранить переменную в сессии нужно присвоить ей значение в этом массиве.
Для проверки был ли осуществлен вход пользователя в систему и с какими правами создан модуль chkSession.php, вызываемый перед началом обработки каждого скрипта или вывода страницы сайта.
В данном модуле содержится следующий код:
<?php
$id_us = 0;
$usRole = 0;
$usName = "";
if(isset($_SESSION["id_us"]))
$id_us = (int)$_SESSION["id_us"];
if(isset($_SESSION["usRole"]))
$usRole = (int)$_SESSION["usRole"];
if(isset($_SESSION["usName"]))
$usName = $_SESSION["usName"];
Здесь переменные $id_us, $usRole, $usName используются для получения информации о коде пользователя, его имени и правах входа. Если переменная $id_us после проверки равна 0 – значит пользователя в системе не зарегистрировано.
Если $id_us > 0 и $гsRole>0 значит в систему вошел администратор, если при не нулевом $id_us значение $usRole равно 0 – в настоящее время работу с сайтом осуществляет рядовой пользователь.
В зависимости от значений данных переменных система будет выдавать ту или иную информацию, откроет или наоборот запретит доступ к определенным пунктам меню системы.
Также для организации связи с базой данных и получения или добавления в нее информации необходимо установить соединение с сервером базы данных. Связь с базой данных устанавливается при помощи определенных параметров, характеризующих соединение. Для упрощения и параметризации организации связи с базой данных системы подготовим модуль ini.php, в котором определим параметры конфигурации соединения. Исходный код данного модуля:
<?php
// авторизация роли
const USER = 0;
const ADMIN = 1;
// база данных, соединение
const DB_NAME = "wellonce";
const DB_USER = "root";
const DB_HOST = "localhost";
const DB_PASS = "";
?>
Описание структуры базы данных и ее функций
После проработки структуры сайта и разработаем базу данных системы. Сначала необходимо подготовить инфологическую модель базы данных.
Инфологическая модель предметной области представляет собой описание структуры и динамики предметной области, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Это описание выражается в терминах не отдельных объектов предметной области и связей между ними, а их типов, связанных с ними ограничений целостности и тех процессов, которые приводят к переходу предметной области из одного состояния в другое.
Описание каждой сущности производится при помощи данных, называемых атрибутами или свойствами сущности. Атрибуты, как правило, представляют собой определения в высказывании о сущности и для их обозначения, используют имена существительные естественного языка. Сущности имеют связи друг с другом при посредстве включенных в них атрибутов. Каждое объединение атрибутов, составляющих описание одного реального проявления сущности, представляет из себя экземпляр сущности. Прочими словами, экземпляры сущности – это ее реализации, которые отличаются друг от друга и допускают однозначную идентификацию.
Каждый из атрибутов сущности имеет домен. Домен – это некоторое определенное выражение, описывающее значения, которые может принимать данный атрибут. Другими словами, домен – это определенная область возможных значений атрибута. На информационном уровне моделирования данных сопоставление домена атрибуту носит общий характер. К примеру, текстовый атрибут, числовой атрибут, бинарный, дата или "не определен".
Одним из главных компьютерных способов распознавания сущностей в базе данных является присвоение сущностям идентификаторов. Идентификатор сущности также называется ключом.
Построим описание атрибутов сущностей разрабатываемой системы
Описание сущности Новости (Таблица 3.1).
Таблица 3.1 – Атрибуты сущности Новости
|
Атрибут |
Ключ |
Значение |
Домен |
|
Код новости |
+ |
Идентификатор записи |
Число |
|
Название |
Наименование фильма |
Текст |
|
|
Дата |
Дата новости |
Число |
|
|
Код новости |
Новость к которой отностися. |
Текст |
Описание сущности Пользователь (Таблица 3.2).
Таблица 3.2 – Атрибуты сущности Пользователь
|
Атрибут |
Ключ |
Значение |
Домен |
|
Код пользователя |
+ |
Идентификатор записи |
Число |
|
|
e-mail пользователя |
Текст |
|
|
Пароль |
Пароль для входа в систему |
Текст |
|
|
Роль |
Роль пользователя |
Число |
|
|
Имя |
Имя пользователя |
Текст |
Для доступа и управления данными в программном комплексе системы сайта «Welonce.ru», на уровне бизнес-логики приложения используются хранимые процедуры MySQL.
При помощи данных процедур организовывается управление данными, добавление записей в таблицы, удаление записей, проведение комплексных изменений в нескольких таблицах системы путем использования транзакций.
Приведем пример кода для процедуры register:
<?php
/**
* Created by PhpStorm.
* User: admin
* Date: 17.03.2019
* Time: 0:24
*
* Регистрация пользователя в системе
*/
include_once ("chkSession.php");
// проверить вход в систему если выполнен - перейти на главную
if($id_us > 0) {
header("Location: index.php");
exit;
}
include_once ("header.php");
include_once ("showMenu.php");
?>
<form id="newUser" action="regUser.php" method="post" class="ml-auto mr-auto col-md-8 col-lg-6">
<h2>Регистрация нового пользователя</h2>
<div class="form-group">
<label>Имя</label>
<input type="text" name="usName" value="" class="form-control" required="required">
</div>
<div class="form-group">
<label>E-Mail</label>
<input type="email" name="usMail" value="" class="form-control" required="required">
</div>
<div class="form-group">
<label>Пароль</label>
<input type="password" id="usPass" name="usPass" value="" class="form-control" required="required">
</div>
<div id="lastPass" class="form-group">
<label>Повтор пароля</label>
<input type="password" id="usPass2" name="usPass2" value="" class="form-control" required="required">
</div>
<button type="submit" class="btn btn-success">Зарегистрировать</button>
<a href="index.php" class="btn btn-warning">Отмена</a>
</form>
<?php
include_once ("footer.php");
Данная процедура используется для получения информации о демонстрации фильмов на определенную дату.
Описание структуры клиентской части
Описание интерфейса «Обычный пользователь»
Начало работы начинается с главной страницы сайта (Рисунок 4.1). Для
Рисунок 4.1 – Главная страница сайта
Для получения доступа к функционалу пользователя, необходимо воспользоваться кнопкой вход, которая направит пользователя на форму запроса данных для входа в систему, после использования которой меню системы примет вид (Рисунок 4.2).
Рисунок 4.2 – Меню обычного пользователя
Для завершения работы необходимо использовать кнопку Выход.
Описание интерфейса «Администратор»
Если воспользоваться входом в систему под аккаунтом администратора меню примет следующий вид (Рисунок 4.3).
Рисунок 4.3 – Меню администратора
Инструкция пользователя
Для перемещения и управления функционалом необходимо использовать систему меню информационной системы (Рисунок 4.7).
Рисунок 4.7 – Меню информационной системы
Для входа в систему служит кнопка вход, для регистрации – Регистрация. По кнопке регистрация происходит переход на форму регистрации в системе (Рисунок 4.8).
Рисунок 4.8 – Форма регистрации
Для зарегистрированных пользователей доступна возможность комментирования записей
Рисунок 4.9 – Велонс ру
Заключение
В ходе выполнения данной работы были решены следующие задачи
- дано общее описание автоматизируемого объекта;
- построена модель базы данных;
- спроектировано и реализовано приложение для работы и управления созданной базой данных с применением web-технологий.
В процессе выполнения работы была создана база данных, с применением среды MySQL. Реализация проекта велась с применением языков CSS, HTML, PHP, а также м использованием языка SQL запросов для обращения и изменения информации в связанной базе данных системы.
Результатом работы явилось достижение целей:
- закрепление теоретического материала по дисциплинам, связанных с изучением баз данных;
- практические навыки создания web-ресурса с применением языка программирования PHP.
Разработана информационная система сайта Welonce.ru Система создана с применением современных средств и технологий, имеет адаптивный дизайн, проверена и протестирована для отображения на мобильных и десктопных устройствах.
Литература
- Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: Учебное пособие / В.Ю. Пирогов. - СПб.: БХВ-Петербург, 2009. - 528 c.
- Вадим Дунаев. HTML, скрипты и стили. BHV, Санкт-Петербург, 2015. ISBN 978-5-9775-3317-1.
- Н. Закас, Джереми Мак-Пик, Джо Фосетт. Ajax для профессионалов. Перевод: Александр Киселев. Символ, Санкт-Петербург, 2015. ISBN 978 5 93286-081-6.
- К. Блессинг, Роб Черни, К. Шмитт. Применение Web-стандартов CSS и Ajax для больших сайтов. Корона-Век, Санкт-Петербург, 2011. ISBN 978 5 7931-0844-7.
- Adobe Dreamweaver CS6. Официальный учебный курс. Эксмо, Москва, 2014. ISBN 978-5-699-69655-0.
- Чои Вин. Как спроектировать современный сайт. Питер, Санкт-Петербург, 2011. ISBN 978-5-459-00579-0.
- А. Годин, К. Джонсон, К. Уоррен, М. Уэбер, Брайан Хоган. Книга веб-программиста: секреты профессиональной разработки веб-сайтов. Питер, Санкт-Петербург, 2013. ISBN 978-5-459-01510-2.
- Алан Купер, Дэйв Кронин, Кристофер Носсел, Роберт Рейман. Алан Купер об интерфейсе. Основы проектирования взаимодействия. Символ, Санкт-Петербург, 2015. ISBN 978-5-93286-132-5.
- Стив Круг. Как сделать сайт удобным. Юзабилити по методу Стива Круга. Питер, Санкт-Петербург, 2010. ISBN 978-5-49807-515-0.
- Кирилл Сухов. HTML 5. Путеводитель по технологии. ДМК, Москва, 2013. ISBN 978-5-94074-910-3.