Висновок відправлених формою даних в php. Створення HTML форм. II. Введення даних через цикл
Щоб організувати передачу даних на сервер за допомогою форми, потрібно реалізувати HTML форму, в яку відвідувачі сайту будуть вводити свою інформацію і PHP код, призначення якого в прийнятті та обробці отриманих даних на сервері.
HTML форма відправки даних
Форма на сторінці формується тегами
, Всередині яких містяться теги полів для введення текстової інформації, теги спеціальних компонентів (наприклад, поле зі списком), теги для поля вибору і завантаження файлу.* Для HTML5 так само існує можливість розміщувати теги полів форми не всередині тегів форми, а в будь-якому місці на сторінці. При цьому для кожного такого поля потрібно вказувати атрибут "form", щоб визначити з якою формою відправки він повинен взаємодіяти.
Отже, найпростіша форма відправки може містити наступний код:
Елементи форми і їх параметри:
action = "myform.php"- атрибут "action" визначає, який php-файл буде обробляти відправляються дані. У цьому прикладі, дані будуть відправлені в файл "myform.php", що знаходиться в тій же директорії що і сторінка з формою. Якщо цей атрибут й вказати явно, дані форми будуть відправлені за адресою сторінки самої форми.
method = "post"- параметр method визначає метод передачі даних POST або GET. Більш докладно про це в статті "Відмінності методів POST або GET". Якщо не вказувати атрибут явно, за замовчуванням буде використовуватися метод GET.
текст "Значення А:"і "Значення Б:"доданий тільки з метою оформлення та зрозумілості форми для користувача. Додавати це для передачі даних не обов'язково, але для того, щоб користувачеві стало зрозуміло, що вводити, варто вказувати.
Теги використовуються для формування різних керуючих елементів форми.
type = "text"- атрибут "type" визначає вид поля. Залежно від того, який тип вказано, змінюється і зовнішній вигляд елемента, і його призначення. Значення атрибута "text" вказує, що в браузері елемент буде відображатися однорядковим текстовим полем, куди користувач зможе ввести свій рядок.
name = "data1"- атрибут "name", вказує ім'я, вірніше індекс даних в масиві, отриманих сервером. Це обов'язковий параметр, за яким в php-обробнику можна буде потім отримати доступ переданому значенням. Ім'я може бути вибрано довільно, однак, зручніше коли це значення має якийсь зрозумілий сенс.
type = "submit"- тег з таким значенням параметра "type" буде відображатися на сторінці як кнопка. Насправді на формі можна обійтися і без кнопки. Якщо, наприклад, у формі є текстові поля, то відправку можна здійснити, просто натиснувши "Введення" на клавіатурі. Але наявність кнопки робить форму більш зрозумілою.
value = "(! LANG: Відправити" !}- в даному випадку (для type = "submit") визначає тільки напис на кнопці. Для type = "text", наприклад, це буде текст, який буде виведений в текстовому полі.
У підсумку, на сторінці цей код буде виглядати приблизно так:
При натисканні на кнопку, буде виконана відправка даних на вказану статтю, і якщо вона існує і коректно працює, дані будуть оброблені.
Обробка відправлених HTML формою даних в PHP
Відправлені описаним способом дані, поміщаються в суперглобальні масиви $ _POST, $ _GET і $ _REQUEST. $ _POST або $ _GET міститимуть дані в залежності від того, яким методом здійснювалася відправка. $ _REQUEST містить надіслані дані будь-яким із зазначених методів.
$ _POST, $ _GET і $ _REQUEST - це асоціативні масиви, поля-індекси яких збігаються з атрибутами "name" тегів . Відповідно, для роботи з даними в файлі myform.php можна привласнити змінним значення елементів такого масиву вказавши в якості індексу ім'я поля:
// для методу GET
$ A = $ _GET [ "Data1"];
$ B = $ _GET [ "Data2"];
// для методу POST
$ A = $ _POST [ "Data1"];
$ B = $ _POST [ "Data2"];
// при будь-якому методі
$ A = $ _REQUEST [ "Data1"];
$ B = $ _REQUEST [ "Data2"];
Перевірка заповнення полів форми
Іноді при отриманні даних потрібно перевірити, чи не відправив користувач порожню форму. Для цього можна використовувати функцію empty.
if (empty ($ _REQUEST [ "data1"])) (
echo "Поле не заповнено";
} else (
echo "Поле було заповнено";
$ A = $ _REQUEST [ "Data1"];
}
Зазвичай цього рішення досить. Якщо потрібно вводити текст, то буде зрозуміло, введений він чи ні. Однак, якщо користувач навмисно для обчислень введе нуль, то функція empty покаже, що значення немає. Тому для таких ситуацій краще використовувати функцію isset. Вона буде явно перевіряти, заданно Чи має значення чи ні.
if (isset ($ _REQUEST [ "data1"])) (
echo "Поле було заповнено";
$ A = $ _REQUEST [ "Data1"];
} else (
echo "Поле не заповнено";
}
або як відправити повідомлення на e-mail за допомогою HTML форми
Ви маєте свій власний web-сайт і хочете отримувати від своїх користувачів листи або повідомлення, питання, поради або просто побажання по електронній пошті, тоді цей урок для вас!
Як відправити повідомлення по e-mail
Нам потрібні такі файли:
- form.html - сторінка з формою.
- form_processing.php - файл зі скриптом, обробляють HTML форму.
Розглянемо код form.html:
|