2. Про HTMLформы
HTMLформа — часть htmlдокумента, с помощью которой
пользователь может отправить произвольную информацию на сервер.
Применение:
1. Авторизация
2. Регистрация
3. Поиск
4. Отзывы
5. Обратная связь
6. Создание и добавление
записей
7. И многое другое
Область применения ограничена
только изобретательностью
разработчика
3. Особенности HTML-форм
1. Документ может содержать любое количество форм, но
одновременно можно отправить только одну;
2. Количество полей в форме — не ограничено;
3. На странице видно только поля формы;
4. Значения полей можно менять через JavaScript;
5. Форму можно отправить не только по кнопке, но и вызовом
JavaScript функции — submit()
6. … или нажав на клавишу Enter в пределах формы;
7. Данные с формы можно обработать как на локальном, так и на
внешнем сервере;
8. Обработчик формы может быть написать практически на любом
языке программирования.
8. Атрибут формы "enctype"
Определяет способ кодирования данных формы при их отправке на
сервер.
Возможные значения:
1. application/xwwwformurlencoded — заменяет пробелы
на знак "+" и кодирует русские буквы их шестнадцатеричными
значениями. Например, %D0%90%D0%BD%D1%8F вместо Аня;
Этот способ используется по умолчанию.
2. multipart/formdata — данные не кодируются. Применяется
при отправке файлов;
3. text/plain — пробелы заменяются знаком "+", буквы и другие
символы не кодируются.
Пример использования:
<form enctype="multipart/formdata">
<form enctype="text/plain">
9. Атрибут "name" у элементов формы
Для того, чтобы значение поля было отправлено на сервер, у поля
должен быть установлен атрибут "name".
Пример использования:
<input type="text" name="login">
<select name="city">
<option value="1">Одесса</option>
<option value="2">Киев</option>
</select>
Так же, можно установить значение поля формы по умолчанию:
<input type="text" name="login" value="root">
Более детально про элементы формы можно узнать
на сайте http://w3schools.com/ или http://htmlbook.ru
11. Как отправляется форма?
При отправке формы, браузер формирует HTTPзапрос, в котором
учитывает данные полей формы и отправляет на сервер.
HTTPзапрос это сообщение, которое отправляется по сети на адрес
назначения и несет в себе информацию, на основе которой сервер
(получатель) должен сформировать и вернуть ответ.
HTTPзапрос состоит из:
1. Строка запроса — содержит HTTP метод, URL назначения и
версию протокола. Пример: GET http://localhost/
HTTP/1.1
2. Заголовки — характеризует клиента и передаваемые данные;
3. Тело — передаваемые данные. Например: HTML документ.
Всего существует 10 HTTP методов. В рамках данной лекции мы
рассмотрим работу только с методами: GET и POST.
12. HTTP метод GET
Передаваемые данные содержатся в URLадресе назначения, который
указан в HTTPзапросе.
Пример URLадреса с GETпараметрами:
http://site.ru/index.php?name=Annet&age=22
Содержит два параметра в формате key=value:
● name содержит значение Annet;
● age содержит значение 22;
Служебные символы:
? — начало перечисления параметров запроса;
= — присвоение значения параметру;
& — начало следующего имени следующего параметра.
HTTP метод GET не используется для передачи больших объемов
информации и может иметь ограниченное количество символов в URL.
13. HTTP метод POST
Передаваемые данные содержатся в теле HTTPзапроса.
Метод POST предназначен для отправки больших объемов
информации (изображения, видео и аудио файлы, текстовая
информация и прочее).
Важно! Пользователь не видит передаваемые данные.
Этим методом рекомендуется передавать секретные данные и личную
информацию (пароли, номера телефонов, кредитных карт и прочее).
14. Область применения
POST:
Используется для создания или
редактирования:
● Создание Редактирование
новости или комментария;
● Отправка больших файлов;
● Отправка текстовой
информации
и для передачи секретной или
конфиденциальной информации:
● Авторизация Регистрация;
● Данные кредитных карт.
GET:
Используется для получения чего
либо с сервера:
● Страницу каталога по ее
номеру
● Товары категории по
идентификатору
● Файл по имени
Для передачи малых объемов
данных:
● Передача поисковой фразы
● Передача списка фильтров
18. Массив $_GET
$_GET суперглобальный ассоциативный массив параметров
переданных GET методом (через URL).
Пример чтения GET данных
URLадрес:
http://site.ru/index.php?name=Annet&age=19
PHPобработчик:
$name = $_GET["name"]; // Annet
$age = $_GET["age"]; // 19
echo "Привет! Я {$name} и мне {$age} года";
Результат: Привет! Я Annet и мне 19 лет
19. Массив $_POST
$_POST суперглобальный ассоциативный массив параметров
переданных POST методом (в теле HTTPзапроса).
Пример чтения POST данных
Структура формы:
<form action="" method="post">
<input type="text" name="login">
<input type="password" name="password">
</form>
PHPобработчик:
$login = $_POST["login"]; // Поле login
$password = $_POST["password"]; // Поле password
echo "Логин {$login} и пароль {$password}";