Header entfernen
AllesMeins
- php
0 romy0 Andreas Korthaus0 romy
0 MudGuard
Hallo,
ich nutzte einen vcon PHP simulierten POST Request mit fsockopen() um Daten an einen anderen Server zu übertragen. Nun möchte ich gerne die Antwort dieses Servers auswerten (Wenn sie 'true' ist ist alles ok, falls nicht will ich die Fehlermeldung ausgeben). Um dies zu erreichen lasse ich das empfangende PHP Script einfach per echo den Status zurück geben und lese diese Antwort nach dem Senden der daten aus. Nun ist mein problem das die Funktion nicht nur das was das Script geschrieben hat ausliest, sondern den kompletten http header gleich mit. Die Antwort sieht dann also so aus:
HTTP/1.1 200 OK Date: Tue, 20 May 2003 21:40:23 GMT Server: Apache/1.3.20 (Win32) X-Powered-By: PHP/4.2.3 Connection: close Transfer-Encoding: chunked Content-Type: text/html 4 true 0
Das ist natürlich relativ unschön und macht auch die Arbeit damit schwerer. Kann ich den Header denn irgendwie los werden?
Anbei noch das verwendete Script:
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;
Dabei enthält $x dann die oben erwähnte Antwort mit dem header.
Grüsse
Marc
Hi,
woran lag jetzt eigentlich dein Error, den Du vorher hattest?
Ich schätze den überschüssigen String muss man selbst abschneiden, hatte diese Frage auch schon gestellt, aber keine Antwort mehr erhalten
http://forum.de.selfhtml.org/archiv/2003/5/46697/#m255942
wahrscheinlich war das Archiv schneller!? ;-)
Letztendlich sollte dein script ja in <?php bzw. ?> - Tags eingeschlossen sein, da gibt es bestimmt eine Möglichkeit den Rest abzuschneiden, obwohl ich diese Lösung auch nicht als sauber empfinde. Aber die Dokus gehen auf diesen Umstand nicht ein.
sorry ist keine grosse Hilfe
ciao
romy
Hi!
woran lag jetzt eigentlich dein Error, den Du vorher hattest?
Ich schätze den überschüssigen String muss man selbst abschneiden, hatte diese Frage auch schon gestellt, aber keine Antwort mehr erhalten
http://forum.de.selfhtml.org/archiv/2003/5/46697/#m255942
wahrscheinlich war das Archiv schneller!? ;-)
Das steht mehrere male im Archiv wie das geht.
Grüße
Andreas
Hi,
Das steht mehrere male im Archiv wie das geht.
habe es gefunden...
http://forum.de.selfhtml.org/archiv/2002/10/26179/#m142891
tja, da muss man sich wohl belehren lassen. ;-)
danke
ciao
romy
Hi,
ich nutzte einen vcon PHP simulierten POST Request mit fsockopen() um Daten an einen anderen Server zu übertragen. Nun möchte ich gerne die Antwort dieses Servers auswerten (Wenn sie 'true' ist ist alles ok, falls nicht will ich die Fehlermeldung ausgeben). Um dies zu erreichen lasse ich das empfangende PHP Script einfach per echo den Status zurück geben und lese diese Antwort nach dem Senden der daten aus. Nun ist mein problem das die Funktion nicht nur das was das Script geschrieben hat ausliest, sondern den kompletten http header gleich mit. Die Antwort sieht dann also so aus:
HTTP/1.1 200 OK Date: Tue, 20 May 2003 21:40:23 GMT Server: Apache/1.3.20 (Win32) X-Powered-By: PHP/4.2.3 Connection: close Transfer-Encoding: chunked Content-Type: text/html 4 true 0
Der Header ist falsch.
1. fehlen die Zeilenumbrüche,
2. stimmt der content-type nicht mit dem Inhalt überein...
Um den Header abzutrennen:
Der Header ist vom Body durch eine Leerzeile getrennt.
Also einfach alles bis einschließlich der ersten Leerzeile wegschmeißen.
cu,
Andreas
Der Header ist falsch.
- fehlen die Zeilenumbrüche,
Zeilenumbrüche sind drinne. Nur werden die \n Zeilenumbrüche vom Browser nicht als solche dargestellt, deswegen habe ich sie auch nicht mitkopiert.
- stimmt der content-type nicht mit dem Inhalt überein...
Hmm, dafür kann ich ja erst mal nichts. Das ist der header der so automatisch gesendet wird, ohne das ich einen Einfluss darauf habe. Wie kann ich das richtig stellen?
Um den Header abzutrennen:
Der Header ist vom Body durch eine Leerzeile getrennt.
Also einfach alles bis einschließlich der ersten Leerzeile wegschmeißen.
Thx, werde es versuchen...
Grüsse
Marc