![]() |
Aus eigenem Programm php-Script mit Parametern aufrufen
Hallo Wissende!
Ich muss unbedingt einen Weg finden, wie ich sicherstellen kann, dass ich aus meiner Applikation ein eigenes php-Script im Internet aufrufen kann. Da mir der Weg über den Webbrowser zu kompliziert ist, wollte ich wissen, ob ich das auch einfacher haben kann, da ich keine visuelle Bestätigung brauche und das Script nur einen Arbeitsgang für mich erledigen soll. Wie muss ich das machen, oder welche Komponenten sind dafür geeignet? |
Re: Aus eigenem Programm php-Script mit Parametern aufrufen
|
Re: Aus eigenem Programm php-Script mit Parametern aufrufen
Hallo Marabu!
Danke für Deine Antwort. Ich muss aber leider nochmal fragen was Du meinst. Ich denke, dass es sich darum dreht???
Delphi-Quellcode:
Ok, dann entnehme ich, dass es sich hier um die INDY-Kompos handelt!? So weit so gut. Wie aber kann ich diese procedure für mich nutzen und einem Script damit Parameter übergeben?
procedure Download(url, filename: string);
var fs: TFileStream; http: TIdHttp; begin fs := TFileStream.Create(fileName, fmCreate); http := TIdHttp.Create(nil); http.Get(url, fs); http.Free; fs.Free; end; |
Re: Aus eigenem Programm php-Script mit Parametern aufrufen
Hallo Tom,
bin zwar kein Wissender, aber das Folgende hab ich ausprobiert. Mit tclientsocket geht das problemlos. Mein Beispiel ist zwar primitiv, vielleicht kannst du das umstricken, hauptsächlich geht es darum, das http Protokoll einzuhalten.
Code:
der flossinger
procedure sendline(from,whereto,outtext:string;csock:tclientsocket;host,path:string);
const crlf=char(13)+char(10); var request,poststring:string; begin poststring := 'from=' +from + '&to=' +whereto + '&line='+urlencode(outtext) ; request := 'POST '+path+' HTTP/1.1'+crlf + 'Content-Type: application/x-www-form-urlencoded'+crlf // bewirkt Übergabe in $_POST + 'User-Agent: Chatting-RubberDuck'+crlf + 'Host: '+host+crlf + 'Connection: Keep-Alive'+crlf + 'Content-Length: '+inttostr(length(poststring))+crlf + crlf + poststring + crlf ; csock.socket.sendtext(request); end; |
Re: Aus eigenem Programm php-Script mit Parametern aufrufen
Hallo Flossinger!
Ich werds mal probieren, würde aber gern noch wissen, was denn eigentlich bei diesen Params übergeben werden muss. 'from=' +from => Meine EMailAdresse? '&to=' +whereto => ??? urlencode(outtext) => ??? path => Pfad zum Script??? 'User-Agent: Chatting-RubberDuck'+crlf 'Host: '+host+crlf 'Connection: Keep-Alive'+crlf 'Content-Length: '+inttostr(length(poststring))+crlf poststring Ich weiss, ich sdtelle mich mal wieder dämlich an, aber ich frage immer gern mal nach, bevor ich in die falsche Richtung entwickle. |
Re: Aus eigenem Programm php-Script mit Parametern aufrufen
mit idhttp geht das bedeutend einfacher
Delphi-Quellcode:
var idhttp1: TIdhttp;
parameter: TStringlist; begin idhttp1 := TIdhttp.Create(nil); parameter.Add('username=UsernameDenManImBrowserEingebenWürde'); parameter.Add('password=PasswortDasManImBrowserEingebenWürde'); idhttp1.Post('http://xxyz', parameter); idhttp1.Free; end; |
Re: Aus eigenem Programm php-Script mit Parametern aufrufen
Gibts das auch irgendwie eine möglichkeit eine Antwort zu bekommen z.b. das Script gibt einen Text aus, kann man denn auch irdenwie wieder kriegen.
|
Re: Aus eigenem Programm php-Script mit Parametern aufrufen
Hallo!
Diesen Fehler erhalte ich, wenn ich den Code compiliere. Woran kann das liegen??? [Fehler] Unit1.pas(40): Es gibt keine überladene Version von 'Post', die man mit diesen Argumenten aufrufen kann Dann würde ich gern noch wissen, ob die in Parameter übergeben Inhalte auch als "Post" im Script ausgelesen werden können...? |
Re: Aus eigenem Programm php-Script mit Parametern aufrufen
hi,
ist es evtl Möglich, dass indy 10 das Post umbenannt hat? ich finde es nämlich bei mir im mom auch nur bei indy 9 :? |
Re: Aus eigenem Programm php-Script mit Parametern aufrufen
Hallo Leute,
hier nochmal für alle, die mit der indy online help nicht zurecht kommen:
Delphi-Quellcode:
Die Parameter können dann in den PHP Variablen $_REQUEST, $_GET oder $_POST ausgewertet werden.
const
url = 'http://localhost/torud.php'; procedure TDemoForm.PostButtonClick(Sender: TObject); var params: TStrings; begin params := TStringList.Create; params.Values['a'] := 'aaa'; params.Values['b'] := 'bbb'; Memo.Lines.Text := idHTTP.Post(url, params); params.free; end; procedure TDemoForm.GetButtonClick(Sender: TObject); begin Memo.Lines.Text := idHTTP.Get(url + '?a=aaa&b=bbb'); end; Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz