PHP Обробка форми
PHP-суперглобали $_GET і $_POST використовуються для збору даних форми.
PHP - Проста HTML форма
У наведеному нижче прикладі показано просту HTML-форму з двома полями введення та кнопкою надсилання:
Приклад
<html>
<body>
<form action="welcome.html" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Виконати приклад »
Коли користувач заповнює форму вище та натискає кнопку "Надіслати", дані форми надсилаються для обробки у файл PHP під назвою "welcome.html". Дані форми надсилаються за допомогою методу HTTP POST.
Щоб відобразити подані дані, ви можете просто повторити всі змінні. Файл "welcome.html" виглядає так:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Виведення може бути приблизно таким:
Привіт, John
Ваша email адреса john.doe@example.com
Такого ж результату можна досягти за допомогою методу HTTP GET:
Приклад
<html>
<body>
<form action="welcome_get.php" method="get">
Ім’я: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Виконати приклад »
та "welcome_get.php" виглядає так:
<html>
<body>
Привіт, <?php echo $_GET["name"]; ?><br>
Ваша email адреса: <?php echo $_GET["email"]; ?>
</body>
</html>
Наведений вище код досить простий. Проте не вистачає найголовнішого. Вам потрібно перевірити дані форми, щоб захистити свій скрипт від шкідливого коду.
Думайте про БЕЗПЕКУ під час обробки PHP-форм!
Ця сторінка не містить жодної перевірки форми, вона лише показує, як ви можете надсилати та отримувати дані форми.
Однак на наступних сторінках буде показано, як обробляти форми PHP з урахуванням безпеки! Належна перевірка даних форми важлива для захисту вашої форми від хакерів і спамерів!
GET та POST
І GET, і POST створюють масив (наприклад, array( key1 => value1, key2 => value2, key3 => value3, ...)). Цей масив містить пари ключ/значення, де ключі – це імена елементів керування форми, а значення – це вхідні дані від користувача.
І GET, і POST розглядаються як $_GET і $_POST. Це суперглобали, що означає, що вони завжди доступні, незалежно від обсягу – і ви можете отримати до них доступ із будь-якої функції, класу чи файлу без необхідності робити щось особливе.
$_GET — це масив змінних, які передаються в поточний скрипт через параметри URL-адреси.
$_POST — це масив змінних, переданих у поточний скрипт за допомогою методу HTTP POST.
Коли використовувати GET?
Інформація, надіслана з форми за допомогою методу GET, видима всім (усі назви та значення змінних відображаються в URL-адресі). GET також має обмеження щодо обсягу інформації для надсилання. Обмеження становить близько 2000 символів. Однак, оскільки змінні відображаються в URL-адресі, можна додати сторінку до закладок. У деяких випадках це може бути корисним.
GET можна використовувати для надсилання неконфіденційних даних.
Примітка: GET НІКОЛИ не слід використовувати для надсилання паролів чи іншої конфіденційної інформації!
Коли використовувати POST?
Інформація, надіслана з форми за допомогою методу POST, невидима для інших (усі імена/значення вбудовано в тіло HTTP-запиту) і не має немає обмежень на кількість інформацію для надсилання.
Крім того, POST підтримує розширені функції, такі як підтримка багатокомпонентного двійкового введення під час завантаження файлів на сервер.
Однак, оскільки змінні не відображаються в URL-адресі, неможливо додати сторінку до закладок.
Розробники віддають перевагу POST для надсилання даних форми.
Далі подивимося, як безпечно обробляти форми PHP!