AllesMeins: Header entfernen

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

  1. 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

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
    1. 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

      1. 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

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
  2. 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 Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Der Header ist falsch.

      1. 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.

      1. 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