Входящий http запрос php

Методы PHP GET и POST, переменная $_REQUEST

Клиенты браузера могут отправлять информацию на веб-сервер.

Прежде чем браузер отправит информацию, он кодирует ее, используя схему, называемую кодировкой URL. В этой схеме пары имя / значение объединяются с равными знаками, а разные пары разделяются амперсандом.

Пробелы удаляются и заменяются символом +, и любые другие неалфанумерные символы заменяются шестнадцатеричными значениями. После того, как информация закодирована, она отправляется на сервер.

Метод GET

Метод GET отправляет закодированную пользовательскую информацию, добавленную к запросу страницы. Страницы и кодированной информации отделены друг от друга ? знаком вопроса.

  • Метод GET создает длинную строку, которая отображается в ваших журналах сервера, в поле «Расположение» браузера.
  • Метод GET ограничивается отправить ДО только 1024 символов.
  • Никогда не используйте метод GET, если у вас есть пароль или другая конфиденциальная информация для отправки на сервер.
  • GET не может быть использован для передачи двоичных данных, например , изображения или текстовые документы, на сервер.
  • Доступ к данным, отправленным методом GET, можно получить с помощью переменной окружения QUERY_STRING.
  • PHP предоставляет ассоциативный массив $ _GET для доступа ко всей отправляемой информации с использованием метода GET.

Попробуйте следующий пример, поместив исходный код в скрипт test.php .

if( $_GET[«name»] || $_GET[«age»] ) < echo "Welcome ". $_GET['name']; echo "You are ". $_GET['age']. " years old."; exit(); > Name: Age:

Читайте также:  Css v34 во весь экран

Метод POST

Метод POST передает информацию через HTTP-заголовки. Информация кодируется, как описано в случае метода GET, и помещается в заголовок QUERY_STRING.

  • Метод POST не имеет ограничений на размер данных, которые необходимо отправить.
  • Метод POST может использоваться для отправки ASCII, а также двоичных данных.
  • Данные, отправленные методом POST, проходят через HTTP-заголовок, поэтому безопасность зависит от протокола HTTP. Используя Secure HTTP, вы можете убедиться, что ваша информация защищена.
  • PHP предоставляет ассоциативный массив $_POST для доступа ко всей отправляемой информации с использованием метода POST.

Попробуйте следующий пример, поместив исходный код в скрипт test.php .

if( $_POST["name"] || $_POST["age"] ) < if (preg_match("[^A-Za-z'-]",$_POST['name'] )) < die ("invalid name and name should be alpha"); >echo "Welcome ". $_POST['name']; echo "You are ". $_POST['age']. " years old."; exit(); > 
Name: Age:

Переменная $_REQUEST

Переменная PHP $_REQUEST содержит содержимое как $_GET, $_POST, так и $_COOKIE. Мы обсудим переменную $_COOKIE, когда мы расскажем о файлах cookie.

Переменная PHP $_REQUEST может использоваться для получения результата из данных формы, отправленных с использованием методов GET и POST.

Попробуйте следующий пример, поместив исходный код в скрипт test.php.

if( $_REQUEST["name"] || $_REQUEST["age"] ) < echo "Welcome ". $_REQUEST['name']; echo "You are ". $_REQUEST['age']. " years old."; exit(); >  
Name: Age:

Здесь переменная $_PHP_SELF содержит имя собственного скрипта, в котором он вызывается.

Источник

Как создать GET POST запросы с помощью PHP

Первый метод, позволяющий выполнить PHP POST запрос, заключается в использовании file_get_contents . Второй метод будет использовать fread в сочетании с парой других функций. Оба варианта применяют функцию stream context create , чтобы заполнить необходимые поля заголовка запроса.

Пояснение кода

Переменная $sPD содержит данные, которые нужно передать. Она должна иметь формат строки HTTP-запроса , поэтому некоторые специальные символы должны быть закодированы.

И в функции file_get_contents , и в функции fread у нас есть два новых параметра. Первый из них — use_include_path . Так как мы выполняем HTTP- запрос , в обоих примерах он будет иметь значение false . При использовании значения true для считывания локального ресурса функция будет искать файл по адресу include_path .

Второй параметр — context , он заполняется возвращаемым значением stream context create , который принимает значение массива $aHTTP .

Использование file_get_contents для выполнения POST-запросов

Чтобы в PHP отправить POST запрос с помощью file_get_contents , нужно применить stream context create , чтобы вручную заполнить поля заголовка и указать, какая « обертка » будет использоваться — в данном случае HTTP :

$sURL = "http://brugbart.com/Examples/http-post.php"; // URL-адрес POST $sPD = "name=Jacob&bench=150"; // Данные POST $aHTTP = array( 'http' => // Обертка, которая будет использоваться array( 'method' => 'POST', // Метод запроса // Ниже задаются заголовки запроса 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $sPD ) ); $context = stream_context_create($aHTTP); $contents = file_get_contents($sURL, false, $context); echo $contents;

Использование fread для выполнения POST-запросов

Для выполнения POST-запросов можно использовать функцию fread . В следующем примере stream context create используется для составления необходимых заголовков HTTP-запроса :

$sURL = "http://brugbart.com/Examples/http-post.php"; // URL-адрес POST $sPD = "name=Jacob&bench=150"; // Данные POST $aHTTP = array( 'http' => // Обертка, которая будет использоваться array( 'method' => 'POST', // Request Method // Ниже задаются заголовки запроса 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $sPD ) ); $context = stream_context_create($aHTTP); $handle = fopen($sURL, 'r', false, $context); $contents = ''; while (!feof($handle)) < $contents .= fread($handle, 8192); >fclose($handle); echo $contents;

Как выполнить в PHP GET-запрос

Теперь мы уделим внимание использованию fread и file_get_contents для загрузки контента из интернета через HTTP и HTTPS . Чтобы использовать методы, описанные в этой статье, необходимо активировать опцию fopen wrappers . Для этого в файле php.ini нужно установить для параметра allow_url_fopen значение On .

Выполнение POST и GET запросов PHP применяется для входа в систему на сайтах, получения содержимого веб-страницы или проверки новых версий приложений. Мы расскажем, как выполнять простые HTTP-запросы .

Использование fread для загрузки или получения файлов через интернет

Помните, что считывание веб-страницы ограничивается доступной частью пакета. Так что нужно использовать функцию stream_get_contents ( аналогичную file_get_contents ) или цикл while , чтобы считывать содержимое меньшими фрагментами до тех пор, пока не будет достигнут конец файла:

  fclose($handle); echo $contents; ?>

В данном случае обработки POST запроса PHP последний аргумент функции fread равен размеру фрагмента. Он, как правило, не должен быть больше, чем 8192 ( 8*1024 ).

Имейте в виду, что он может быть больше или меньше, а также может быть ограничен настройками системы, на которой запускается PHP .

Использование file_get_contents для получения URL-адреса сайта

Еще проще использовать этот метод при считывании файла по HTTP , так как вам не придется заботиться о считывании по фрагментам — все обрабатывается в PHP .

Источник

Оцените статью