phpbar.de logo

Mailinglisten-Archive

[php] socketfunktion

[php] socketfunktion

robs-info php_(at)_phpcenter.de
Thu, 27 Jun 2002 16:43:14 +0200


Rainer Utsch schrieb:


> Hallo Liste,

> ich möchte per posttoHost-Funktion einen Server abfragen. Allerdings
> bekomme ich immer einen
> Bad Request 400
> Your browser sent a request that this server could not understand.
> Invalid URI in request GET abfrage.php HTTP/1.1

> Das Skript: (falls es nicht bekannt sein könnte)

> function PostToHost($host, $path, $referer, $data_to_send) {
>   $fp = fsockopen($host,80);

>   fputs($fp, "GET $path HTTP/1.1\n");
>   fputs($fp, "Host: $host\n");
>   fputs($fp, "Referer: $referer\n");
>   fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
>   fputs($fp, "Content-length: ".strlen($data_to_send)."\n");
>   fputs($fp, "Connection: close\n\n");
>   fputs($fp, "$data_to_send\n");
>   while(!feof($fp)) {
>       $res .= fgets($fp,1024);
>   }

>   fclose($fp);
>         return $res ;
>  }


Also,

1. Nach der Methode (z.B. GET) wird mit einem / begonnen (fehlerchen)
2. Seit HTTP 1.1 ist der Hostheader Pflicht (ok)
3. Wenn du Daten per POST schickst, mußt du auch POST schreiben und
nicht GET. Als GET ist der obige Konstrukt völlig falsch. (fehlerchen)
4. Die Daten die ausgegeben werden, sollten auch
tatsächlich urlencoded werden. Die Content-length nach dem urlencoded
bestimmen. (evtl. fehlerchen)

-- 
Gruß, Rob


php::bar PHP Wiki   -   Listenarchive