PHP Script ausführen und downloaden?



  • Hallo!

    Kurz mein Problem. Ich hab ne MySQL DB die irgendwo im Internet auf nem Server liegt. Diese DB muss ich abfragen. Nun ist es so das auf dem Server keine Datenbankzugriffe vom Internet aus zugelassen sind, deswegen hab ich mir gedacht ich mache ein php Script das ich von meinem C++ Programm aufrufe, dieses PHP Script macht die Datenbankabfrage und generiert auf dem Server ein TXT File das ich dann mit meinem C++ Programm downloaden kann und durchuchen/auswerten kann.

    Die Frage ist nun, kann ich in meine C++ Programm ein PHP Script aufrufen also so in die Richtung:
    call(http://www.server.de/phpscript.php)
    downloade(http://www.server.de/generierte_ergebnisdatei.txt)

    gibt sowas ähnliches im Borland Builder 6????
    Rückgaben oder so vom PHP Script will ich nicht auswerten die werden also nicht benötigt.

    MFG

    Maruu



  • Das geht am einfachstem mit HTTP-Komponenten wie denen aus dem Indy- oder FastNet-Paket.
    Warum du allerdings den Umweg über die Textdatei gehen willst kann ich nicht verstehen, lass die Ergennisse der DB-Abfrage doch "ganz normal" als HTML vom Skript zurückgeben und werte das in deinem Programm aus.

    Und natürlich sind auch Sicherheitsaspekte zu bedenken. Vermutlich ist der DB-Zugriff nicht ohne Grund limitiert, du solltest dir also genau überlegen, was dein PHP-Skript alles darf. Denn es ist ja nicht auszuschliessen, dass mal jemand zufällig auf den Namen und Pfad des Skripts kommt.



  • Ok danke.
    Zum Thema Sicherheit:
    Das Script wird in einem Ordner liegen das per Htaccess geschützt ist,
    und darauf kann man per http://Benutzername:Passwort@server.de/phpscript.php
    zugreifen ich denke das müsste gehn. Was haltet ihr davon??
    Zum Thema rückgabe uim HTML vormat, müsste eigendlich auch möglich sein, nur die Frage ist wie bekomme ich die Rückgabe???
    Wo kann ich die auslesen??
    Gibts da irgendwo Anleitungen zu, also zu den Komponenten und deren Eigenschaften???

    Gruß

    Maruu



  • Die Indi - komponenten weiss ich nicht, aber so etwas müsste auch mit der
    wininet.h gehen
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/httpsendrequest.asp



  • Die Rückgabe erhälst du in dem du vom Socket liesst.
    Du musst je nachdem was du machen musst, die Nachricht richtig encoden.

    Evtl. sogar Multipart Post. Ist eigentlich ganz angenehm über nen Script zu arbeiten, man erhält immer schön Rückmeldung vom Server ob alles geklappt hat oder nicht (siehe HTTP). Dein Script kann übrigens auch einfach in die Standardausgabe schreiben, dass bekommt dein C++ Programm dann zurück, halt mit nem HTTP Header aber das ist sogar ganz schön.
    Das hatte ja Jansen bereits erwähnt.
    Kannst dir die Rückgabe schön XML-encoden und dann am Client wieder auseinander nehmen. Sowas funktionert recht harmonisch, nach meiner Erfahrung.


Anmelden zum Antworten