Добавлен: 28.03.2023
Просмотров: 155
Скачиваний: 2
ВВЕДЕНИЕ
Темой исследования является сайт кинотеатра “Ержан”, в данный момент существует большая конкуренция среди различных кинотеатров, которые предоставляют информацию по товарам и услугам. Чтобы создавать конкуренцию, нужно уметь активно и грамотно продвигать свои услуги. С появлением интернета это стало сделать намного проще, ведь в данный момент интернетом пользуется большая часть населения планеты. Создание сайта кинотеатра и его продвижение в интернете, поможет привлечь новых клиентов, будущих посетителей кинотеатра, сделав кинотеатр более конкурентно-способным. Достоинствами разработки будет считаться грамотное оформление сайта, позволяющее посетителю увидеть нужную информацию о фильме, а так же купить билет онлайн с помощью удобного интерфейса
Объектом исследования является: WEB-программирование.
Предметом исследования является: разработка сайта кинотеатра.
Цель данной работы заключается в проектировании и разработке сайта кинотеатра “Ержан”.
Для достижения цели, будут решены следующие поставленные задачи:
Выбор технологии для создания сайта.
Разработка требований к сайту.
Описание хода разработки сайта.
Техническое задание и выбор средств реализации
На сайте будут реализованы следующие разделы сайта:
Авторизация для администратора – реализована на отдельной странице
Логин
Пароль
О нас – информация о кинотеатре
Фильмы – список в формате:
Описание фильма
Постер фильма
Дата начала проката
Поиск по сайту – форма поиска
Главная страница – новинки кино, баннер с призывом купить билет
Для создания внешнего интерфейса веб-сайта применяется язык гипертекстовой разметки HTML5. Для создания дизайна страниц веб-сайта, используются таблицы каскадных стилей CSS3. Для осуществления интерактивности во взаимодействии веб-сайта с пользователем, применяется язык программирования JavaScript. Для взаимодействия сайта с сервером будет использоваться PHP. Для работ работы с базой данных будет использоваться язык SQL.
Рассмотрим каждую технологию подробнее.
HTML5 (англ. HyperText Markup Language) — язык для структурирования и представления содержимого всемирной паутины. Это пятая версия HTML. Хотя стандарт был завершён (рекомендованная версия к использованию) только в 2014 году (предыдущая, четвёртая, версия опубликована в 1999 году), уже с 2013 года браузерами оперативно осуществлялась поддержка, а разработчиками — использование рабочего стандарта (англ. HTML Living Standard). Цель разработки HTML5 — улучшение уровня поддержки мультимедиа-технологий с одновременным сохранением обратной совместимости, удобочитаемости кода для человека и простоты анализа для парсеров.
Во всемирной паутине долгое время использовались стандарты HTML 4.01, XHTML 1.0 и XHTML 1.1. Веб-страницы на практике оказывались свёрстаны с использованием смеси особенностей, представленных различными спецификациями, включая спецификации программных продуктов, например, веб-браузеров, а также сложившихся общеупотребительных приёмов. HTML5 был создан как единый язык разметки, который мог бы сочетать синтаксические нормы HTML и XHTML. Он расширяет, улучшает и рационализирует разметку документов, а также добавляет единый API для сложных веб-приложений.
В HTML5 реализовано множество новых синтаксических особенностей. Например, элементы <video>, <audio> и <canvas>, а также возможность использования SVG и математических формул. Эти новшества разработаны для упрощения создания и управления графическими и мультимедийными объектами в сети без необходимости использования сторонних API и плагинов. Другие новые элементы, такие как <section>, <article>, <header> и <nav>, разработаны для того, чтобы обогащать семантическое содержимое документа (страницы). Новые атрибуты были введены с той же целью, хотя ряд элементов и атрибутов был удалён. Некоторые элементы, например, <a>, <menu> и <cite>, были изменены, переопределены или стандартизированы. API и DOM стали основными частями спецификации HTML5.
HTML5 также определяет некоторые особенности обработки ошибок вёрстки, поэтому синтаксические ошибки должны рассматриваться одинаково всеми совместимыми браузерами.
CSS3 (англ. Cascading Style Sheets — каскадные таблицы стилей) — формальный язык описания внешнего вида документа, написанного с использованием языка разметки.
Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL.
CSS используется создателями веб-страниц для задания цветов, шрифтов, расположения отдельных блоков и других аспектов представления внешнего вида этих веб-страниц. Основной целью разработки CSS являлось разделение описания логической структуры веб-страницы (которое производится с помощью HTML или других языков разметки) от описания внешнего вида этой веб-страницы (которое теперь производится с помощью формального языка CSS). Такое разделение может увеличить доступность документа, предоставить большую гибкость и возможность управления его представлением, а также уменьшить сложность и повторяемость в структурном содержимом. Кроме того, CSS позволяет представлять один и тот же документ в различных стилях или методах вывода, таких как экранное представление, печатное представление, чтение голосом (специальным голосовым браузером или программой чтения с экрана), или при выводе устройствами, использующими шрифт Брайля.
JavaScript - мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили. Является реализацией языка ECMAScript (стандарт ECMA-262).
JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.
Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.
На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.
Название «JavaScript» является зарегистрированным товарным знаком компании Oracle Corporation в США.
PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц») — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.
Язык и его интерпретатор (Zend Engine) разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств и дополнительных модулей для разработки веб-приложений. Основные из них:
- Автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
- Взаимодействие с большим количеством различных систем управления базами данных через дополнительные модули (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO), Redis;
- Автоматизированная отправка HTTP-заголовков;
- Работа с HTTP-авторизацией;
- Работа с cookies и сессиями;
- Работа с локальными и удалёнными файлами, сокетами;
- Обработка файлов, загружаемых на сервер;
- Работа с XForms.
SQL (англ. structured query language — «язык структурированных запросов») — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.
Является прежде всего информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL считается языком программирования, в общем случае (без ряда современных расширений) не является тьюринг-полным, но вместе с тем стандарт языка спецификацией SQL/PSM предусматривает возможность его процедурных расширений.
Изначально SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:
- Создание в базе данных новой таблицы;
- Обавление в таблицу новых записей;
- Изменение записей;
- Удаление записей;
- Выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);
- Изменение структур таблиц.
Со временем SQL усложнился — обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) — и стал приобретать черты, свойственные языкам программирования.
При всех своих изменениях SQL остаётся самым распространённым лингвистическим средством для взаимодействия прикладного программного обеспечения с базами данных. В то же время современные СУБД, а также информационные системы, использующие СУБД, предоставляют пользователю развитые средства визуального построения запросов.
- Описание модулей серверной части программы и их взаимодействие
Рисунок 2.1 - Рисунок структуры серверной части приложения
Таблица 2.3 – Таблица с описанием программных модулей
Наименование модуля |
Функции модуля |
---|---|
Модуль глобальный |
Содержит глобальные функции для корректной работы сайта кинотеатра |
Модуль фильмов |
Выводит пользователю список фильмов |
Модуль пользователя |
Перейдя на страницу авторизации администратора, заполнив поля формы “Логин” и “Пароль” после чего нужно нажать на кнопку «Вход» если данные введены верно, то выводит интерфейс администратора сайта. |
Модуль отзывов |
Вывод всех отзывов, оставленных другими пользователями на сайте, в котором содержатся “Имя”, “Email” и “Текст” отзыва. Заполнив поля формы “Имя”, “Текст”, и нажав на кнопку «Отправить» можно опубликовать отзыв на сайте. Нажав на «Красный крестик» возле отзыва можно удалить конкретный отзыв с сайта, такая функция доступна только если авторизоваться под администратором сайта. |
3. Описание структуры базы данных и ее функций
Рисунок 3.1 – Рисунок структуры базы данных
Запросы к каталогу
Выборка фильма по id
public static function getOneFilm($id) {
$db = ConnectDb::getConnection();
$result = $db->query('SELECT * FROM news WHERE id=' . $id);
return $result->fetch(PDO::FETCH_ASSOC);
}
Вывод всех фильмов с сортировкой по id
public static function getFilms() {
$db = ConnectDb::getConnection();
$result = $db->query('SELECT * FROM news ORDER BY id DESC');
return $result->fetchAll(PDO::FETCH_ASSOC);
}
Добавление фильма
public static function addFilms($title, $text, $date) {
$db = ConnectDb::getConnection();
$image = $_FILES['image']['name'];
$tmpName = $_FILES['image']['tmp_name'];
move_uploaded_file($tmpName, 'web/images/' . $image);
$sql = "INSERT INTO films(title, image, information) VALUES (:title, :image, :information)";
$statement = $db->prepare($sql);
$statement->bindParam(':title', $title);
$statement->bindParam(':image', $image);
$statement->bindParam(':information', $information);
$statement->execute();
header('Location: /films');
}
Удаление фильма по id
public static function deleteFilms($id) {
$db = ConnectDb::getConnection();
$statement = $db->query('DELETE FROM films WHERE id=' . $id);
$statement->execute();
header('Location: /films');
}
Выборка фильмов по id категории
public static function getCategoryFilms($category) {
$db = ConnectDb::getConnection();
$result = $db->query("SELECT * FROM films WHERE category_id = $category");
return $result->fetchAll(PDO::FETCH_ASSOC);
}
Запросы к отзывам
Вывод всех отзывов с сортировкой по id
public static function getReviews() {
$db = ConnectDb::getConnection();
$result = $db->query('SELECT * FROM reviews ORDER BY id DESC');
return $result->fetchAll(PDO::FETCH_ASSOC);
}
Выборка отзыва по id
public static function getReview($id) {
$db = ConnectDb::getConnection();
$result = $db->query('SELECT * FROM reviews WHERE id=' . $id);
return $result->fetch(PDO::FETCH_ASSOC);
}
Добавление отзыва
public static function addReview($name, $text, $email) {
$db = ConnectDb::getConnection();
$sql = "INSERT INTO reviews(name, text, email) VALUES (:name, :text, :email)";
$statement = $db->prepare($sql);
$statement->bindParam(':name', $name);
$statement->bindParam(':text', $text);
$statement->bindParam(':email', $email);
$statement->execute();
header('Location: /reviews');
}
Удаление отзыва
public static function deleteReview($id) {
$db = ConnectDb::getConnection();
$statement = $db->query('DELETE FROM reviews WHERE id=' . $id);
$statement->execute();
header('Location: /reviews');
}
Авторизация администратора
public static function authorization($login, $password) {
$db = ConnectDb::getConnection();
$sql = "SELECT id, admin FROM users WHERE login=:login AND password=:password";
$statement = $db->prepare($sql);
$statement->bindParam(':login', $login);
$statement->bindParam(':password', md5($password));
$statement->execute();
$user = $statement->fetch(PDO::FETCH_OBJ);