nmk

Лабораторна робота №6 (2 години)

Тема: HTML-форма “Створити завдання”. Реалізація сторінки додавання, приймання даних через метод POST та перегляд їх через var_dump().

Мета: Зрозуміти різницю між HTTP-методами GET та POST, навчитись передавати дані з клієнтської сторони на сервер через HTML-форми та “перехоплювати” їх у PHP.

Технологічний стек: HTML Forms, HTTP-запити (GET/POST), суперглобальні масиви $_GET і $_POST, функція var_dump.

Завдання

  1. Розрізняти структуру та призначення суперглобальних масивів $_GET та $_POST у PHP.
  2. Створити нову сторінку з HTML-формою додавання нового завдання в систему.
  3. Налаштувати зв’язок між атрибутом name полів форми та масивом $_POST (або $_GET).
  4. Написати PHP-обробник, який здійснюватиме “перехоплення” та демонстраційний вивід (var_dump()) введених даних.

Хід виконання роботи

Крок 1. Створення сторінки з формою

Створіть у корені вашої папки новий файл create.php. Створіть базовий HTML-каркас. Головним елементом сторінки має стати форма: <form action="create.php" method="POST">. У форму додайте відповідні поля (тег <input> або <textarea>):

Крок 2. Зв’язок сторінок між собою

У вашому головному файлі (index.php) вище списку завдань зробіть просте HTML-посилання або кнопку стилізовану під нього: <a href="create.php">Додати нове завдання</a>. Щоб користувач не загубився, також додайте на сторінці create.php посилання на повернення <a href="index.php">Повернутись до списку</a>.

Крок 3. Обробка відправки форми (Action)

Алгоритм обробки POST-запиту в тому ж самому файлі (create.php). Оскільки атрибут action спрямовує форму на той самий файл, угорі сторінки (у блоці PHP) перевірте, яким методом був викликаний файл.

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Користувач натиснув кнопку "Зберегти" і відправив форму
    echo "<pre>";
    var_dump($_POST);
    echo "</pre>";
}

Функція var_dump() дозволяє розробникам побачити тип та значення кожної змінної чи елементу масиву. З її допомогою ви візуально перевірите, чи прийшли дані з атрибутів name на сервер.

Крок 4. Тестування різних методів HTTP

Спочатку заповніть форму даними та натисніть “Зберегти” (метод POST). Ви побачите зверху сторінки розгорнутий зміст $_POST. Тепер змініть атрибут у HTML method="POST" на method="GET". Збережіть і натисніть кнопку відправки. Що змінилось в адресному рядку браузера? Чому масив $_POST порожній? Використайте var_dump($_GET) щоб побачити дані.

Контрольні запитання

  1. Назвіть 3 ключові відмінності між HTTP-методами GET та POST під час передачі даних з форми.
  2. Вкажіть, в яких ситуаціях передача даних методом GET (відкритим текстом в URL) є прийнятною, і чому не можна передавати таким чином паролі.
  3. За що відповідає HTML-атрибут action у тегу <form>?
  4. За яким критерієм PHP асоціюватиме дані з форми з ключами у масиві $_POST (які HTML атрибути тут вирішальні)?
  5. Назвіть призначення функції var_dump() та тегу <pre>. Чи використовується цей код у продуктовому (Production) середовищі для реальних клієнтів?

Вимоги до звіту

  1. Всі оновлені файли закомітити в систему контролю версій GitHub.
  2. У lab6.md вставити блок коду з формою (<form>) з усіма атрибутами name, method та action.
  3. Додати скриншот, який доводить успішний перехват даних формою (де видно результати функції var_dump, коли вона виводить ["title"]=>...).
  4. Надати відповіді на контрольні запитання.