GET - POST в PHP
Методы GET и POST запросы в PHP
Методы GET и POST служат для отправки данных и обработки запроса от пользователя.
Вы ввели данные в форму или написали пост, нажали отправить, а передачу выполняет метод get или post в зависимости поставленной задачи.
Отличия метода GET от POST в php.
Метод GET
GET передает параметры запроса в url, которые видны в адресной строке браузера.
GET отправляет ограниченное число символов, в зависимости от браузера до 8кб.
GET не используется для отправки на сервер двоичных данных, изображения или текстовые документы.
Не используйте метод GET, если вам нужно отправить на сервер конфиденциальную информацию, к примеру логин и пароль.
При помощи глобального ассоциативного массива $_GET можно получить доступ ко всем передаваемым данным методом get.
По умолчанию данные из формы передаются методом get.
Создадим простую форму, получим данные глобальным ассоциативным массивом $_GET
Глобальный массив это встроенный, имя которого не меняется, ассоциативный так как в него мы передаем текстовые ключи из формы, в которых присутствуют данные.
Пишем в форму Имя, Пароль
Форма 1
<html> <body>
<h1> Форма отправки данных GET</h1>
<form method="get"> <!-- создали форму с методом отправки данных гет -->
<input type='text' name='name'> Логин <p><!-- создали поле для ввода Логин -->
<input type='text' name='pass'> Пароль <p><!-- Создали поле для ввода пароля-->
<input type="submit" value="Отправить"> кнопка отправки на сервер
</form>
<?php
// выводим данные из формы которые переданы методом get, которые получили супер глобальным масивом $_GET, с ключами из формы
echo '<p> Логин : ' . $_GET['name']; // вывели данные по ключу name echo '<br> Пароль : ' .$_GET['pass']; // по ключу pass ?> </body> </html>
В адресной строке браузера после знака ? мы увидим имена поля и отправленные в эти поля данные, знаком амперсанд & разделяются параметры. параметр_name=значение_Имя&параметр_pass=значение_Пароль
/forma.php?name=Имя&pass=Пароль
Но проблема не в этом, а в том что, таким же образом можно ввести данные не в форму, а сразу в адресную строку браузера, минуя обработчик формы. Введите другие данные в браузерной строке вместо Имя и Пароль, перегрузите страницу и вы увидите как они отобразятся в массиве $_GET внизу формы, хотя в форму вы ничего не вводили.
Метод POST
Метод POST передает информацию через HTTP-заголовки.
Метод POST не имеет ограничений по объему отправляемых данных.
Метод POST может использоваться для отправки ASCII, а также двоичных данных.
Данные, отправленные методом POST, проходят через HTTP-заголовок, поэтому их безопасность зависит от протокола HTTP. Используя Secure HTTP, вы можете обеспечить защиту информации.
При помощи ассоциативного массив $_POST можно получить доступ ко всем передаваемым данным методом post.
Пример.
Перепишем в Форма 1, метод отправки и супер глобальные массивы с GET на POST.
<form method="post">
echo '<p> Имя : ' . $_POST['name'];
echo '<br> Пароль : ' . $_POST['pass'];
Удалите из адресной строки знак ?, и все что после него.
Введите данные в форму и вы увидите что в адресной строке ничего нет, а переданные данные отобразились в супер глобальном массиве $_POST.
Два метода GET и POST используют в зависимости от задачи. В этом уроке мы познакомились с этими методами, в видео курсе узнаем почему используют GET, а когда POST.