Post daten als variable geht nicht?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Post daten als variable geht nicht?

    Hallo,
    beim Posten von Daten habe ich ein Problem, wenn ich sie als variable ( $data ) schicke, geht es nicht, bekomme immer die gleiche Seite. Aber als fester String schicken läuft es richtig.

    Beispiel:

    function PostToHost(.......)
    {
    ...........
    .........
    $fp = fsockopen($host, 80);
    fputs($fp, "POST $path HTTP/1.1\r\n");
    fputs($fp, "Host: $host\r\n");
    ......
    ....

    /**********************************************/

    $data = "city=hagen&street=bahnhof";

    fputs($fp, " ". strlen($data) ."\r\n");
    fputs($fp, "Connection: closer\r\n\r\n");

    //Jetzt die PostDaten schicken

    fputs($fp, $data); /*******PROBLEM********/

    //fputs($fp, "city=hagen&street=bahnhof"); /******OK*******/

    /************************************************/


    ......
    //Daten lesen
    .....


    fclose($fp);
    }


    Woran kann das liegen?

    Gruß.

  • #2
    ... was steht denn in der variable?
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      in dem variable steht das gleiche.

      $data = "city=hagen&street=bahnhof";

      fputs($fp, $data); /*******PROBLEM********/
      //fputs($fp, "city=hagen&street=bahnhof"); /******OK*******/



      Kann sein dass das Problem damit nichts zu tun hat. Aber mit der auskommentierten Zeile geht es. Komisch.

      Kommentar


      • #4
        Kontrollausgabe $data direkt vor dem fraglichen fputs() ...?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Hatte ich auch. Gibts keinen Unterschied.

          Kommentar


          • #6
            Gehört das Script an das du postest dir? Wenn ja, könntest da auch mal Testausgaben machen was im $_POST-Array ankommt - du wertest ja die Serverantwort eh wieder aus, oder?
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Hallo!

              Vielleicht irre ich mich ja, aber müssen nicht nach der HTTP-Spezifikation bei POST zwei Leerzeichen zwischen Header und Playload sein?

              Cheerz Mirandus
              Zuletzt geändert von Mirandus; 08.05.2006, 16:32.

              Kommentar


              • #8
                Du irrst dich!?

                start-line
                *(message-header CRLF)
                CRLF
                [ message-body ]

                Also am Ende jeder Headerzeile ein \r\n und zwischen Header und Payload eine leere Zeile, sprich nur ein \r\n. Das gilt für alle HTTP-Messages, egal ob POST, GET oder sonstwas.

                Kommentar

                Lädt...
                X