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