AllesMeins: Simulierter POST-Request will nicht

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;
}

$data = "user=sta";
$x = PostToHost(
              "localhost",
              "sta/toptrek/transfer.php",
              "http://localhost:100/sta/toptrek/transfer.php",
              $data
);
echo "<br>" . $x;

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

Apache/1.3.20 Server at localhost Port 100

Die Adresse http://localhost:100/sta/toptrek/transfer.php existiert aber. Hat irgendwer eine Idee wo der Fehler liegen könnte...

Grüsse

Marc

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

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

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

        --
        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!

    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

  3. 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?

    --
    Henryk Plötz
    Grüße aus Berlin
    ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
    ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
    1. Danke, das war der Fehler :)

      Grüsse

      Marc