Announcement

Collapse
No announcement yet.

Mit HTTP POST methode php-Skript auf 2. Rechner starten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mit HTTP POST methode php-Skript auf 2. Rechner starten

    <p>Hallo,<br>
    ich möchte mit einem php-Skript welches auf <b>Rechner L</b> (Linux, Apache) läuft, ein Skript auf <b>Rechner W</b> (WinNT, IIS)starten. Dies ist notwendig, da ich ein Berechnungstool als Windows EXE habe, welches ich ausführen möchte. Das Windows Programm soll dabei ein Datenfile von dem auslesen und den Inhalt in eine DB schreiben. Das Datenfile wird auf dem Linux Rechner erzeugt.</p>
    <p>Das php-Skript auf <b>Rechner W</b> starte ich mit einem Socket auf <b>Rechner L</b> der mit der HTTP GET methode das Skript startet. Ich möchte aber nun auch das Datenfile an das Skript senden, und will dazu die HTTP POST methode verwenden. <b>Den File Upload mit einem Formular behersche ich, aber wie mache ich einen File Upload ohne Formular?</b> Mir fallen zu diesem Problem eine Reihe von Lösungen ohne dem HTTP-Protokoll ein, aber ich möchte in meinem Programmen möglichst Konsequent bleiben.</p>
    <p>Vieleicht habe ich schon zuviel gelesen und sehe den Wald vor lauter Bäumen nicht mehr.<br>Danke</p>

  • #2
    Wenn Du wirklich mit FileUpload hantieren willst, hast Du Dir eine Menge vorgenommen. Denn Du musst die ganze Logik, die sonst ein Browser uebernimmt, selbst coden, inclusive der Codierung der Binaer-Daten innerhalb des Payload-Bereichs.<p>
    Vielleicht wuerde es reichen, wenn Du die Daten nicht per File-Upload, sondern als POST-Request sendest, dann sparst Du Dir das Kapseln der Daten in das MIME-Format, es wird dann einfach in einen Socket hineingeschrieben. Dafuer ist das RFC zu HTTP/1.1 (http://www.rfc-editor.org/cgi-bin/rfcdoctype.pl?loc=RFC&letsgo=2616&type=ftp&file_fo rmat=txt) empfehlenswerte Lektuere.<p>
    In dem Request wuerdest Du einfach einen Socket auf Port 80 oeffnen, den ganzen HTTP-Header hineinschreiben, dann die URL angeben, schliesslich noch die Formulardaten hineinschreiben in der Form key=value&nextkey=nextvalue (value sollte natuerlich so kodiert sein, dass kein & und = mehr vorkommt), dann den Socket zu schliessen und auf das Antwort-Dokument vom IIS zu warten, welches Du dann auch noch parsen und auswerten musst. Allerdings habe ich dies nur mit Java, noch nicht mit PHP gemacht, ich leg also nicht meine Haende ins Feuer, dass das ganze funktioniert.<p>
    Ketzerische Frage: Wenn Du unbedingt auf ein Windows-Programm angewiesen bist, was hindert Dich daran, gleich auf dem IIS aufzusetzen (PHP auf dem IIS, wenn es das gibt, oder eine andere Programmiersprache, vielleicht auch ueber ISAPI.<p>
    Gruss, Marc

    Comment

    Working...
    X