Datenaustausch von PHP4 mit Flash5 via XML bzw. POST

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

  • Datenaustausch von PHP4 mit Flash5 via XML bzw. POST

    Hallo Leute,
    ich habe folgendes Problem, ich möchte von einer Flash Applikation via XML (POST-Methode) über PHP4 auf eine MySQL Datenbank zu greifen. Leider mußte ich feststellen, das dieses nicht trivial ist. In PERL ist diese Aufgabe mit ein paar Zeilen erledigt.
    Konstruktionen wie $fp=fopen("php://stdin","r"); oder
    $fp=fopen("/dev/stdin","r"); bringen Flash selbst über das Netzwerk zum stehen. Ich würde mich freuen, wenn jemand mir helfen könnte.

    Grüße und Danke voraus.
    Torsten

  • #2
    mußt vielleicht bißchen konkret werden. Was heißt denn das mit den Konstruktionen etc.??

    Kommentar


    • #3
      Meine Idee war, ich öffne die "Datei" stdin mit:
      $fp = fopen(php://stdin","r");
      und lese den Kanal dann mit z.B.:
      while(!feof($fp))
      {
      $Buffer=fgetc($fp);
      $Text = SText.$Buffer;
      }
      aus.
      Ich hatte erwartet, den Ascii String von Flash in $Text
      zuerhalten. Statt dessen bleibt Flash in der Zeile
      $Text = SText.$Buffer; hängen (Flash und PHP sind über Ethern verbunden- laufen also auf 2 Maschinen).
      Daten werden nicht übertragen.

      Grüße Torsten

      Kommentar


      • #4
        muß heissen:

        $Text = $Text.$Buffer;

        du hattest ein S anstatt einem $ vor dem zweiten Text.

        Kommentar


        • #5
          Hallo BrainBug,

          vielen Dank für Dein Arrangement. Natürlich muß es $ statt S heißen. Es handel sich um ein Schreibfehler im Forum - Sorry.

          Flash schickt eine Zeichenkette via POST an meinen Apachen Server (Linux 2.2.13).

          Mit PERL kann ich diese Zeichenkette problemlos auslesen.
          Ich erhalte dann einen String folgender Art:
          <Knoten>Elementname1="Element1"/Elementname2=Element2/</Knoten>

          Auswerten muß ich die Konstruktion per Hand.
          Soweit sogut.
          Unter PHP4 erhalte ich gar nichts bzw. Flash5 hängt sich unter WinNT4.0 auf.

          Frage: Kann ich davon ausgehen, daß PHP mit der Kontruktion
          fp=fopen("php://stdin","r");
          den oben beschrieben String in unbewerteter Form liefern sollte? Müssen hier für irgend welche Schalter wie z.B.
          variables_order oder register_globals gesetzt oder nicht gesetzt werden?
          In anderen Quellen haben auch einige Leute Probleme mit der Kopplung von PHP und Flash beschrieben.
          Ist das ein generelles Problem?
          Was kann man mit der XML Unterstützung von PHP anfangen?
          Und wichtigste Frage ist mein Weg grundsätzlich richtig, oder gibt eine "ganz einfache" Lösung?

          Vielen Dank für die Hilfe

          Gruß Torsten

          Kommentar


          • #6
            Eine hervorragende Eigenschaft von PHP ist, daß Get- oder Post-Parameter sofort beim Aufruf des Skripts in Variablen geparst werden.
            Ein Link wie ich ihn hier oben gerade sehe (http://www.php-resource.de/newreply....&threadid=1939) übergibt also dem Skript newreply.php die Variablen $action='newreply' und $threadid='1939'.
            Das gleiche gilt übrigens für Formulare.

            Das Parsen von stdin ist absolut unnötig und führt zu nichts.
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              Hi Titus,

              die direkte Übernahme von GET und POST Variablen in ein Hash-Array finde ich auch toll!
              Funktioniert auch wunderbar.
              Nur was mache ich wenn mein Daten String nicht so:
              Name1=Wert1&Name2=Wert2 usw. sondern in der XML Darstellung übertragen wird:

              <Gruppe Name1="Wert1"
              Name2="Wert2"
              usw. />

              bei PHP bleiben oder zu Perl wechseln? Oder sollte ich es mal mit Enhydra versuchen.

              Wie man die Datenstruktur von XML assozieren kann, ist mir völlig unklar.
              Für jeden Tipp oder besser ein Beispiel bin ich dankbar.

              Grüße Torsten



              Kommentar


              • #8
                Zugriff auf POST via Stdin

                Leider habe ich keine befriedigende Lösung gefunden,
                um auf POST Daten via STDIN zuzugreifen! Um aber dem interessierten Leser evtl. viel Arbeit und Zeit zu sparen teile ich an dieser Stelle noch mein Ergebnis mit.
                Der Versuch auf POST Daten wie folgt zuzugreifen:

                $fp=("php://stdin","r");
                rewind($fp);
                $Daten=fread($fp,getenv("CONTENT_LENGTH"));
                fclose($fp);

                funktioniert unter Windows (Xitami als Webserver PHP 4.0.6 NT4.0).
                Unter Unix/Linux ist STDIN nicht gleich STDIN. Da php://stdin nicht auf STDIN vom CGI zeigt, findet man die Daten dort nicht! Die Daten werden offensichtlich nur in dem assoziativen Array HTTP_POST_VARS[] abgelegt. Ein XML-Datensatz wie er zum Beispiel Flash erzeugt wird ist dann unbefriedigend verändert.
                Eine Möglichkeit auf den REQUEST Body zuzugreifen habe ich nicht gefunden.

                Kommentar

                Lädt...
                X