Переменные PHP $_GET и $_POST
Существует два метода отправки данных из браузера клиента на веб-сервер:
HTML-страница ниже содержит HTML-форму с элементами ввода разных типов: текст, пароль, флажок, радио, select... Когда пользователь заполнит эти элементы и нажмет кнопку отправки, данные будут перенесены в конечный файл "exemple.php", указанный в атрибуте action form.
На следующем рисунке показан пример HTML-формы с методом GET и результатом, захваченным страницей PHP.
- Метод GET
- метод POST
HTML-страница ниже содержит HTML-форму с элементами ввода разных типов: текст, пароль, флажок, радио, select... Когда пользователь заполнит эти элементы и нажмет кнопку отправки, данные будут перенесены в конечный файл "exemple.php", указанный в атрибуте action form.
На следующем рисунке показан пример HTML-формы с методом GET и результатом, захваченным страницей PHP.
Метод GET
Метод GET отправляет закодированную информацию на целевую страницу. Страница и закодированная информация разделяются символом. http://www.exemple.com/index.php?name1=valeur1& name2=value2
Давайте посмотрим на HTML-форму ниже. В элементе form вы должны указать, как вы будете отправлять информацию на сервер в "method".
внутри файла "imprime_infos.php" мы использовали переменную $_GET для сбора полученных значений (имя и возраст).
Давайте посмотрим на HTML-форму ниже. В элементе form вы должны указать, как вы будете отправлять информацию на сервер в "method".
< форма action="imprime_infos.php" method="GET">
Имя пользователя: < input type="текст" name="имя" />
Возраст: < input type="текст" name="возраст" />
< input type="submit" value="Submit">
форма>
внутри файла "imprime_infos.php" мы использовали переменную $_GET для сбора полученных значений (имя и возраст).
phpВыполнив код с сервером WampServer, мы получили приведенный выше результат, информация о котором видна в адресной строке.
if( $_GET["name"] || $_GET["age"] ) {
echo "Hello". $_GET['имя']. "< br/>";
эхо "У тебя есть". $_GET['возраст']. «лет.»;
}
?>
- Метод GET создает длинную строку символов, которая появляется в журнале сервера и истории браузера.
- Количество символов, отправляемых с помощью метода GET, ограничено 1024 символами. Поэтому мы не можем отправить длинный текст.
- Никогда не используйте метод GET для отправки конфиденциальной информации, такой как пароль или номер кредитной карты и код.
- GET не может отправлять двоичные данные, такие как изображения и документы, на сервер.
- Доступ к данным, отправленным методом GET, можно получить с помощью переменных окружения QUERY_STRING.
- PHP имеет массив $_GET для доступа ко всей информации, отправляемой с помощью GET.
- GET следует использовать только для получения информации.
POST
Как описано выше, метод GET совсем не безопасен, и поэтому это привело к тому, что PHP-разработчики разработали эффективное решение для отправки информации без ее появления в адресной строке. Кроме того, GET ограничен 1024 символами. Поэтому лучше отправлять данные формы методом POST. Метод POST работает так же, как и метод GET, но он более безопасен, чем GET, потому что значения не видны в адресной строке браузера и не сохраняются в истории браузера.
Чтобы использовать POST, ставим ключевое слово POST вместо GET.
- Отправленные данные не сохраняются в истории браузера.
- POST можно использовать для отправки двоичных данных.
- Данные, отправляемые методом POST, передаются через HTTP-заголовок, поэтому безопасность зависит от протокола HTTP. Используя безопасный HTTP, вы можете быть уверены, что ваша информация защищена.
- PHP имеет массив $_POST для доступа ко всей информации, отправляемой с помощью метода POST.
Попробуйте следующий пример в файле "imprime_infos.php":
< форма action="imprime_infos.php" method="POST">А для сбора информации используем переменную $_POST:
Имя пользователя: < input type="текст" name="имя" />
Возраст: < input type="текст" name="возраст" />
< input type="submit" value="Submit">
форма>
phpСреда выполнения показывает, что информация не видна в адресной строке:
if( $_POST["name"] || $_POST["age"] ) {
echo "Здравствуйте". $_POST['имя']. "< br/>";
эхо "У тебя есть". $_POST['возраст']. «лет.»;
}
?>
Преимущества использования метода POST:
- Метод POST не имеет ограничений на размер отправляемых данных.- Отправленные данные не сохраняются в истории браузера.
- POST можно использовать для отправки двоичных данных.
- Данные, отправляемые методом POST, передаются через HTTP-заголовок, поэтому безопасность зависит от протокола HTTP. Используя безопасный HTTP, вы можете быть уверены, что ваша информация защищена.
- PHP имеет массив $_POST для доступа ко всей информации, отправляемой с помощью метода POST.
Переменная $_REQUEST
Переменная $_REQUEST содержит содержимое $_GET, $_POST и $_COOKIE. $_REQUEST полезно для получения данных в случае, если они поступают из обоих методов $_GET и $_POST.Попробуйте следующий пример в файле "imprime_infos.php":
php
if( $_REQUEST["name"] || $_REQUEST["age"] ) {
echo "Hello". $_REQUEST['имя']. "< br/>";
эхо "У тебя есть". $_REQUEST['возраст']. «лет.»;
}
?>