Файл: Разработка сайта кинотеатра «Правда».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 210

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рисунок 2.2 – Главная страница сайта

Несмотря на различное назначение и наполнение разных страниц и используемых для их формирования модулей, каждая из них содержит заголовок, меню и подвал сайта.

Для отображения данных подразделов страниц информационного ресурса имеет смысл вынести их формирование в отдельные модули и подключать их по мере необходимости.

Так модуль showMenu.php[2] – используется для показа меню системы, модуль header.php[3] – для вывода заголовка сайта, footer.php[4] – для отображения подвала.

Для контроля пользовательского входа в систему применяется механизм сессий.

Для отслеживания авторизации пользователей и их прав в системе используется механизм сессий. Сессии в PHP представляют из себя механизм сохранения на стороне сервера информации о компьютере клиента.

Сессии – это группы переменных, которые хранятся на сервере, но относятся к одному уникальному посетителю. Повторю, это ключевой момент: сессии хранятся на сервере.

Для того, чтобы обеспечить взаимодействие каждого посетителя с его данными из его сессии используется файл cookie, команду создать который PHP даёт сам, вам об это беспокоится не нужно. Этот cookie имеет значение только для сервера и не может быть использован для получения данных о пользователе.

На сервере данные сессии хранятся в текстовом файле, и они доступны в программе PHP в массиве $_SESSION. Чтобы сохранить переменную в сессии нужно присвоить ей значение в этом массиве.

Для проверки был ли осуществлен вход пользователя в систему и с какими правами создан модуль chkSession.php, вызываемый перед началом обработки каждого скрипта или вывода страницы сайта.

В данном модуле содержится следующий код:

session_start();

$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 = "kino_pravda";

const DB_USER = "root";

const DB_HOST = "127.0.0.1";

const DB_PASS = ""

?>

3.Описание структуры базы данных и ее функций.

После проработки структуры сайта и разработаем базу данных системы. Сначала необходимо подготовить инфологическую модель базы данных.

Инфологическая модель предметной области представляет собой описание структуры и динамики предметной области, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Это описание выражается в терминах не отдельных объектов предметной области и связей между ними, а их типов, связанных с ними ограничений целостности и тех процессов, которые приводят к переходу предметной области из одного состояния в другое.

Описание каждой сущности производится при помощи данных, называемых атрибутами или свойствами сущности. Атрибуты, как правило, представляют собой определения в высказывании о сущности и для их обозначения, используют имена существительные естественного языка. Сущности имеют связи друг с другом при посредстве включенных в них атрибутов. Каждое объединение атрибутов, составляющих описание одного реального проявления сущности, представляет из себя экземпляр сущности. Прочими словами, экземпляры сущности – это ее реализации, которые отличаются друг от друга и допускают однозначную идентификацию.

Каждый из атрибутов сущности имеет домен. Домен – это некоторое определенное выражение, описывающее значения, которые может принимать данный атрибут. Другими словами, домен – это определенная область возможных значений атрибута. На информационном уровне моделирования данных сопоставление домена атрибуту носит общий характер. К примеру, текстовый атрибут, числовой атрибут, бинарный, дата или "не определен".


Одним из главных компьютерных способов распознавания сущностей в базе данных является присвоение сущностям идентификаторов. Идентификатор сущности также называется ключом.

Построим описание атрибутов сущностей разрабатываемой системы.

Описание сущности Жанр (Таблица 3.1).

Таблица 3.1 – Атрибуты сущности Жанр

Атрибут

Ключ

Значение

Домен

Код жанра

+

Идентификатор записи

Число

Наименование

Наименование жанра

Текст

Описание сущности Производство (Таблица 3.2).

Таблица 3.2 – Атрибуты сущности Производство

Атрибут

Ключ

Значение

Домен

Код производства

+

Идентификатор записи

Число

Наименование

Наименование производителя фильма

Текст

Описание сущности Фильм (Таблица 3.3).

Таблица 3.3 – Атрибуты сущности Фильм

Атрибут

Ключ

Значение

Домен

Код фильма

+

Идентификатор записи

Число

Название

Наименование фильма

Текст

Год выпуска

Год производства

Число

Анонс

Краткий анонс, описание произведения

Текст

Режиссер

Режиссер фильма

Текст

Актеры

Актерский состав

Текст

Продолжительность

Продолжительность в минутах

Число

Возраст

Возрастные ограничения

Текст

Обложка

Имя файла с обложкой

Текст

Код жанра

Жанр, к которому относится

Число

Код производства

Производитель фильма

Число

Описание сущности Пользователь (Таблица 3.4).

Таблица 3.4 – Атрибуты сущности Пользователь

Атрибут

Ключ

Значение

Домен

Код пользователя

+

Идентификатор записи

Число

E-Mail

e-mail пользователя

Текст

Пароль

Пароль для входа в систему

Текст

Роль

Роль пользователя

Число

Имя

Имя пользователя

Текст


Описание сущности Сеансы (Таблица 3.5).

Таблица 3.5 – Атрибуты сущности Сеансы

Атрибут

Ключ

Значение

Домен

Код записи

+

Идентификатор записи

Число

Дата/время

Дата, время трансляции

Датавремя

Код фильма

Фильм, показываемый во время сеанса

Число

Описание сущности Посещение (Таблица 3.6).

Таблица 3.6 – Атрибуты сущности Посещение

Атрибут

Ключ

Значение

Домен

Код пользователя

+

Пользователь, посетивший сеанс

Число

Код записи

Сеанс, на котором присутствовал пользователь

Число

Код типа

Тип выкупленного места

Число

Билет

Номер места

Число

Стоимость

Стоимость билета

Число

Описание сущности Типы мест (Таблица 3.7).

Таблица 3.7 – Атрибуты сущности Типы мест

Атрибут

Ключ

Значение

Домен

Код типа

+

Идентификатор записи

Число

Ряд

Название ряда

Текст

К-во мест

Количество мест в ряду

Число

Цена

Стоимость билета для данного типа

Число

На основе построенных описаний сущностей и их атрибутов построим инфологическую схему базы данных, представленную далее (Рисунок 3.1).

Рисунок 3.1 – Инфологическая схема база данных

Согласно подготовленной концептуальной схемы, построим физическую реализацию базы данных.

Физическое представление схемы базы данных приведено далее (Рисунок 3.2).

Рисунок 3.2 – Физическая схема базы данных

Для доступа и управления данными в программном комплексе системы кинотеатра «Правда», на уровне бизнес-логики приложения используются хранимые процедуры MySQL.


При помощи данных процедур организовывается управление данными, добавление записей в таблицы, удаление записей, проведение комплексных изменений в нескольких таблицах системы путем использования транзакций.

Приведем пример кода для процедуры afishaSel:

CREATE DEFINER = 'root'@'%'

PROCEDURE kino_pravda.afishaSel(IN _snDate date)

BEGIN

SELECT

seance.id_sn,

seance.snDate,

seance.id_fl,

films.flName,

films.flYear,

films.flNotes,

films.flRegisser,

films.flActors,

films.flTime,

films.flAge,

films.id_gr,

genree.grName,

films.id_pr,

produced.prName,

films.flCover

FROM seance

INNER JOIN films

ON seance.id_fl = films.id_fl

INNER JOIN genree

ON films.id_gr = genree.id_gr

INNER JOIN produced

ON films.id_pr = produced.id_pr

WHERE date (snDate) = _snDate

ORDER BY snDate;

END

Данная процедура используется для получения информации о демонстрации фильмов на определенную дату.

4. Описание структуры клиентской части.

4.1 Описание интерфейса «Обычный пользователь».

Начало работы начинается с главной страницы сайта (Рисунок 4.1). Для

Рисунок 4.1 – Главная страница сайта

Для получения доступа к функционалу пользователя, необходимо воспользоваться кнопкой вход, которая направит пользователя на форму запроса данных для входа в систему, после использования которой меню системы примет вид (Рисунок 4.2).

Рисунок 4.2 – Меню обычного пользователя

Появившийся новый пункт меню История служит для просмотра истории посещений кинотеатра пользователем. Для завершения работы необходимо использовать кнопку Выход.

4.2 Описание интерфейса «Администратор».

Если воспользоваться входом в систему под аккаунтом администратора меню системы кинотеатра примет следующий вид (Рисунок 4.3).

Рисунок 4.3 – Меню администратора

В данном виде меню появится пункт Управление. При помощи данного пункта администратор системы имеет возможность вносить изменения в справочники системы, регистрировать новые фильмы, назначать показы сеансов.