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

Разработка сайта по обмену книгами BookChange

Содержание:

Введение

В современном мире взаимодействие большого числа компаний происходит через сеть Интернет. Начиная с 1969 года, мировая сеть - Интернет стремительно развивалась, в наше время превратилась в одно из основных средств, используемых для общения, развлечений, рекламы, торговли и источник разнообразной полезной информации для любой категории пользователей. Количество компаний и пользователей, которые используют преимущества этой технологии, увеличивается чуть ли каждый день. Интернет затрагивает все виды сфер жизни общества – экономическую, политическую, духовную и даже социальную. В связи с глобальным развитием сети Интернет, в программировании все более резко начала выделяться отдельная его отрасль - WEBпрограммирование. Именно поэтому компания “BookChange” решила создать сайт для своего проекта по обмену книгами, так как в последние годы было замечено повышение интереса к обмену книг.

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

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

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

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

-изучение создания Web-приложений и сценариев,

-интеграция Web-приложений в статический контент сайта для актуализации отображаемых данных

-изучение протоколов сети Интернет

-изучение правил построения приложений и принципов работы приложений в сети Интернет.

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

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

Сайт компании “BookChange” в первую очередь предоставляет пользователям возможность публиковать предложения об обмене книг. Можно создать как предложение об обмене книги (пользователь, создавший предложение, выступает отправителем книги), так и просьбу об отправке (создатель предложения является получателем книги). Также сайт содержит: библиотеку из книг, в которой можно узнать больше о книге и из которой впоследствии выводится информация для создания предложения об обмене; раздел с информацией об авторах, также содержащий краткий список их произведений; профиль, в котором пользователь может просмотреть свою статистику по обменам и изменить данные учётной записи.

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

Для написания статической части сайта будет использоваться язык разметки HTML версии 5.0, вышедшей в 2014 и являющимся современным стандартом создания веб-сайтов. Дополнительно для придания внешнего вида используются стили, написанные на языке CSS3. Для некотороых интерактивных элементов используются скрипты, написанные на языке Javascript. Для создания веб-приложений и динамического изменения веб-страниц используется язык программирования PHP версии 7.4. Он используется для изменения баз данных отображения актуальной информации из них, изменения содержимого веб-страницы в соответствии с этими данными, обеспечения средств авторизации пользователя. PHP-скрипты, в отличие от Javascript, выполняются на сервере, и пользователь получает уже готовую HTML-страницу, по этому для их выполнения необходим веб-сервер. В качестве сервера используется Apache OpenServer. Для создания и взаимодействия с базами данных используется реляционная система управления базами данных (СУБД) MySQL. Для управления базами данных MySQL используется открытое программное обеспечение MariaDB.

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

Первым этапом разработки было создание макета для всех страниц. Были размечены места для шапки сайта, отдел для основного контента страницы, отдел для бокового меню и подвал сайта. Чёрными границами были выделены границы контейнеров для более понятного расположения элементов на сайте.

Следующим этапом было уже непосредственно создание страниц каждого раздела сайта.

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

Модуль регистрации представляет собой набор из полей для ввода данных, таких как логин пользователя, его электронный адрес и пароль. Для каждого из этих полей установлены определённые проверки, например, не должен повторяться логин, электронный адрес должен соответствовать определённому формату (mail@example.com), пароли в обоих полях должны совпадать. В случае успешной регистрации пользователю будет выдано соответствующее сообщение и предложение вернуться на главную. Позже пользователь может войти под указанными реквизитами.

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

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

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

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

Форма добавления книги содержит список авторов с поиском и поле для ввода своего автора (если его нет в списке), список жанров и поля ввода названия и года написания.

Страница с авторами содержит список авторов с удобными вариантами сортировки.

Модуль страницы автора выводит информацию о нем – дату рождения и биографию.

Следующий модуль – книги на обмен. На странице выводятся текущие доступные обмены и ссылка на форму добавления обмена. У каждого обмена имеется кнопка «Запросить». Информация каждого обмена состоит из названия книги со ссылкой на информацию о книге, описание состояния книги, имя пользователя отправителя и город нахождения книги, издатель книги и год издательства.

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

При нажатии кнопки «Запросить» открывается форма ввода адреса для отправки.

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

Модуль профиля предоставляет некоторую информацию о пользователе, возможность редактирования профиля (если пользователь является владельцем профиля или администратором) и личную статистику.

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

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

Ниже приведена схема взаимосвязи модулей.

Рисунок 1. Схема взаимодействия модулей.

Далее представлена таблица входных и выходных данных модулей.

Таблица 1.

Входные и выходные данные модулей

Название модуля

Входные данные

Выходные данные

Главная страница

Описание, основные ссылки

Переход к основным разделам сайта

Продолжение таблицы 1.

Название модуля

Входные данные

Выходные данные

Шапка сайта

Ссылки на разделы сайта

Навигация по основным разделам

Регистрация

Данные пользователя: логин, пароль, электронный адрес

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

Авторизация

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

Проверка данных на соответствие авторизация пользователя создание сессии

Библиотека

Данные из базы данных

Список книг

Страница книги

Данные из базы данных

Информация о книге

Форма добавления книги

Введённые пользователем данные, данные из базы данных

Создание новой записи в таблице базы данных

Список авторов

Данные из базы данных

Список авторов

Страница автора

Данные из базы данных

Данные автора

Страница книг на обмен

Данные из базы данных

Список книг, доступных для обмена

Форма добавления обмена

Введённые пользователем данные, данные из базы данных

Создание записи в базе данных о новом обмене

Форма отклика на обмен

Введённые пользователем данные

Новый ответ на обмен, изменение статуса обмена

Страница желаний пользователей

Данные из базы данных

Список книг, которых пользователи хотят получить

Форма добавления желания

Данные из базы данных, введённые пользователем данные

Создание записи в базе данных о новом желании

Форма отклика на желание

Данные из базы данных

Адрес для отправки книги, новый ответ на желание, обновление статуса желания

Боковое меню

Данные из базы данных, данные для авторизации пользователя

Доступ к личным разделам сайта, данные из базы данных

Профиль

Данные из базы данных

Отображение информации о пользователе

Изменение профиля

Данные из базы данных, введённые пользователем данные

Изменение данных учётной записи пользователя

Сообщения

Данные из базы данных

Вывод статусов обменов

Изменение статуса

Действие пользователя, данные из базы данных

Изменение статуса обмена, изменение статуса сообещний

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

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

Ниже приведён рисунок ER-диаграммы базы данных:

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

Далее будут приведены содержания таблиц базы данных.

В таблице 2 описано содержание таблицы базы данных с книгами.

Таблица 2

Таблица “books”

Название столбца

Тип данных

Назначение

Действия со столбцом

Book_id

Int(8)

Идентификатор книги. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

Book_name

Varchar(50)

Содержит название книги.

Отображение на странице, добавление введённых данных.

author

Int(5)

Содержит ссылку на таблицу с авторами. Внешний ключ.

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

Year_orig

Int(4)

Содержит дату написания книги.

Отображение на странице, добавление введённых данных.

Продолжение таблицы 2

Название столбца

Тип данных

Назначение

Действия со столбцом

genre

Int(5)

Содержит ссылку на жанр. Внешний ключ.

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

annotation

Varchar(10000)

Содержит аннотацию к книге. Может быть NULL.

Отображение на странице.

visits

Bigint(20)

Содержит счётчик посещений.

Отображение на странице, увеличение при открытии страницы.

В таблице 3 описано содержание таблицы базы данных с авторами.

Таблица 3

Таблица “id_authors”

Название столбца

Тип данных

Назначение

Действия со столбцом

Author_id

Int(5)

Идентификатор автора. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

author

Varchar(50)

Имя и фамилия автора.

Отображение на странице, добавление введенных данных со страницы.

A_birth

date

Дата рождения автора. Может быть NULL.

Отображение на странице.

A_death

Date

Дата смерти автора. Может быть NULL.

Отображение на странице.

biography

Varchar(5000)

Биография автора. Может быть NULL.

Отображение на странице.

В таблице 4 описано содержание таблицы базы данных с жанрами.

Таблица 4

Таблица “id_genres”

Название столбца

Тип данных

Назначение

Действия со столбцом

Genre_id

Int(5)

Идентификатор жанра. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

genre

Varchar(20)

Название жанра.

Отображение на странице.

В таблице 5 описано содержание таблицы базы данных с издателями.

Таблица 5

Таблица “id_publishers”

Название столбца

Тип данных

Назначение

Действия со столбцом

Publisher_id

Int(5)

Идентификатор издателя. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

publisher

Varchar(30)

Содержит наименование издателя.

Отображение на странице.

В таблице 6 описано содержание таблицы базы данных с пользователями.

Таблица 6

Таблица “users”

Название столбца

Тип данных

Назначение

Действия со столбцом

User_id

Int(8)

Идентификатор пользователя. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

Username

Varchar(20)

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

Отображение на странице, добавление введенных данных.

Email

Varchar(50)

Электронный адрес пользователя.

Отображение на странице, добавление введенных данных.

Password

Varchar(255)

Пароль в зашифрованном виде.

Добавление введенных данных, проверка при входе.

Role_id

Varchar(5)

Идентификатор роли пользователя. 1 – обычный пользователь, 3 – администратор. По умолчанию – 1.

Ограничения функций.

Date_of_reg

Date

Дата регистрации пользователя.

Добавление при создании записи.

total

Int(11)

Общее количество обменов.

Отображение на странице.

Firstname

Varchar(20)

Реальное имя пользователя. Может быть NULL.

Отображение на странице, добавление введенных данных.

surname

Varchar(40)

Реальная фамилия пользователя. Может быть NULL.

Отображение на странице, добавление введенных данных.

В таблице 7 описано содержание таблицы базы данных с отзывами.

Таблица 7

Таблица “reviews”

Название столбца

Тип данных

Назначение

Действия со столбцом

Review_id

Int(8)

Идентификатор отзыва. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

Book_id

Int(11)

Идентификатор книги, на которую сделан отзыв. Внешний ключ.

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

Creator_id

Int(11)

Идентификатор пользователя, сделавшего отзыв. Внешний ключ.

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

Review_content

Varchar(15000)

Содержание отзыва.

Отображение на странице, добавление введенных данных.

Write_time

date

Дата и время написания отзыва.

Отображение на странице.

В таблице 8 описано содержание таблицы базы данных с предложениями об обмене.

Таблица 8

Таблица “exchange”

Название столбца

Тип данных

Назначение

Действия со столбцом

exch_id

Int(8)

Идентификатор предложения. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

user_id

Int(8)

Идентификатор пользователя, создавшего предложение. Внешний ключ.

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

book_id

Int(11)

Идентификатор предлагаемой книги. Внешний ключ.

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

publisher

Int(5)

Идентификатор издателя книги. Внешний ключ.

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

Year_pub

Int(4)

Год издательства книги.

Отображение на странице, добавление новых данных.

Продолжение таблицы 8

Название столбца

Тип данных

Назначение

Действия со столбцом

Book_condition

Varchar(20)

Описание состояния книги. По умолчанию – “-”.

Отображение на странице, добавление новых данных.

city

Varchar(20)

Город, в котором находится создатель предложения.

Отображение на странице, добавление новых данных.

status

Varchar(5)

Статус обмена. По умолчанию – “wait” (ожидание отклика). Другие статусы: “pend” – ожидание отправки, “sent” – книга отправлена, ожидание подтверждения получения, “done” – операция выполнена.

Отображение на странице.

В таблице 9 описано содержание таблицы базы данных желаний пользователей.

Таблица 9

Таблица “wishes”

Название столбца

Тип данных

Назначение

Действия со столбцом

wish_id

Int(8)

Идентификатор желания. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

user_id

Int(8)

Идентификатор пользователя, создавшего желание. Внешний ключ.

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

book_id

Int(11)

Идентификатор желаемой книги. Внешний ключ.

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

publisher

Int(5)

Идентификатор издателя книги. Внешний ключ. Может быть NULL

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

Year_pub

Int(4)

Год издательства книги. Может быть NULL.

Отображение на странице, добавление новых данных.

city

Varchar(20)

Город, в котором находится создатель предложения.

Отображение на странице, добавление новых данных.

Продолжение таблицы 9

Название столбца

Тип данных

Назначение

Действия со столбцом

Address

Varchar(150)

Полный адрес, по которому надо отправить книгу.

Отображение на странице, добавление новых данных.

Status

Varchar(5)

Статус обмена. По умолчанию – “wait” (ожидание отклика). Другие статусы: “pend” – ожидание отправки, “sent” – книга отправлена, ожидание подтверждения получения, “done” – операция выполнена.

Отображение на странице.

В таблице 10 описано содержание таблицы базы данных с сообщениями.

Таблица 10

Таблица “messages”

Название столбца

Тип данных

Назначение

Действия со столбцом

Message_id

Int(6)

Идентификатор сообщения. Первичный ключ.

AUTO_INCREMENT при добавлении записи.

Date_sent

timestamp

Дата отправки сообщения.

Отображение на странице.

Dialogue_type

Varchar(11)

Содержит тип операции – обмен или желание.

Отображение на странице.

Act_id

Int(8)

Содержит идентификатор операции.

Отображение на странице.

Receiver

Int(8)

Идентификатор получателя сообщения. Внешний ключ.

Отображение на странице.

Sender

Int(8)

Идентификатор отправителя сообщения. Внешний ключ.

Отображение на странице.

Text

Varchar(2000)

Текст сообщения.

Отображение на странице.

status

Varchar(6)

Статус прочитанности сообщения. По умолчанию – ‘unread’. После выполнения операции изменяется на “read”.

Отображение на странице.

4. Описание структуры клиентской части. Инструкция пользователя

Главная страница содержит ссылки на основные активности сайта.

Рисунок 3. Главная страница сайта для неавторизованного

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

Рисунок 4. Главная страница для авторизованного пользователя

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

Рисунок 5. Боковое меню сайта

Страница регистрации представляет из себя несколько полей для ввода информации. Также на этой странице проводится проверка некоторых данных на правильность ввода, например, правильность ввода email или правильность повтора пароля. На скриншоте приведён интерфейс регистрации с примером одной из ошибок.

Рисунок 6. Форма регистрации

Страница авторизации представляет из себя два поля для ввода логина или пароля. После сверки данных создаётся сессия пользователя.

Рисунок 7. Форма авторизации

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

Рисунок 8. Библиотека

Просмотр книги отображает основную информацию о книге, ссылку на информацию об авторе, а также даёт возможность добавить отзыв о книге.

Рисунок 9. Страница книги

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

Рисунок 10. Форма добавления книги

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

Рисунок 11. Сообщение для неавторизованного пользователя

Страница с авторами содержит список авторов, которые есть на данный момент в базе.

Рисунок 12. Список авторов.

Страница с информацией об авторе содержит годы его жизни и краткую биографию.

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

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

Рисунок 14. Страница обменов

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

Рисунок 15. Форма добавления обмена

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

Рисунок 16. Форма ввода адреса для отправки

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

Рисунок 17. Список желаний.

Форма добавления желания также похожа на форму добавления книги, однако добавлено поле для ввода полного адреса для отправки книги.

Рисунок 18. Форма добавления желания

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

Рисунок 19. Форма ответа на желание

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

Рисунок 20. Профиль

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

Рисунок 21. Форма редактирования профиля

Последний (и самый крупный) раздел - сообщения. Здесь содержится информация об обменах в которых участвует пользователь и их состоянии. Страница поделена на несколько разделов по каждому типу обмена, а каждый из этих разделов в свою очередь разделен на типы действия, которое должен исполнить пользователь – отправить книгу либо же получить её. Если на обмен ещё не откликнулись – он не отображается на данной странице. В случае, если пользователь выступает отправителем – под информацией об обмене будет кнопка «отправить», означающая, что пользователь уже отправил книгу. Когда пользователь выступает получателем, после отправки книги появится кнопка «Подтвердить получение».

Рисунок 22. Сообщения об обменах пользователя

После отправки книги или подтверждения получения появится соответствующее сообщение.

Рисунок 23. Уведомление об отправке

Заключение

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

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

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

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

  • язык разметки HTML5;
  • язык программирования PHP версии 7 для создания WEB-сценариев;
  • каскадные стили страниц CSS3;
  • веб-сервер Apache OpenServer;
  • базы данных MySQL;

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

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

  1. Котеров, Д. PHP 7 / Котеров Д.В., Симдянов И.В. -M.: БХВ-Петербург, 2019
  2. Зандстра, М. PHP. Объекты, шаблоны и методики программирования / Зандстра М. -М.: Вильямс, 2016
  3. Веллинг, Л. Разработка веб-приложений с помощью PHP и MySQL / Веллинг Л., Томсон Л. -М.: Вильямс, Альфа-книга, 2017
  4. Робин, Н. Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5 / Никсон Р. -М.: Питер, 2017
  5. Дронов, В. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера / В. Дронов, Н. Прохоренок. – 5-у изд.: БХВ-Петербург., 2019
  6. Фленов, М. PHP глазами хакера / Фленов М. -М.: - БХВ-Петербург, 2020
  7. Интерактивный учебник по SQL [Электронный ресурс] / Россия, 2008.: http://www.sql-tutorial.ru
  8. Руководство по PHP [Электронный ресурс] / https://www.php.net/manual/ru/

Приложения

Исходный код главной страницы:

Исходный код подключения к базе данных:

Исходный код бокового меню:

Исходный код модуля входа через боковое меню:

Исходный код модуля входа:

Исходный код модуля регистрации:

Исходный код модуля с некоторыми функциями:

Исходный код модуля для написания обзора на книгу и вывода обзоров:

Исходный код модуля просмотра сообщений:

Исходный код модуля написания сообщения:

Исходный код шапки:

Исходный код подвала:

Исходный код профиля пользователя:

Исходный код вывода обменов:

Исходный код вывода желаний:

Исходный код страницы добавления книги в библиотеку:

Исходный код информации о добавлении в библиотеку:

Исходный код добавления обмена:

Исходный код добавления обмена в базу:

Исходный код добавления желания:

Исходный код добавления желания в базу:

Исходный код библиотеки:

Исходный код списка авторов:

Исходный код страницы книги:

Исходный код страницы автора:

Исходный код страницы изменения профиля:

Исходный код просмотра сообщений:

Исходный код изменения статуса сообщения: