- •1 Постановка задачи
- •2 Выбор методов и технологий
- •Файловая структура модулей и их функционал
- •Register.Php – модуль регистрации. Файл реализует обработку данных, вводимых пользователем при регистрации.
- •Login.Php – модуль авторизации. Модуль обеспечивает вход зарегистрированных пользователей в систему.
- •Profile.Php – страница профиля. Файл profile.Php отображает персональную страницу пользователя после успешного входа.
- •Logout.Php – модуль выхода из системы. Файл отвечает за завершение пользовательской сессии.
- •Style.Css – таблица стилей. Файл assets/style.Css содержит описания внешнего вида всех элементов интерфейса: карточек, кнопок, форм и полей ввода.
- •Заключение
Файловая структура модулей и их функционал
Разработанный модуль реализован в виде набора связанных между собой PHP-скриптов, объединённых в единую структуру проекта. Каждый файл отвечает за конкретный этап взаимодействия пользователя с системой. Структура проекта представлена на рисунке 1.
Рисунок 1 – Файловая структура проекта
Register.Php – модуль регистрации. Файл реализует обработку данных, вводимых пользователем при регистрации.
Форма содержит поля: ФИО, e-mail, логин и пароль.
После заполнения и отправки формы скрипт проверяет корректность введённых данных, уникальность логина и адреса электронной почты, а затем записывает новую запись в таблицу users.
Пароль сохраняется в зашифрованном виде с использованием функции password_hash().
При успешной регистрации пользователю выводится сообщение об успешном создании аккаунта.
db.php – модуль подключения к базе данных.
Файл отвечает за установление соединения с СУБД PostgreSQL. В нём задаются параметры подключения.
Модуль подключается во всех файлах, которым требуется доступ к данным.
Login.Php – модуль авторизации. Модуль обеспечивает вход зарегистрированных пользователей в систему.
После ввода логина и пароля производится запрос в таблицу users. Если пользователь найден и пароль совпадает (проверяется функцией password_verify()), создаётся сессия PHP, и пользователю предоставляется доступ к странице профиля. В случае ошибки выводится уведомление «Неверный логин или пароль».
Функция session_start() используется для сохранения данных авторизованного пользователя на протяжении всей работы с системой.
Profile.Php – страница профиля. Файл profile.Php отображает персональную страницу пользователя после успешного входа.
На странице выводится приветственное сообщение, имя пользователя и пример визуального блока «Прогресс изучения».
Также предоставляется возможность выхода из системы.
Если пользователь пытается открыть страницу профиля без авторизации, система автоматически перенаправляет его на страницу входа (login.php).
Logout.Php – модуль выхода из системы. Файл отвечает за завершение пользовательской сессии.
Нажатие на кнопку «Выйти» полностью удаляет данные о сессии и возвращает пользователя на страницу авторизации.
ui.php – общий интерфейсный шаблон или же вспомогательный файл, содержащий функции ui_header() и ui_footer(), которые формируют единое оформление шапки и подвала сайта. В нём подключаются стили и формируется навигация (кнопки «Вход», «Регистрация»).
catalog.php – модуль каталога курсов.
Файл реализует отображение списка доступных курсов платформы. Скрипт формирует SQL-запрос к таблице products, получает перечень курсов и выводит их в виде карточек с единой стилизацией.
product.php – модуль карточки курса.
Модуль отвечает за вывод подробной информации по одному выбранному курсу.
Идентификатор курса передаётся через параметр id в адресной строке. Скрипт проверяет корректность параметра, выполняет подготовленный запрос к таблице products и получает полное описание курса, цену и путь к изображению обложки.
Внизу карточки размещена кнопка «Начать обучение», которая перенаправляет неавторизованного пользователя на страницу входа (login.php).
moder_panel.php – модуль личного кабинета модератора.
Файл реализует административный интерфейс для пользователя с ролью moderator.
В начале выполняется проверка: если пользователь не авторизован или его роль отличается от moderator, он перенаправляется на страницу входа. После проверки модуль выбирает из таблицы products список всех курсов и выводит их в виде таблицы с колонками: ID, название, цена и действия.
Для модератора доступны:
просмотр всех существующих курсов;
переход к форме создания нового курса;
удаление курса по ссылке «Удалить».
product_create.php – модуль создания нового курса.
Файл реализует форму добавления нового курса и обработку введённых данных.
product_delete.php – модуль удаления курса.
Модуль принимает идентификатор курса через параметр id и предназначен для удаления записи из таблицы products.
В начале работы выполняется проверка роли пользователя: только модератор может вызывать данное действие.
После проверки формируется подготовленный DELETE-запрос к базе данных. В случае успешного удаления модуль перенаправляет пользователя обратно в moder_panel.php.
cart_add.php – модуль добавления товара в корзину. Модуль обрабатывает отправку формы из каталога или карточки товара.
Принимает product_id.
Если пользователь не авторизован — перенаправляет на login.php.
Если пользователь авторизован — записывает товар в таблицу cart
cart.php – модуль корзины. Отображает содержимое корзины авторизованного пользователя:
список выбранных курсов,
суммарную стоимость,
кнопку «Удалить»,
кнопку «Сформировать заказ».
cart_remove.php – модуль удаления товара из корзины. Удаляет запись из таблицы cart.
order_create.php – модуль формирования заказа. Создаёт новый заказ на основе содержимого корзины.
Последовательность работы:
Проверяет, что пользователь авторизован.
Получает все товары из таблицы cart текущего пользователя.
Формирует новую запись в таблице orders.
Добавляет каждую позицию в таблицу order_items.
Очищает корзину.
Отображает пользователю страницу подтверждения заказа.
owner_dashboard.php – модуль личного кабинета владельца магазина.
Файл реализует отдельную панель управления для пользователя с ролью owner.
В начале работы выполняется проверка авторизации и роли пользователя: если пользователь не авторизован или его роль не соответствует owner, осуществляется перенаправление на страницу входа (login.php).
После успешной проверки модуль отображает аналитическую панель владельца, содержащую статистическую информацию о работе системы.
В панели владельца выводятся следующие показатели:
общее количество зарегистрированных пользователей;
общее количество оформленных заказов;
балансовая прибыль, рассчитанная как сумма значений total_sum по всем заказам;
чистая прибыль, рассчитываемая как балансовая прибыль за вычетом условной комиссии платформы.
checksum.php – модуль расчёта контрольной суммы заказа.
Файл реализует функции для формирования контрольной суммы, предназначенной для обеспечения целостности данных заказов.
Контрольная сумма рассчитывается на основе значимых полей заказа (идентификатор заказа, идентификатор пользователя, итоговая сумма и статус заказа).
checksum_verify.php – модуль проверки контрольной суммы.
Файл предназначен для проверки корректности контрольной суммы заказа.
Модуль принимает данные заказа и сравнивает сохранённую в базе данных контрольную сумму с пересчитанным значением.
Если контрольная сумма совпадает, заказ считается корректным. В случае несовпадения заказ помечается как потенциально изменённый.
