Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Aus eigenem Programm php-Script mit Parametern aufrufen (https://www.delphipraxis.net/53192-aus-eigenem-programm-php-script-mit-parametern-aufrufen.html)

torud 12. Sep 2005 05:22


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?

marabu 12. Sep 2005 05:51

Re: Aus eigenem Programm php-Script mit Parametern aufrufen
 
Hallo Tom,

vielleicht hilft dir das hier weiter: klick.

Grüße vom marabu

torud 12. Sep 2005 05:57

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:
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;
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?

flossinger 12. Sep 2005 06:04

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:
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;
der flossinger

torud 12. Sep 2005 06:07

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.

SirThornberry 12. Sep 2005 07:39

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;

franktron 12. Sep 2005 08:09

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.

torud 12. Sep 2005 08:55

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...?

n0b0dy 12. Sep 2005 09:44

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 :?

marabu 12. Sep 2005 10:10

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:
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;
Die Parameter können dann in den PHP Variablen $_REQUEST, $_GET oder $_POST ausgewertet werden.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz