I have a BIG problem to solve! I need to send a form in POST method only and get a specific variable.
I have already got the function:
<?php
// send out "browser" headers
function post_send_headers ($fp)
{
fputs ($fp, "Accept: /\n");
fputs ($fp, "Accept-Language: en\n");
fputs ($fp, "Connection: Keep-Alive\n");
fputs ($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)\n");
}
// post data and return reply
function post_data ($host, $url, $data, $port=80)
{
// INPUT VALIDATION:
if (strlen($host)<1)
return false;
if (strlen($url)<1)
return false;
if ((!is_array($data)) || sizeof($data)<1)
return false;
$fp = @fsockopen ($host, $port, $errno, $errstr, 120);
$ret = "";
//if (strncasecmp ($url, "http://", 7) == 0) $url = substr ($url, 7);
$req = substr ($url, $p);
if ($fp)
{
fputs ($fp, "POST $req HTTP/1.0\n");
post_send_headers ($fp);
fputs ($fp, "Content-type: application/x-www-form-urlencoded\n");
$out = "";
while (list ($k, $v) = each ($data))
{
if(strlen($out) != 0) $out .= "&";
$out .= rawurlencode($k). "=" .rawurlencode($v);
}
$out = trim ($out);
fputs ($fp, "Content-length: ".strlen($out)."\n\n");
fputs ($fp, "$out");
fputs ($fp, "\n");
while(!feof($fp))
{
$ret .= fgets($fp,128);
}
fclose ($fp);
}
return $ret;
}
?>
I works fine, but the RETURN shows the result page of the posting.
My problem: how to get only the variable that a need? I have to change the RETURN line in the script, ok?
But there is more: the place where the form is submited answers in a different page, ex: I submit to CALCULATE-SHIPPING.ASP and the anwser is returned in ANSWER.ASP.
Please, help.