Simulierter POST-Request will nicht
AllesMeins
- php
0 romy0 AllesMeins0 romy
0 Andreas Korthaus0 Henryk Plötz
Hallo,
ich versuche gerade per POST Daten von einem Server zu einem anderen zu transferieren (bzw. im Moment im test erst mal auf meinem lokalen Test-Server, aber später von Server zu Server). Dafür habe ich das Script von http://www.dclp-faq.de benutzt, aber das will nicht so richtig. Hier erst mal das Script wie es im Moment aussieht:
=================================
function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host, 100);
fputs($fp, "POST $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");
printf("Transferiere Daten!\n");
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
fclose($fp);
return $res;
}
Als fehler kommt dieses zurück:
HTTP/1.1 400 Bad Request Date: Tue, 20 May 2003 12:52:41 GMT Server: Apache/1.3.20 (Win32) Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 15b
Bad Request
Your browser sent a request that this server could not understand.
Invalid URI in request POST sta/toptrek/transfer.php HTTP/1.1
Die Adresse http://localhost:100/sta/toptrek/transfer.php existiert aber. Hat irgendwer eine Idee wo der Fehler liegen könnte...
Grüsse
Marc
Hi,
=================================
function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host, 100);
fputs($fp, "POST $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");
printf("Transferiere Daten!\n");
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
fclose($fp);return $res;
}$data = "user=sta";
$x = PostToHost(
"localhost",
"sta/toptrek/transfer.php",
"http://localhost:100/sta/toptrek/transfer.php",
$data
);
echo "<br>" . $x;
lass den referer erstmal weg, den brauchst Du nicht wirklich, hab dies erst letztens mit diesem script versucht und war auch erfolgreich
http://forum.de.selfhtml.org/archiv/2003/5/46697/#m254951
vielleicht liegt es daran!?
ciao
romy
http://forum.de.selfhtml.org/archiv/2003/5/46697/#m254951
vielleicht liegt es daran!?
Nope, da ist ja der Sendevorgang an sich OK (jednefalls kommt ein 200 OK zurück). Ich bekomme nen Bad Request (400). Da scheint irgendwas mit dem senden nicht zu stimmen... ich weiss nur nicht was... Das weglassen des Referers bringt auch nicht wirklich viel...
Marc
Hi,
Ich bekomme nen Bad Request (400). Da scheint irgendwas mit dem senden nicht zu stimmen... ich weiss nur nicht was... Das weglassen des Referers bringt auch nicht wirklich viel...
vielleicht geht localhost nicht (da soll es ja hin)
lass dir alles ausgeben bevor Du es verwendest.
steige von HTTP1.1 mal auf 1.0 um, habe gehört, da gibt es noch Probleme
mehr fällt mir auch nicht ein.
ciao
romy
Hi!
Kann es sein dass localhost Windows ist? Dann probier es mal mit "\xD\xA" anstatt von "\n". Deine Version wird unter win nicht als Zeilenumbruch erkannt, das könnte das Probem sein.
Grüße
Andreas
Moin,
Invalid URI in request POST sta/toptrek/transfer.php HTTP/1.1
Da steht doch was das Problem ist.
Die Adresse http://localhost:100/sta/toptrek/transfer.php existiert aber.
Wenn du /sta/toptrek/transfer.php aufrufen willst, warum gibst du dann
^
"sta/toptrek/transfer.php",
^^
an?