Отправка POST формы посредством PHP

Опубликовано 2 мая, 2009 в PHP

С отправкой методом GET всё понятно, достаточно просто вот такого финта:

<?php file_get_contens('http://php.name/?s=2&j=1&o=4'); ?>

Собственно, данные POST от данных GET мало чем отличаются. Если говорить очень простым языком, то «get – вот он», а «post – где-то там». Но суть не меняется, оба метода – обыкновенные строки с параметрами, разделенными знаком «&».

Итак, существует несколько методов отправки POST данных на PHP. Один из них – сокеты. Но я очень не люблю сокеты, поэтому покажу как это реализуется с помощью библиотеки cURL.

<?php
$url = 'http://php.name/'; //УРЛ, которому будут передаваться post данные
/*
Небольшая прелюдия, думаю, тут всё понятно.
*/
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($ch, CURLOPT_POST,1); //Вот оно!
/*
И вот, в 3 параметре функции передается строка post данных.
Как видите, она почти ничем не отличается от get - той,
что в адресно строке браузера, только знака вопроса нет в начале
*/
curl_setopt($ch, CURLOPT_POSTFIELDS,"s=1&d=2&z=3&q=3");
$html = curl_exec($ch); //В этой переменной будет содержаться ответ сервера
curl_close($ch);

?>

Как видите, мы отправили на адрес http://php.name/ некоторые данные, теперь серверный скрипт должен обработать их как:

$_POST['s'] = 1;

$_POST['d'] = 2;

$_POST['z'] = 3;

$_POST['q'] = 3;

Вот вроде и все.

Удачи и не используйте эти знания в плохих целях, например, в спаме :)




Комментарии «Отправка POST формы посредством PHP»:
Комментариев: 8. Обязательно оставьте свой!
Любовь 18.09.2009 в 18:34

Общаться на сайте в одноклассниках с друзьями -это здорово!

Nikolo0303 30.11.2009 в 9:31

Спасибо Вам за вашу статью. Таких статей в инете вообще мало.
Всё так понятно описанно что у меня слов нет :)

Злой Ламер 26.06.2010 в 4:10

настолько всё просто, что даже ошибку выдаёт:

Fatal error: Call to undefined function curl_init() in Z:\home\localhost\www\msbot\multi\5.php on line 6

и не работает :-)

Злой Ламер 26.06.2010 в 4:12

а в методе GET – функцию file_get_contens не понимает (ибо не прописана вообще)

pistol 26.06.2010 в 10:26

Злой Ламер, вполне лдогично, что без установленного cURL все функции cURL будут выдавать Fatal error :)

12 26.08.2010 в 12:59

asd

_r2_ 12.12.2011 в 9:46

Простите за суровый некропостинг, но у вас опечатка:

пропущена буква t в названии функции:

_r2_ 12.12.2011 в 9:46

file_get_contens => file_get_contents

Ваш комментарий: