Hi,
I'm using the following code to perform a post request from PHP. It works fine on a server running PHP 5, but not on a server running PHP 4. I've tried switching error reporting on but it's not giving any output.
Any ideas?
Thanks,
Sean
I'm using the following code to perform a post request from PHP. It works fine on a server running PHP 5, but not on a server running PHP 4. I've tried switching error reporting on but it's not giving any output.
Code:
error_reporting(E_ALL);
ini_set('display_errors', true);
//CALL FUNCTION, AND PRINT OUT SERVERS RESPONSE
echo do_post_request('http://www.example.com/form.php?form=7',
'CustomFields[7]=Sean&email=sean@example.com');
//should work in PHP 4 and 5
function do_post_request($url, $data, $optional_headers = null) {
$start = strpos($url,'//')+2;
$end = strpos($url,'/',$start);
$host = substr($url, $start, $end-$start);
$domain = substr($url,$end);
$fp = pfsockopen($host, 80, $erstr, $errno, 5);
if(!$fp) return null;
fputs ($fp,"POST $domain HTTP/1.1\n");
fputs ($fp,"Host: $host\n");
if ($optional_headers) {
fputs($fp, $optional_headers);
}
fputs ($fp,"Content-type: application/x-www-form-urlencoded\n");
fputs ($fp,"Content-length: ".strlen($data)."\n\n");
fputs ($fp,"$data\n\n");
$response = "";
while(!feof($fp)) {
$response .= fgets($fp, 1024);
}
fclose ($fp);
return $response;
}
Thanks,
Sean
Comment