Re: fsockopen + fputs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 16 May 2008, at 00:04, debussy007 wrote:
I use fsockopen and fputs to call a distant URL, but I have the following
error :
The requested URL /registration/test was not found on this server.

This is my code:

$req =
	'username=' . $usr . '&password=' . $pass .
	'&date_of_birth=' . $year . "-" . $month . "-" . $day .
	'&email=' . $email . '&country=' . $country;

You should be using urlencode on these variables, otherwise you could end up truncating the data.

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
  echo "$errstr ($errno)<br>\n";
} else {
	$header = "POST /registration/test HTTP/1.0\r\n";
	$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
	$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
	fputs ($fp, $header . $req);
	
  while (!feof($fp)) {
		echo fgets($fp, 1024);
  }
  fclose($fp);
}

However the path www.example.com/registration/test exists

By which I assume you mean "it works in a browser". If not, make sure it works in a browser first.

so why does it says it cannot find the requested url ?

You probably need a Host header to direct the request to the right website. If you're going to be making manual HTTP requests I suggest you use Firebug or similar to examine the requests your browser is making. Even better read the HTTP spec, but I tend to be realistic in my expectations. Alternatively I'd recommend looking at using the Curl extension.

-Stut

--
http://stut.net/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux