Одна з найпотужніших особливостей PHP - це її спосіб обробки HTML-форм. Важливо знати, що будь-який елемент форми автоматично стає доступним для скрипта PHP. Докладну інформацію та приклади використання форм в PHP можна прочитати в розділі Змінні, отримані зі зовнішніх джерел. Тут ми продемонструємо приклади HTML-форм:
Приклад #1 Проста HTML-форма
<form action="action.php" method="post"> <label for="name">Ваше ім'я:</label> <input name="name" id="name" type="text"> <label for="age">Ваш вік:</label> <input name="age" id="age" type="number"> <button type="submit">Надіслати</button> </form>
В цій формі немає нічого особливого. Це звичайна HTML-форма без будь-яких спеціальних тегів. Коли користувач заповнить цю форму і натисне кнопку відправлення, буде викликано сторінку action.php. В цьому файлі можна написати щось таке:
Приклад #2 Друк даних з нашої форми
Привіт, <?php echo htmlspecialchars($_POST['name']); ?>.
Вам <?php echo (int) $_POST['age']; ?> років.
Зразок виводу цього скрипта:
Привіт, Костя. Вам 34 роки.
Записи в цьому скрипті, окрім htmlspecialchars() та
(int)
, мають бути зрозумілими. Функція
htmlspecialchars() гарантує, що будь-який введений
символ, який є спеціальним в HTML, правильно кодується, щоб ніхто не зміг
ввести теги HTML чи Javascript на вашій сторінці. Оскільки ми знаємо, що
поле "age" має бути числовим, ми просто
конвертуємо його значення
в int, і таким чином позбуваємось від будь-яких сторонніх
символів. PHP може це робити автоматично, якщо встановити розширення
filter. Змінні
$_POST['name'] та $_POST['age']
автоматично ініціалізує PHP. Раніше ми використовували суперглобальну
змінну $_SERVER; вище ми ввели просто ще одну
суперглобальну змінну $_POST, котра містить всі
відправлені POST-дані. Зауважте, що method нашої форми
вказано як POST. Якщо ми використовуємо метод GET, то
дані форми будуть знаходитись в іншій суперглобальній змінній — в
$_GET. Ще можна використовувати суперглобальну змінну
$_REQUEST, якщо ви не впевнені, яким методом відправлено
вам дані. Ця змінна містить об'єднані дані від методів GET, POST та COOKIE.