Entwickler-Ecke
Internet / Netzwerk - Zugriff auf PHP skript
P@u1 - Mo 03.05.10 12:06
Titel: Zugriff auf PHP skript
Hallo DF,
ich möchte in einem Programm einen direkten Zugriff auf ein PHP-Skript, dass etwas berechnet haben.
Wie gehe ich da am besten vor?
Kann ich irgendwie direkt eine php Funktion einer Webseite von Delphi aus aufrufen und das Ergebnis dann in Delphi empfangen?
Oder gibt es die Möglichkeit das mit dem TWebBrowser zu realisieren?
Man müsste dafür auf die richtige Seite gehen, im Browser das richtige Edit Feld auswählen, dann da was eingeben und auf berechnen drücken und dann das ergebnis empfangen.
Nur soll das alles passieren, ohne, dass man davon was mitbekommt, so dass man in delphi etwas in ein Edit Feld eingibt und auf ein Button drückt, dann wird das was man eingegeben hat an die php Funktion gesendet und das Ergebnis auf z.B. nem Label angezeigt.
Hoffe das ist möglich und, dass ihr mir helfen könnt ;)
P.S.: ich hab gesehn, dass es einen Thread mit ähnlichem namen gibt, aber der ist seeeeeeeehr langwierig und scheint zu keinem besonders guten Ergebnis gekommen zu sein, deswegen mach ich hier nochmal nen neuen auf.
platzwart - Mo 03.05.10 12:15
Es gibt da sehr viele Themen im Forum dazu, such mal nach "Post" und "Get".
ALF - Mo 03.05.10 12:28
P@u1 hat folgendes geschrieben : |
ich möchte in einem Programm einen direkten Zugriff auf ein PHP-Skript, dass etwas berechnet haben.
....
Kann ich irgendwie direkt eine php Funktion einer Webseite von Delphi aus aufrufen und das Ergebnis dann in Delphi empfangen? |
Nein kannst Du nicht. PHP ist immer Serverseitig!
P@u1 hat folgendes geschrieben : |
Oder gibt es die Möglichkeit das mit dem TWebBrowser zu realisieren?
Man müsste dafür auf die richtige Seite gehen, im Browser das richtige Edit Feld auswählen, dann da was eingeben und auf berechnen drücken und dann das ergebnis empfangen. |
ja geht, Get und Post.
P@u1 hat folgendes geschrieben : |
Nur soll das alles passieren, ohne, dass man davon was mitbekommt, so dass man in delphi etwas in ein Edit Feld eingibt und auf ein Button drückt, dann wird das was man eingegeben hat an die php Funktion gesendet und das Ergebnis auf z.B. nem Label angezeigt. |
auch hier über Get und Post, aber nie direkt, wie oben schon erwähnt!
Gruss Alf
Narses - Mo 03.05.10 12:35
Moin!
P@u1 hat folgendes geschrieben : |
ich hab gesehn, dass es einen Thread mit ähnlichem namen gibt, aber der ist seeeeeeeehr langwierig und scheint zu keinem besonders guten Ergebnis gekommen zu sein, deswegen mach ich hier nochmal nen neuen auf. |
Der Thread ist lang, ja, aber deshalb noch lange nicht unbrauchbar. :roll: Aber gut, ein Tutorial ist es auch nicht gerade... :?
Also hier ein getesteter Quickstart (Indy9):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| type TForm1 = class(TForm) Button1: TButton; IdHTTP1: TIdHTTP; meSoftware: TMemo; edHostname: TEdit; edState: TEdit; mePostLog: TMemo; edPostUrl: TEdit;
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; Data: TIdMultiPartFormDataStream; begin Data := TIdMultiPartFormDataStream.Create; try Data.AddFormField('hostname', edHostname.Text); Data.AddFormField('state', edState.Text); for i := 0 to meSoftware.Lines.Count-1 do Data.AddFormField('software[]', meSoftware.Lines.Strings[i]); try mePostLog.Lines.Text := IdHTTP1.Post(edPostUrl.Text, Data); except mePostLog.Lines.Text := 'Exception: '+Exception(ExceptObject).Message; end; finally Data.Free; end; end; |
Und auf dem Server:
Quelltext
1: 2: 3:
| <?php print_r($_POST); ?> |
Das muss reichen, um damit starten zu können. Wenn davon irgendwas unklar ist: Grundlagen selbst erarbeiten! :les: :think: ;)
cu
Narses
P@u1 - Mo 03.05.10 20:17
so, vielen dank für eure Hilfe!
Ich hab das eingeben der Daten jetzt hingekriegt (also kein direkter zugriff auf die funktion sondern die daten werden im twebbrowser eingegeben).
Wie kann ich jetzt das Ergebnis (wird in Textform dargestellt) rauskopieren und z.B. auf nem Label anzeigen lassen?
Es ist ein dynamisch erzeugter text, also komm ich nicht über den quelltext weiter soweit ich weiß.
Ich habs jetzt länger versucht und auch die hilfe hat nichts gebracht, also wär gut wenn ihr mir helfen könnt.
ALF - Mo 03.05.10 22:03
Hi, ich schätze das Du in diesem Fall um das Parsen der Seite nicht drum rumkommst!
Was ist das eigentlich für eine Seite?
Was für ein Ergebnis erhälts Du?
Wenn Du schon programmierst, warum schreibst Du die Funktion nicht selbst, oder ist es etwas kompliziertes a'la Suchmaschine usw.? Währe mal ne Info wert, um was es überhaupt geht!
Gruss Alf
P@u1 - Mo 03.05.10 22:46
es geht um eine seite, die für einen komplizierte berechnungen macht.
Selbst schreiben ist mir zu viel aufwand.
Das Ergebnis wird als text ausgegeben.
Kann ich vll nen tastendruck von strg+a und strg+c+ simulieren und dann ist das ergebnis im zwischenspeicher (mit anderen sachen zusammen) und dann filter ich das ergebnis da raus?
Wenn ja, wie funktioniert das?
Oder ist dieses Parsen (was mir nicht viel sagt xD) besser?
r2d2-aeg - So 04.07.10 11:54
Binde einfach in uses clipbrd ein und zum kopieren dann:
clipboard.astext:= ... ;
Flamefire - So 04.07.10 17:42
WTF?
Hab ich das richtig verstanden? Du ignorierst die (fast) fertige Lösung von Narses, gehst stattdessen einen total umständlichen und fehleranfälligen Weg über TWebbrowser, in dem du Daten in editFelder einträgst, um die an den Server zu schicken, um dann am Ende ein Copy über dem ANGEZEIGTEM Text zu simulieren, aus dem du dann das Ergebnis ausliest?
FAIL!
Und "du kommst über den Quelltext nicht weiter"...Dann kannste es gleich lassen. Wenns damit nicht geht, geht es gar nicht.
Parsen heißt in deinem Fall geschicktes Einsetzen der Pos() und Copy() Funktionen auf einen String.
Am besten guckst du dir erstmal auf einem Ausdruck an, was du eigendlich hast, was du bekommst und was du willst...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!