Формирование POST запроса, php

Igorrok
На сайте с 28.08.2007
Offline
117
8607

Подскажите, как сделать скрипт чтоб он отправлял данные методом POST в форму на одном сайте и

получал результируемые данные, после обработки данных формой.

Как сделать передачу данных методом POST и получать ответ?

Истина где-то рядом...
WebSee
На сайте с 12.11.2007
Offline
66
#1

cUrl в помощь.

Встань и иди!
Igorrok
На сайте с 28.08.2007
Offline
117
#2

Как именно, можешь показать?

MerlinMAG
На сайте с 15.10.2006
Offline
43
#3

Можно сделать так.


//Функция отправляет POST запрос и возвращает результат его выполнения
function pc_post_request($host,$url,$content='')
{
$timeout = 10;
$a = array();
if (is_array($content)) {
foreach ($content as $k => $v) {
array_push($a,($k).'='.($v));
}
}
$content_string = join('&',$a);
$content_length = strlen($content_string);
$request_body = "POST $url HTTP/1.0
Host: $host
Content-type: application/x-www-form-urlencoded
Content-length: $content_length

$content_string";

$sh = fsockopen($host,80,&$errno,&$errstr,$timeout)
or die("can't open socket to $host: $errno $errstr");

fputs($sh,$request_body);
$response = '';
while (! feof($sh)) {
$response .= fread($sh,16384);
}
fclose($sh) or die("Can't close socket handle: $php_errormsg");

list($response_headers,$response_body) = explode("\r\n\r\n",$response,2);
$response_header_lines = explode("\r\n",$response_headers);

// first line of headers is the HTTP response code
$http_response_line = array_shift($response_header_lines);
if (preg_match('@^HTTP/[0-9]\.[0-9] ([0-9]{3})@',$http_response_line,
$matches)) {
$response_code = $matches[1];
}

// put the rest of the headers in an array
$response_header_array = array();
foreach ($response_header_lines as $header_line) {
list($header,$value) = explode(': ',$header_line,2);
$response_header_array[$header] = $value;
}
$response_body = iconv("utf-8","windows-1251",$response_body);

return array($response_code,$response_header_array,$response_body);
}
Стояли звери - около двери
По ним стреляли - они умирали Бесплатный видеокурс по Drupal (/ru/forum/597414)
grey109
На сайте с 15.06.2005
Offline
180
#4

$ch = curl_init();

//curl_setopt($ch, CURLOPT_PROXY, "1.2.3.4:123"); //если нужен прокси

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_URL, "http://www.site.com/form.php"); //куда шлем

curl_setopt($ch, CURLOPT_POSTFIELDS, "x=231&y=342"); //что шлем

curl_setopt($ch, CURLOPT_REFERER, "http://www.site.com");

curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; .NET CLR 1.1.4322)");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt($ch, CURLOPT_NOBODY, 0);

$result=curl_exec ($ch);

curl_close ($ch);

echo $result;

mfl
На сайте с 16.10.2006
Offline
134
mfl
#5

прошу удалить, grey109 уже ответил

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий