Припустимо, ми створили HTML-форму, яку відправляємо, і тепер хочемо обробити дані. Про створення HTML-форми є окрема стаття.
Спосіб відправки форми задається безпосередньо в HTML
Є 2 варіанти:
php.baraja.cz/search.php?query=formulare
.Потім ми повинні прочитати їх в PHP, використовуючи той самий метод.
Основою є HTML-форма, як її зробити можна прочитати в окремій статті.
Для початку візьмемо просту форму для введення імені користувача:
<form action="welcome.php" method="GET">Zadejte jméno: <input type="text" name="username"><input type="submit" value="odeslat"></form>
З'явиться текстове вікно для введення імені та натискання кнопки "Надіслати". При натисканні на кнопку вміст поля відправляється на скрипт welcome.php
.
Тепер щодо власне обробки у файлі welcome.php
:
$username = $_GET['ім'я користувача'];echo 'Введіть ім'я:' . $username;
Зверніть увагу на спеціальну змінну $_GET
. Це надглобальна змінна, яка містить дані з форми і до якої можна отримати доступ як до масиву.
Проблема з цим рішенням, однак, полягає в тому, що отримані дані є небезпечними і подібна форма може бути легко атакована. Наприклад, потенційний зловмисник може ввести в поле замість імені код javascript, який буде записаний на сторінку і виконаний.
Тому ми завжди повинні дезінфікувати будь-які дані користувача перед тим, як виводити їх в HTML-код:
$username = $_GET['ім'я користувача'] ?? 'Невідомо';echo 'Введіть ім'я:' . htmlspecialchars($username);
З отриманими даними ми можемо робити все, що завгодно, і поводитися з ними, як з будь-якою звичайною змінною.
Наприклад, додати значення в два поля:
echo $_GET['x'] + $_GET['y'];
Або зберегти у файл, базу даних, на електронну пошту, ...
Для цього корисними є наступні функції:
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | uk