![]() |
PHP Formular ausfüllen
Hallo
bin ein totaler Anfänger was Delphi angeht und suche schon seit Tagen nach einem für mich verständlichem Tutorial. Ich habe ein in PHP geschriebenes Formular, was ich gern über Delphi ausfüllen möchte. Außerdem möchte ich mich mit verschiedenen Usernamen und Passwörtern anmelden können. Ich hoffe Ihr könnt mir helfen Gruß Marc :) |
Re: PHP Formular ausfüllen
Hallo marciboy,
erstmal herzlich willkommen hier :hi: :dp: Um ein Formular auszufüllen kannst du z.B. die Post-Funktion von TIdHTTP verwenden (die HTTP-Komponente in der Indy-Komponentensammlung). Damit ist es eigentlich ein Kinderspiel das Formular auszufüllen. Das Ganze geschieht auch im Hintergrund, d.h. du kannst deine eigene Oberfläche anbieten. Such mal hier im Forum ein bisschen, es müsste einige Beispiele zum Thema geben. Greetz alcaeus |
Re: PHP Formular ausfüllen
Hallo alcaeus,
erstmal danke für deine schnelle antwort. Es soll ein Tool für mein Auktionshaus werden und bin für jeden kleinen Tip dankbar. Gruß Marc :coder: |
Re: PHP Formular ausfüllen
Hallo marciboy,
also, der folgende Code zeigt dir, wie du ein Formular mit TIdHTTP absenden kannst. Die Komponente findest du auf der Palette "Indy Clients".
Delphi-Quellcode:
Zur Erklärung. Zuerst wird eine Stringliste erstellt, welche alle Parameter enthält. Die Parameter werden wie bei PHP mit name=wert eingetragen, und zwar als einzelne Zeile. Die Indy-Komponente kümmert sich dann darum:
procedure TForm1.Button1Click(Sender: TObject);
var SL: TStringList; begin SL := TStringList.Create; try SL.Add('mode=login'); SL.Add('user='+Edit1.Text); SL.Add('pass='+Edit2.Text); IdHTTP1.Post('http://www.deineseite.de/login.php', SL); finally SL.Free; end; end; Meine OH schreibt: When ASource is a TStrings instance, Post will replace all occurrences of the End-Of-Line (EOL) character in ASource with the value '&' prior to transfer to the HTTP server. Anschließend wird das Formular abgeschickt und du bist angemeldet. Natürlich wird das Ganze etwas komplexer, aber das Grundprinzip sollte verständlich sein. Greetz alcaeus |
Re: PHP Formular ausfüllen
Hallo alcaeus
das heißt ich kopiere deinen code in den Button? Und erstelle dann die 2 edits und die indy. Ist das so richtig?? Gruß:roteyes: Marc |
Re: PHP Formular ausfüllen
Zitat:
Greetz alcaeus |
Re: PHP Formular ausfüllen
Hallo alcaeus
danke für deine hilfe. Wie weiß ich denn jetzt wo ich eingeloggt bin oder nicht? gruß MARC |
Re: PHP Formular ausfüllen
Delphi-Quellcode:
Da gibts verschiedenen Möglichkeiten, im obigen Beispiel
procedure TForm1.Button1Click(Sender: TObject);
var SL: TStringList; Source: String; begin SL := TStringList.Create; try SL.Add('mode=login'); SL.Add('user='+Edit1.Text); SL.Add('pass='+Edit2.Text); Source:= IdHTTP1.Post('http://www.deineseite.de/login.php', SL); finally SL.Free; end; Memo.Lines.Add(Source); end; müßtest Du noch ein Memo Feld auf Deine Form packen und diese dann unter Name von Memo1 auf Memo umbenennen. Wenn der Request an den Webserver gesendet wird wird die Antwort, der HTML Quelltext, dann im Memo ausgegeben. Um zu kontrollieren das nun alles geklappt hat müßtest Du diesen Quelltext dann nach segnifikanten Schlüsselwörtern durchsuchen z.B. Sie sind jetzt angemeldet. Die Funktion pos wird Dir da treue Dienste leisten. Empfehlen würde ich Dir aber auf jeden Fall einen PacketSniffer zu installieren damit Du alle Deine Schritte nachvollziehn kannst. Wie arbeitet Dein Browser, was macht mein Programm. Nahelegen würde ich Dir hier etherdetect (etherdetect.com), etheral oder aber einen kompfortablen Proxy der Dir auch SSL Packet im Klartext darstellt (Google > Charles+Proxy). Wobei speziell der Proxy dann bei den Indy Proxy Einstellungen angegeben werden muss. ProxyIP 127.0.0.1 und ProxyPort 8080 glaube ich waren das. Die Einstellungen findest Du auch wenn Du Charles startest und dieser dann die Einstellungen für den IE temporär umändert (Extras >Internetoptionen > Verbindungen > Einstellungen) Viel Spass und Freude wünsch ich Dir :) |
Re: PHP Formular ausfüllen
Hallo
bei mir kommt im Memo folgendes raus: SymRealOnLoad(); window.open = SymRealWinOpen; SymRealOnUnload = window.onunload; window.onunload = SymOnUnload; } SymRealOnLoad = window.onload; window.onload = SymOnLoad; //--> </script> Gruß Marc |
Re: PHP Formular ausfüllen
wie gesagt, installier dir einen packetsniffer,
dann siehst du wann wo was ankommt kontrollier das mit deinem browser und deinem tool und schon weißte wo es hängt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 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