Отправка 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;
Вот вроде и все.
Удачи и не используйте эти знания в плохих целях, например, в спаме
Комментариев: 8. Обязательно оставьте свой!
Общаться на сайте в одноклассниках с друзьями -это здорово!
Спасибо Вам за вашу статью. Таких статей в инете вообще мало.
Всё так понятно описанно что у меня слов нет
настолько всё просто, что даже ошибку выдаёт:
Fatal error: Call to undefined function curl_init() in Z:\home\localhost\www\msbot\multi\5.php on line 6
и не работает
а в методе GET – функцию file_get_contens не понимает (ибо не прописана вообще)
Злой Ламер, вполне лдогично, что без установленного cURL все функции cURL будут выдавать Fatal error
asd
Простите за суровый некропостинг, но у вас опечатка:
пропущена буква t в названии функции:
file_get_contens => file_get_contents