Mailinglisten-Archive |
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