IdHTTP / PHP -> Login und Rückgabewert auswerten
Hallo zusammen !
Installierte Versionen: - Delphi: 6 - Indy: 9 Ich möchte mit Delphi (ambesten über die Indy / IdHTTP Komponente) Daten (einfachen Text) an ein PHP-Script auf einem Server senden. Nun habe ich allerdings das Problem, dass ich erstmal sowas wie eine Anmeldung bei dem PHP-Script machen muss und dabei sollte das Programm einen Rückgabewert vom PHP-Script auswerten (sowas wie login=true oder richtiges Passwort oder sowas) Ich wollte das ganze gerne über IdHTTP.POST(...) regeln. Da dachte ich mir, dass ich irgendwie das mit dem "response Stream" oder so benutzen könnte ... nur wie bekomm ich denn den Antwortstring da raus ? ... warscheinlich überseh ich wieder irgendwas ganz einfaches ^^ aber ich bekomm's einfach nich hin :( hoffe es kann mir einer helfen ... (Im Vorraus vielen Dank für's lesen) |
Re: IdHTTP / PHP -> Login und Rückgabewert auswerten
wenn ich das richtig sehe steht die Antwort in Source als TStrings oder TStream drin.
Wenn Du die Ausgabe in einem Memo anzeigen läßt kannst Du sehen, was Du zurück bekommst. Dann kannst Du feststellen nach was Du suchen/filtern mußt um festzustellen ob ein Login z.B. erfolgreich war oder fehlgeschlagen ist. Ein Auszug aus der Hilfe: Zitat:
Klaus |
Re: IdHTTP / PHP -> Login und Rückgabewert auswerten
und wie genau bekomm ich den Antwortstring aus dem Stream raus ?
(sorry hab noch nie vorher damit gearbeitet und schon ätzend lange bei Google gesucht) bzw wie kann ich den Stream / ich glaub TMemoryStream in ein Memofeld oder String reinpacken ?? (Bei der Typenumwandlung scheitert's bei mir ...) ---------------------------------------- schonmal vielen Dank für die Hilfe ! |
Re: IdHTTP / PHP -> Login und Rückgabewert auswerten
idHTTP.Post(...) liefert doch als Rückgabewert einen String. Dieser String ist die Ausgabe des Servers, was der Webbrowser dann z.b. anzeigen würde.
Also reicht es, wenn dein Script z.B. "1" für okay und "0" für Fehler ausgibt (oder sonst welche Zahlencodes z.B. für "falsches Passwort" = 2 , "Account gesperrt" = 3 usw. Dann reicht sowas:
Delphi-Quellcode:
var
str_result : string; begin str_result := idHTTP1.Post(...); if (str_result='1') begin showmessage('angemeldet'); end else begin showmessage('Fehler!'); end; end; |
Re: IdHTTP / PHP -> Login und Rückgabewert auswerten
Delphi-Quellcode:
=> [FEHLER] ... : Inkompatible Typen: 'String' und 'procedure, untyped pointer or untyped parameter'
str:= IdHTTP1.Post('...', ..., ...);
(Das hatte ich auch schon versucht, leider ohne Erfolg) |
Re: IdHTTP / PHP -> Login und Rückgabewert auswerten
So geht es nicht?
Delphi-Quellcode:
und Du bist Dir sicher Indy 9 zu haben?
procedure TForm1.Button1Click(Sender: TObject);
var Params : TStringList; url : String; begin url := 'http://jigsaw.w3.org/css-validator/validator?text=&usermedium=all'; Params := TStringList.Create; try begin Params.Add('text=' + Memo1.Lines.Text); Memo2.Lines.Text := IdHTTP1.Post(url, Params); end; finally Params.Free; end; end; Bei Indy 8 wurde die Methode Post noch anders verwendet. Grüße Klaus |
Re: IdHTTP / PHP -> Login und Rückgabewert auswerten
wenn es unbedingt mit stream sein soll so kann man den Inhalt des Stream wiefolgt in einen String packen:
Delphi-Quellcode:
SetLength(DerString, DerStream.Size);
DerStream.Position := 0; DerStream.Read(DerString[1], DerStream.Size); |
Re: IdHTTP / PHP -> Login und Rückgabewert auswerten
Autsch, mein Fehler ... ja ich hab anscheinend Indy 8 drauf ...
Das was Klaus01 geschrieben hat geht nicht (war warscheinlich für Indy 9) ... aber is klar danke trotzdem ! -------- Das mit dem Stream umwandeln geht perfekt :) Vielen Dank !! (Problem behoben) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr. |
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