Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Разработка сайта кинотеатра «Дружба»

Содержание:

Введение

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

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

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

Целью данной работы является разработка сайта кинотеатра.

Для достижения данной цели необходимо решить следующие задачи:

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

1. Техническое задание и выбор средств реализации

1.1. Техническое задание

Требуется разработать сайт для кинотеатра, который будет отвечать следующим требованиям.

Сайт должен состоять из трех основных частей [1]:

  • серверная часть,
  • база данных,
  • клиентская часть.

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

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

Серверная часть должна обеспечивать взаимодействие базы данных и клиентской части [4].

В структуре сайта должны быть предусмотрены два вида зарегистрированных пользователей:

  • обычный пользователь,
  • администратор.

Администратору должен быть доступен следующий функционал:

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

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

1.2. Обоснование выбора модели данных

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

Модель данных – это способ изображения предметной области в структуре данных [5].

На данный момент существуют несколько даталогических моделей данных: иерархическая, сетевая

Иерархическая модель подходит для построения баз данных с древовидной структурой, которые относятся к старейшему поколению баз данных.

Достоинства:

  • просто описывать иерархические структуры, существующие в реальном мире
  • высокая скорость выполнения запросов, соответствующих структуре данных

Недостатки:

  • часто содержат избыточные данные
  • плохо приспособлены для представления взаимосвязей типа "многие ко многим"
  • неудобный для поиска способ перемещения по базе данных, всегда начинающийся с корня.

В отличие от иерархической модели сетевая модель поддерживает тип связи «многие ко многим». Однако, так как переход от записи к записи осуществляется по ссылкам, вставленным в каждую запись, то базы данных на основе такой модели довольно сложны и требовательны к программному обеспечению [6].

Объектно-ориентированная модель состоит из объектов, их атрибутов, методов и классов [7].

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

На нынешний момент наибольшее распространение получила реляционная модель, в которой данные представлены в виде двумерных таблиц, состоящих из строк и столбцов. Каждой таблице в базе данных присвоено уникальное имя [8].

Каждая таблица соответствует одной сущности, а каждая строка таблицы – одному экземпляру сущности. Каждому столбцу присваивается уникальное для данной таблицы имя.

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

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

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

Для реализации базы данных в данной работе была выбрана реляционная модель.

В качестве системы управления базами данных выбрана MySQL, так как она является одной из самых распространенных, надежных и удобных в обслуживании [9].

В качестве серверного языка был выбран PHP, так как он легко интегрируется с сервером MySQL [10].

Для клиентской части сайта выбраны стандартные средства разработки для таких объектов: язык разметки HTML, стили CSS и язык программирования JavaScript [11].

2. Описание модулей серверной части программы и их взаимодействие

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

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

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

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

Модуль управления данными отвечает за добавление/редактирование/удаление информации в/из базы данных. Использование данного модуля предполагается в основном в интерфейсе администратора и обычного пользователя. В интерфейсе администратора для работы с каждой таблицей предусмотрены три скрипта: один для добавления данных в таблицу, один для редактирования данных в таблице, один для удаления данных из таблицы. В интерфейсе обычного пользователя предусмотрен один скрипт для осуществления изменений в базе данных, связанных с бронированием билетов.

Модуль представления информации отвечает за запрос информации из базы данных и формирование динамического содержания страниц сайта. Данный модуль используется при любом посещении сайта. Он позволяет своевременно отображать изменения текущей информации на страницах сайта. Скрипты, содержащиеся в данном модуле, запрашивают информацию из базы данных, соответствующую определенным критериям, а затем выводят её на страницы сайта.

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

Примеры скриптов представлены в Приложении 1 [12-15].

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

3.1 Разработка инфологической модели

Под разработкой инфологической модели подразумевается построение независимой от СУБД информационной структуры путем объединения информационных требований всех предполагаемых пользователей системы [16].

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

Сущности:

  1. Пользователи
  2. Фильмы
  3. Сеансы
  4. Залы
  5. Бронирование
  6. Отзывы
  7. Клубные карты

Атрибуты сущностей представлены в таблице 1.

Таблица 1

Атрибуты сущностей

Сущность

Атрибут

Пользователи

Логин

Пароль

Фильмы

Название

Жанр

Год выпуска

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

Залы

Название

Количество мест

Сеансы

Номер сеанса

Фильм

Зал

Количество свободных мест

Дата

Время

Бронирования

Номер бронирования

Номер сеанса

Номер клубной карты

Логин пользователя

Количество мест

Отзывы

Идентификационный номер

Текст

Оценка

Фильм

Клубные карты

Номер карты

Сумма покупок

Связи между описанными сущностями представлены в таблице 2.

Таблица 2

Связи между сущностями

Сущность

Связь

Сущность

Бронирование

n

осуществляет

1

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

n

соответствует

1

сеанс

n

соответствует

1

клубная карта

Фильм

1

получает

n

отзыв

1

соответствует

n

сеанс

Сеанс

n

проходит в

1

зал

Связь «осуществляет» представляет собой связь типа «один ко многим», то есть, если пользователь осуществляет бронирование, то одному бронированию соответствует только один пользователь, в то же время, один пользователь может осуществлять несколько бронирований.

Связь «соответствует» также относится к типу «один ко многим»: одной клубной карте или одному сеансу может соответствовать несколько бронирований, но в одном бронировании всегда указан один сеанс и одна клубная карта, а одному сеансу всегда соответствует один фильм, в то время как один и тот же фильм демонстрируют во время многих сеансов.

К этому же типу относится и связь «получает», так как в один фильм получает много отзывов, но каждый отзыв посвящен только одному фильму.

Связь «проходит в» является последним представителем связи типа «один ко многим», что означает, что один сеанс проходит в одном зале, но в одном и том же зале может проходить не один сеанс.

На основе приведенных выше данных построена «ER - диаграмма» [17], которая представлена на рисунке 1.

ER.jpg

Рисунок 1. ER-диаграмма

3.2 Даталогическое проектирование

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

Рассмотрим отдельно таблицы для каждой из выделенных в инфологической модели сущностей [18].

В каждой из представленных ниже таблиц представлены имена столбцов данной таблицы. Красным цветом выделено имя/имена столбца/столбцов, которое является первичным ключом для данной таблицы.

Таблица 3

Пользователи

Логин

Пароль

Таблица 4

Фильмы

Название

Год выпуска

Жанр

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

Таблица 5

Залы

Название зала

Количество мест

Таблица 6

Сеансы

Номер сеанса

Фильм

Зал

Количество свободных мест

Дата

Время

Таблица 7

Бронирование

Номер бронирования

Номер сеанса

Номер клубной карты

Логин пользователя

Количество мест

Таблица 8

Отзывы

Идентификационный номер

Текст

Оценка

Фильм

Таблица 9

Клубные карты

Номер карты

Сумма покупок

На основании приведенных выше таблиц построена схема базы данных (рисунок 2).

Даталогическая схема.jpg

Рисунок 2. Схема базы данных

SQL-запросы для реализации базы данных (запросы для создания всех таблиц базы данных, а также примеры запросов для её заполнения) и скриншоты её реализации в mysql представлены в Приложении 2 [19-20].

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

4.1. Общая структура клиентской части

Общая структура клиентской части представлена на рисунке 3.

Клиентская часть разделена на три больших раздела:

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

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

Структура клиентской части.jpg

Рисунок 3. Общая структура клиентской части

При входе на сайт все пользователи попадают на главную страницу, которая доступна всем пользователям (рисунок 4).

Рисунок 4. Главная страница

В левой части данной странице представлено меню, с помощью которого осуществляется навигация по сайту.

Без регистрации можно перейти по ссылкам:

  • О нас
  • Фильмы
  • Залы
  • Сеансы
  • Отзывы
  • Бронирование
  • Управление данными

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

На рисунке 5 представлена страница «О нас», на которой указана основная информация о кинотеатре. Данная страница является статической.

Рисунок 5. Страница «О нас»

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

  • Название
  • Жанр
  • Год выпуска
  • Возрастное ограничение

C:\Users\Администратор\Desktop\дружба.jpg

Рисунок 6. Страница «Фильмы»

На рисунке 7 представлена страница «Залы». Данная страница является динамической. Данные на страницу загружаются из таблицы «Залы» базы данных. Для каждого зала отображаются все данные из таблицы:

  • Название
  • Количество мест

C:\Users\Администратор\Desktop\дружба.jpg

Рисунок 7. Страница «Залы»

На рисунке 8 представлена страница «Сеансы». Данная страница является динамической. Данные на страницу загружаются из таблицы «Сеансы» базы данных. Для каждого сеанса отображаются все данные из таблицы:

  • Номер
  • Фильм
  • Зал
  • Дата
  • Время
  • Количество свободных мест

Рисунок 8. Страница «Сеансы»

На рисунке 9 представлена страница «Отзывы». Данная страница является динамической. Данные на страницу загружаются из таблицы «Отзывы» базы данных. Для каждого сеанса отображаются все данные из таблицы:

  • Фильм
  • Текст
  • Оценка

C:\Users\Администратор\Desktop\дружба.jpg

Рисунок 9. Страница «Отзывы»

При переходе по ссылке «Бронирование» пользователь попадает на страницу авторизации (рисунок 10), на которой он должен ввести пару логин/пароль, которая была указана им при регистрации на сайте. В случае, если пара логин/пароль указана правильно, то пользователь переходит в часть сайта доступную только зарегистрированным обычным пользователям.

C:\Users\Администратор\Desktop\дружба.jpg

Рисунок 10. Страница «Авторизация»

Для незарегистрированных пользователей со страницы авторизации есть ссылка на страницу «Регистрации» (рисунок 11), на которой пользователь может ввести регистрационные данные, нажать кнопку отправить, пройдя тем самым регистрацию.

Рисунок 11. Страница «Регистрация

После успешной регистрации пользователь автоматически перенаправляется обратно на страницу авторизации.

При переходе по ссылке «Управление данными» пользователь также попадает на страницу «Вход на страницу управления данными» (рисунок 12), на которой он должен ввести пару логин/пароль, которая принадлежит администратору сайта (администратор сайта получает данную пару не с помощью регистрации на сайте, а при внедрении сайта в работу кинотеатра). В случае, если пара логин/пароль указана правильно, то пользователь переходит в часть сайта доступную только администратору.

C:\Users\Администратор\Desktop\дружба.jpg

Рисунок 12. Страница «Вход на страницу управления данными»

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

Интерфейс «Обычный пользователь» состоит из одной страницы «Бронирование» (рисунок 13), которая представляет собой форму, которую пользователю необходимо заполнить для совершения бронирования.

C:\Users\Администратор\Desktop\дружба.jpg

Рисунок 13. Страница «Бронирование

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

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

Основной страницей интерфейса «Администратор» является страница «Управление данными» (рисунок 14).

В левой части данной страницы расположено меню администратора, в котором представлены три группы ссылок, в каждой из которых по шесть ссылок:

  • добавление данных:
  1. Добавление фильма
  2. Добавление зала
  3. Добавление сеанса
  4. Добавление бронирования
  5. Добавление отзыва
  6. Добавление клубной карты
  • редактирование данных:
  1. Редактирование фильма
  2. Редактирование зала
  3. Редактирование сеанса
  4. Редактирование бронирования
  5. Редактирование отзыва
  6. Редактирование клубной карты
  • удаление данных:
  1. Удаление фильма
  2. Удаление зала
  3. Удаление сеанса
  4. Удаление бронирования
  5. Удаление отзыва
  6. Удаление клубной карты

Рисунок 14. Страница «Управление данными»

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

На рисунке 15 представлена форма «Добавление фильма».

Рисунок 15. Страница «Добавление фильма»

После ввода информации и нажатия кнопки «Отправить» данные вносятся в базу данных.

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

На рисунке 16 представлена форма «Редактирование фильма».

Рисунок 16. Страница «Редактирование фильма»

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

На рисунке 17 представлена форма «Удаление фильма».

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

Рисунок 17. Страница «Удаление фильма»

Заключение

В первой главе представлено техническое задание для разработки сайта кинотеатра, которое описывает основные требования к серверной и клиентской частям сайта, а также к базе данных.

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

Во второй главе описана структура серверной части с разбивкой по модулям.

В третьей главе представлен процесс разработки базы данных, который включает в себя следующие этапы:

  • разработку инфологической модели,
  • разработку даталогической модели.
  • физическую реализацию модели.

В четвертой главе описана структура клиентской части приложения.

Таким образом, в процессе выполнения работы решены следующие задачи:

  • разработано техническое задание для разработки сайта,
  • выбрана модель данных и средства разработки всех частей сайта,
  • разработана серверная часть приложения,
  • разработана база данных,
  • разработана клиентская часть приложения.

В результате выполнения работы достигнута её основная цель –разработан сайт кинотеатра.

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

  1. Мейер, Б. Инструменты, алгоритмы и структуры данных / Б. Мейер. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016.
  2. Прохоренок, Н. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера / Н. Прохоренок. - СПб.: БХВ - Петербург., 2010. - 900 с.
  3. Богданов, М.Р. Перспективные языки веб-разработки / М.Р. Богданов. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
  4. Куликов Г.Г. Набатов А.Н. Речкалов А.В. Автоматизированное проектирование информационно-управляющих систем. Системное моделирование предметной области.. — Уфа: Уфимский государственный авиационный технический университет, 1998. — 104 с. — ISBN 5-89611-190-0.
  5. Date, C. J. Database in Depth. — O'Reilly, 2005. — 240 с. — ISBN 0-596-10012-4.
  6. Савельева, Н.В. Язык программирования PHP / Н.В. Савельева. - 2-е изд., испр. - М. : Национальный Открытый Университет «ИНТУИТ», 2016
  7. Никсон, Р. Создаем динамические web-сайты с помощью PHP, MySQL и JavaScript / Р. Никсон. - П.: Питер, 2011. - 496 с.
  8. Томсон, Л. Разработка Web-приложений на РНР и MySQL/ Л. Томсон. - М.: ДиаСофтЮП, 2003. - 672 с.
  9. PHPForum [Электронный ресурс] /форум.- Россия, 2003. - Режим доступа: http://phpforum.ru. - Дата доступа: 09.02.2012.
  10. Харрис, Э. PHP/MySQL для начинающих / Э. Харрис. - М.: Кудиц - образ, 2005.
  11. Парк, Д. PHP и MySQL. Библия программиста / Д. Парк, С. Суэринг. - Диалектика, 2010. - 912 с.
  12. Гущин А.Н. Базы данных: учебник. - М.: Директ-Медиа, 2014. - 266с
  13. Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: «Вильямс», 2006. — 1328 с. — ISBN 0-321-19784-4.
  14. Когаловский М. Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002. — 800 с. — ISBN 5-279-02276-4.
  15. 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.
  16. Федоренко, Е.В.Базы данных: учебное пособие / Е.В. Федоренко, А.С. Самардак. – М. : Находка, 2016. – 116 с.
  17. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс = Database Systems: The Complete Book. — Вильямс, 2003. — 1088 с. — ISBN 5-8459-0384-X.
  18. MySQL 5.7 Reference Manual [Электронный ресурс] // Официальный сайт MySQL URL: https://dev.mysql.com/doc/refman/5.7/en/
  19. Учебное пособие по MySQL [Электронный ресурс] URL:http://www.mysql.ru/docs/man/Tutorial.html
  20. Триггеры в MySQL [Электронный ресурс] URL: https://habrahabr.ru/sandbox/65316/

Приложение 1

Скрипт для добавления информации в базу данных:

<script language="php">

$host='localhost:3306'; // имя хоста (уточняется у провайдера)

$database='cinema'; // имя базы данных, которую вы должны создать

$user='root'; // заданное вами имя пользователя, либо определенное провайдером

$pswd='23021982'; // заданный вами пароль

$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");

mysql_select_db($database) or die("Не могу подключиться к базе.");

mysql_set_charset('utf8');

mysql_query("set_client = 'utf8'");

mysql_query("set character_set_results = 'utf8'");

mysql_query("set collation_connection = 'utf8'");

mysql_query("SET NAMES cp1251");

$query = "INSERT INTO shows (Film, Hall, FreePlaces, Date, Time) VALUES ('" . $_POST['film'] . "','". $_POST['hall'] . "',". $_POST['freeplaces'] . ",'". $_POST['date'] . "','". $_POST['time'] . "')";

mysql_query($query);

header('Location: AddShow.html');

</script>

Успешно отправлено!

Скрипт для редактирования информации в базе данных:

<script language="php">

$host='localhost:3306'; // имя хоста (уточняется у провайдера)

$database='cinema'; // имя базы данных, которую вы должны создать

$user='root'; // заданное вами имя пользователя, либо определенное провайдером

$pswd='23021982'; // заданный вами пароль

$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");

mysql_select_db($database) or die("Не могу подключиться к базе.");

mysql_set_charset('utf8');

mysql_query("set_client = 'utf8'");

mysql_query("set character_set_results = 'utf8'");

mysql_query("set collation_connection = 'utf8'");

mysql_query("SET NAMES cp1251");

$query = "UPDATE shows SET Film = '". $_POST['film'] . "', Hall = '". $_POST['hall'] . "', FreePlaces = ". $_POST['freeplaces'] . ", Date = '". $_POST['date'] . "', Time = '". $_POST['time'] . "' WHERE Number = '" . $_POST['number'] . "'";

mysql_query($query);

header('Location: UpdateShow.html');

</script>

Успешно отправлено!

Скрипт для удаления информации из базы данных:

<script language="php">

$host='localhost:3306'; // имя хоста (уточняется у провайдера)

$database='cinema'; // имя базы данных, которую вы должны создать

$user='root'; // заданное вами имя пользователя, либо определенное провайдером

$pswd='23021982'; // заданный вами пароль

$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");

mysql_select_db($database) or die("Не могу подключиться к базе.");

mysql_set_charset('utf8');

mysql_query("set_client = 'utf8'");

mysql_query("set character_set_results = 'utf8'");

mysql_query("set collation_connection = 'utf8'");

mysql_query("SET NAMES cp1251");

$query = "DELETE from shows WHERE Number = '" . $_POST['number'] . "'";

mysql_query($query);

header('Location: DeleteShow.html');

</script>

Успешно отправлено!

Скрипт авторизации обычного пользователя:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="windows-1251">

<title>Авторизация</title>

<link rel="stylesheet" type="text/css" href="Style.css">

</head>

<body>

<div id="layer1">

<div id="logo">

<a href="Main.html"><canvas id="canvasLogoId" width="130" height="77">

<script src="Logo.js"></script>

</canvas></a>

</div>

<div id="slideShow">

Кинотеатр "Дружба"

</div>

</div>

<div id="tr">

<div id="menu">

<div id="menu0" class="m">

Меню

</div>

<div id="menu1" class="mx">

<a href="About.html">О нас</a>

</div>

<div id="menu2" class="mx">

<a href="Halls.php">Залы</a>

</div>

<div id="menu3" class="mx">

<a href="Shows.php">Сеансы</a>

</div>

<div id="menu4" class="mx">

<a href="Films.php">Фильмы</a>

</div>

<div id="menu7" class="mx">

<a href="Comments.php">Отзывы</a>

</div>

<div id="menu5" class="mx">

<a href="AuthorizationMain.html">Бронирование</a>

</div>

<div id="menu6" class="mx">

<a href="AuthorizationAdm.html">Управление данными</a>

</div>

</div>

</div>

<div id="front">

<h1 align="center" style="color: red">Бронирование</h1>

<form action="test2.php" method="post">

<p>Авторизуйтесь, пожалуйста, для продолжения бронирования.</p>

<p>Логин: <input type="text" name="username" /></p>

<p>Пароль: <input type="text" name="password" /></p>

<p><input type="submit" /></p>

<p>В случае, если Вы еще не зарегистрированы, перейдите на <a href="Registration.html">страницу регистрации</a>.</p>

</form>

</div>

<div id="search">

<form action="http://www.yandex.ru:8081/yandsearch" method="get">

<input type="text" name="text"><br> <input type="submit" value="Найти">

<INPUT TYPE="hidden" NAME="serverurl" VALUE="">

<INPUT TYPE="hidden" NAME="server_name" VALUE="">

<INPUT TYPE="hidden" NAME="referrer1" VALUE="">

<INPUT TYPE="hidden" NAME="referrer2" VALUE="">

</form>

</div>

</div>

</body>

</html>

Скрипт для формирования динамического содержания страницы:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="windows-1251">

<title>Отзывы</title>

<link rel="stylesheet" type="text/css" href="Style.css">

</head>

<body>

<div id="layer1">

<div id="logo">

<a href="Main.html"><canvas id="canvasLogoId" width="130" height="77">

<script src="Logo.js"></script>

</canvas></a>

</div>

<div id="slideShow">

Кинотеатр "Дружба"

</div>

</div>

<div id="tr">

<div id="menu">

<div id="menu0" class="m">

Меню

</div>

<div id="menu1" class="mx">

<a href="About.html">О нас</a>

</div>

<div id="menu2" class="mx">

<a href="Halls.php">Залы</a>

</div>

<div id="menu3" class="mx">

<a href="Shows.php">Сеансы</a>

</div>

<div id="menu4" class="mx">

<a href="Films.php">Фильмы</a>

</div>

<div id="menu7" class="mx">

<a href="Comments.php">Отзывы</a>

</div>

<div id="menu5" class="mx">

<a href="AuthorizationMain.html">Бронирование</a>

</div>

<div id="menu6" class="mx">

<a href="AuthorizationAdm.html">Управление данными</a>

</div>

</div>

<div id="front">

<h1 align="center" style="color: red">Отзывы</h1>

<table>

<tr>

<?php

$host='localhost:3306'; // имя хоста (уточняется у провайдера)

$database='cinema'; // имя базы данных, которую вы должны создать

$user='root'; // заданное вами имя пользователя, либо определенное провайдером

$pswd='23021982'; // заданный вами пароль

$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");

mysql_select_db($database) or die("Не могу подключиться к базе.");

mysql_set_charset('utf8');

mysql_query("set_client = 'utf8'");

mysql_query("set character_set_results = 'utf8'");

mysql_query("set collation_connection = 'utf8'");

mysql_query("SET NAMES cp1251");

for($i=1;$i<=10;$i++)

{

$query = "select * from comments where Id = ".$i."";

$sql = mysql_query($query);

$result = mysql_fetch_array($sql);

$x = $result['Film'];

$y = $result['Text'];

$z = $result['Mark'];

if ($x == null){

echo (' ');

} else {

echo ('<br/>Фильм: ');

echo ('<tr>'.$x.'</tr>');

echo ('<br/>Текст: ');

echo ('<tr>'.$y.'</tr>');

echo ('<br/>Оценка: ');

echo ('<tr>'.$z.'</tr>');

echo ('<br/>');

}

}

?>

</tr>

</table>

</div>

<div id="search">

<form action="http://www.yandex.ru:8081/yandsearch" method="get">

<input type="text" name="text"><br> <input type="submit" value="Найти">

<INPUT TYPE="hidden" NAME="serverurl" VALUE="">

<INPUT TYPE="hidden" NAME="server_name" VALUE="">

<INPUT TYPE="hidden" NAME="referrer1" VALUE="">

<INPUT TYPE="hidden" NAME="referrer2" VALUE="">

</form>

</div>

</div>

</body>

</html>

Приложение 2

Запросы для создания и первичного заполнения базы данных:

CREATE TABLE users

(

Login varchar(50) PRIMARY KEY,

Password varchar(50)

);

CREATE TABLE halls

(

Name varchar(50) PRIMARY KEY,

Places int

);

CREATE TABLE cards

(

Number int PRIMARY KEY AUTO_INCREMENT,

Sum float

);

CREATE TABLE bookings

(

Number int PRIMARY KEY AUTO_INCREMENT,

ShowNumber int,

CardNumber int,

Login varchar(50),

Places int

);

CREATE TABLE comments

(

Id int PRIMARY KEY AUTO_INCREMENT,

Mark int,

Text varchar(250),

Film varchar(50)

);

CREATE TABLE films

(

Name varchar(50) PRIMARY KEY,

Year int,

Type varchar(50),

Age int

);

CREATE TABLE shows

(

Number int PRIMARY KEY AUTO_INCREMENT,

Film varchar(50),

Hall varchar(50),

FreePlaces int,

Date varchar(50),

Time varchar(50)

);

INSERT INTO users (Login, Password) VALUES ('Administrator', '123');

INSERT INTO users (Login, Password) VALUES ('User1', 'Password1');

select * from users;

INSERT INTO halls (Name, Places) VALUES ('Синий', 100);

INSERT INTO halls (Name, Places) VALUES ('Красный', 200);

INSERT INTO halls (Name, Places) VALUES ('Зеленый', 300);

select * from halls;

INSERT INTO cards (Sum) VALUES ( 1000);

INSERT INTO cards (Sum) VALUES ( 2000);

select * from cards;

INSERT INTO bookings (ShowNumber, CardNumber, Login, Places) VALUES (1, 1, 'User1', 3);

INSERT INTO bookings (ShowNumber, CardNumber, Login, Places) VALUES (2, 2, 'User1', 1);

INSERT INTO bookings (ShowNumber, CardNumber, Login, Places) VALUES (3, 1, 'User1', 2);

select * from bookings;

INSERT INTO comments (Mark, Text, Film) VALUES (3, 'Отлично', 'Дюймовочка');

INSERT INTO comments (Mark, Text, Film) VALUES (5, 'Превосходно', 'Дюймовочка');

INSERT INTO comments (Mark, Text, Film) VALUES (0, 'Отвратительно', 'Гном');

select * from comments;

INSERT INTO films (Name, Year, Type, Age) VALUES ('Дюймовочка', 2010, 'Сказка', 6);

INSERT INTO films (Name, Year, Type, Age) VALUES ('Гном', 2011, 'Сказка', 10);

select * from films;

INSERT INTO shows (Film, Hall, FreePlaces, Date, Time) VALUES ('Гном', 'Синий', 90, '08.07.2020', '11:15');

INSERT INTO shows (Film, Hall, FreePlaces, Date, Time) VALUES ('Гном', 'Синий', 90, '08.07.2020', '13:15');

INSERT INTO shows (Film, Hall, FreePlaces, Date, Time) VALUES ('Дюймовочка', 'Красный', 190, '08.07.2020', '11:30');

select * from shows;

Скриншоты:

C:\Users\Администратор\Desktop\111.jpg