- How to Send a Post Request with PHP
- A. Using PHP Curl
- B. Using Pecl_Http
- C. Using the Object-Oriented (OO) Interface of Pecl_HTTP
- Send http post with php
- POST-запросы
- Форма ввода данных
- Форма ввода данных
- Форма ввода данных
- Send POST Request in PHP
- Use the CURL-less Method Using the stream_context_create() and file_get_contents() Functions to Send a POST Request in PHP
- Use the CURL to Send the POST Request in PHP
- Create a User-Defined Function That Uses the CURL to Send the POST Request in PHP
How to Send a Post Request with PHP
In this tutorial, we aim share with you 3 competent ways of sending post requests using PHP.
Follow the examples below and choose the one that meets your needs better.
A. Using PHP Curl
The PHP cURL extension is a quite straightforward way allowing to combine different flags with setopt() calls.
Below is an example with an $xml variable that holds the XML prepared for sending:
$url = 'http://api.flickr.com/services/xmlrpc/'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $xml); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); ?>
As you can notice from the example above, first, the connection is initialised, and then some options are set with setopt() . These actions inform PHP about making a post request.
B. Using Pecl_Http
Generally, Pecl_Http combines two interfaces. The first one is considered procedural, the second one- object-oriented . Let’s start at discovering the first one. It provides you with a simpler way than the curl. Here is a script, which is translated for pecl_http :
$url = 'http://api.flickr.com/services/xmlrpc/'; $response = http_post_data($url, $xml); ?>
C. Using the Object-Oriented (OO) Interface of Pecl_HTTP
As it was noted above, the second interface of xpecl_http is considered object- oriented . It is similar to the 2 extensions demonstrated above but applies a different interface. Here is how its code looks like:
$url = 'http://api.flickr.com/services/xmlrpc/'; $request = new HTTPRequest($url, HTTP_METH_POST); $request->setRawPostData($xml); $request->send(); $response = $request->getResponseBody(); ?>
You can notice that this code is longer than the previous one. You might think that it is more complicated, yet it is as powerful and flexible as the previous ones. So, it can be an outstanding option to implement in your practice.
Send http post with php
Одним из основных способов передачи данных веб-сайту является обработка форм. Формы представляют специальные элементы разметки HTML, которые содержат в себе различные элементы ввода — текстовые поля, кнопки и т.д. И с помощью данных форм мы можем ввести некоторые данные и отправить их на сервер. А сервер уже обрабатывает эти данные.
Создание форм состоит из следующих аспектов:
- Создание элемента в разметке HTML
- Добавление в этот элемент одно или несколько поле ввода
- Установка метода передачи данных. Чаще всего используются методы GET или POST
- Установка адреса, на который будут отправляться введенные данные
POST-запросы
Итак, создадим новую форму. Для этого определим новый файл form.php , в которое поместим следующее содержимое:
Форма ввода данных
Имя:
Возраст:
Атрибут action=»user.php» элемента form указывает, что данные формы будет обрабатывать скрипт user.php , который будет находиться с файлом form.php в одной папке. А атрибут method=»POST» указывает, что в качестве метода передачи данных будет применяться метод POST.
Теперь определим файл user.php , который будет иметь следующее содержание:
if(isset($_POST["age"])) < $age = $_POST["age"]; >echo "Имя: $name
Возраст: $age"; ?>
Для обработки запросов типа POST в PHP используется встроенная глобальная переменная $_POST . Она представляет ассоциативный массив данных, переданных с помощью метода POST. Используя ключи, мы можем получить отправленные значения. Ключами в этом массиве являются значения атрибутов name у полей ввода формы.
Например, так как атрибут name поля ввода возраста имеет значение age ( ), то в массиве $_POST значение этого поля будет представлять ключ «age»: $_POST[«age»]
И поскольку возможны ситуации, когда поле ввода будет не установлено, то в этом случае желательно перед обработкой данных проверять их наличие с помощью функции isset() . И если переменная установлена, то функция isset() возвратит значение true .
Теперь мы можем обратиться к скрипту form.php и ввести в форму какие-нибудь данные:
И по нажатию кнопки введенные данные методом POST будут отправлены скрипту user.php :