МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ХАРКІВСЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ
Кафедра Програмної інженерії
Звіт
з лабораторної роботи №3
з дисципліни: «Скриптові мови програмування»
з теми: « Створення WEB-застосунків за допомогою PHP «
Виконав: Перевірив:
ст. гр. ПЗПІ-23-2 Старший викладач кафедри ПІ
Ситник Є. С. Сокорчук І. П.
Харків – 2025
2
3 СТВОРЕННЯ WEB-ЗАСТОСУНКІВ ЗА ДОПОМОГОЮ PHP
3.1 Історія змін
№ Дата Версія звіту Опис змін та виправлень
1 03.06.2025 0.1 Створено звіт
3.2 Мета роботи
Лабораторна робота полягає у розробці веб-застосунку «Продовольчий
магазин Весна» засобами мови програмування PHP з використанням HTML, CSS та
JavaScript для створення інтерактивного інтерфейсу користувача.
3.3 Хід роботи
3.3.1 Архітектура веб-застосунку
Для реалізації веб-застосунку було обрано модульний підхід з розділенням
логіки на окремі файли:
3.3.1.1 Структура файлів:
– index.php – головна сторінка застосунку з логотипом магазину;
– items.php – сторінка каталогу товарів з можливістю додавання до кошика;
– cart.php – сторінка кошика з переглядом обраних товарів та управлінням;
– handle_cart.php – обробник AJAX-запитів для роботи з кошиком;
– DB.php – клас для роботи з базою даних SQLite;
– style.css – стилі для оформлення веб-сторінок.
3.3.1.2 Основні компоненти:
– Клас DB – забезпечує взаємодію з базою даних SQLite, включаючи
методи для роботи з товарами, кошиком та налаштуваннями користувача;
– Клас DbException – спеціалізований виняток для обробки помилок бази
даних;
– Сесійна система – для збереження стану користувача між сторінками.
3
3.3.2 Структура бази даних
Веб-застосунок використовує базу даних SQLite з трьома основними
таблицями:
3.3.2.1 Таблиця settings:
– name (TEXT) – ім’я користувача;
– age (TEXT) – вік користувача.
3.3.2.2 Таблиця items:
– id (INTEGER PRIMARY KEY) – унікальний ідентифікатор товару;
– name (TEXT NOT NULL) – назва товару;
– price (REAL NOT NULL) – ціна товару.
3.3.2.3 Таблиця cart:
– id (INTEGER NOT NULL UNIQUE) – ідентифікатор товару;
– count (INTEGER NOT NULL) – кількість товару в кошику;
– FOREIGN KEY – зв’язок з таблицею items.
3.3.3 Функціональні можливості
3.3.3.1 Головна сторінка (index.php):
– Відображення логотипу магазину;
– Навігаційне меню з кількістю товарів у кошику;
– Привітання користувача за ім’ям;
– Підвал з інформацією про магазин.
3.3.3.2 Каталог товарів (items.php):
– Відображення списку доступних товарів з цінами;
– Форма для вибору кількості товару;
– Можливість додавання товарів до кошика;
– Валідація кількості товару (від 0 до 100 одиниць);
4
– Автоматичне оновлення лічильника кошика.
3.3.3.3 Кошик покупок (cart.php):
– Перегляд обраних товарів з детальною інформацією;
– Відображення кількості, ціни за одиницю та загальної вартості;
– Можливість видалення окремих товарів з кошика;
– Функція повного очищення кошика;
– Підрахунок загальної суми покупки;
– Кнопка «Сплатити» для завершення покупки.
3.3.3.4 Обробка запитів (handle_cart.php):
– Обробка POST-запитів для додавання товарів до кошика;
– Обробка DELETE-запитів для видалення товарів;
– Підтримка AJAX для асинхронного оновлення кошика;
– Валідація вхідних даних та обробка помилок.
3.3.4 Технічні особливості
3.3.4.1 Безпека:
– Використання підготовлених запитів (prepared statements) для запобігання
SQL-ін’єкціям;
– Функція «htmlspecialchars()» для запобігання XSS-атакам;
– Валідація та фільтрація користувацьких даних через «filter_input()»;
– Обробка винятків для коректної роботи з помилками.
3.3.4.2 Користувацький інтерфейс:
– Адаптивний дизайн з використанням CSS;
– Інтуїтивна навігація між сторінками;
– Зручні форми для взаємодії з користувачем.
5
3.3.4.3 База даних:
– Автоматичне створення таблиць при першому запуску;
– Заповнення початковими даними;
3.3.5 Методи класу DB
Клас DB містить наступні основні методи:
– retrieve_user() – отримання інформації про користувача;
– update_user() – оновлення профілю користувача;
– get_items() – отримання списку всіх товарів;
– get_item_by_id() – отримання конкретного товару за ID;
– get_cart() – отримання товарів у кошику з детальною інформацією;
– get_cart_count() – підрахунок загальної кількості товарів у кошику;
– get_cart_total() – підрахунок загальної вартості кошика;
– add_to_cart() – додавання товару до кошика або оновлення кількості;
– remove_from_cart() – видалення товару з кошика;
– empty_cart() – повне очищення кошика.
3.4 Висновки
Під час виконання даної лабораторної роботи було успішно розроблено веб-
застосунок інтернет-магазину з використанням сучасних веб-технологій. Зокрема,
було освоєно:
– створення багатосторінкових веб-застосунків на PHP;
– роботу з базами даних SQLite через PDO з дотриманням принципів
безпеки;
– реалізацію сесійної системи для збереження стану користувача;
– створення інтерактивного користувацького інтерфейсу з використанням
HTML та CSS;
– валідацію та фільтрацію користувацьких даних.
Застосунок демонструє практичне застосування технологій веб-розробки для
створення реальних рішень.
6
ДОДАТОК А
Відеозапис
Відеозапис презентації результатів лабораторної роботи: https://youtu.be/Gils7poMkgk
Хронологічний опис відеозапису:
00:00 – Вступ та загальний опис роботи
00:30 – Структура веб-застосунку
01:14 – Робота з базою даних та сесіями
01:43 – Обробка запитів користувача
03:56 – Демонстрація роботи веб-застосунку
7
ДОДАТОК Б
Програмний код
Б.1 Головна сторінка (index.php)
GitHub репозиторій: https://github.com/NureSytnykYehor/smp-pzpi-23-2-sytnyk-yehor/blob/main/Lab3/smp-pzpi-23-2-sytnyk-yehor-lab3/index.php
1 retrieve_user();
9 }
10
11 $cart_count = $db->get_cart_count();
12 ?>
13
14
15
16