![]() |
Einloggen mit Indy 10
Guten Tag alle zusammen,
ich würde gern ein Programm erstellen, welches dem Benutzer erlaubt sich auf einer Seite einzuloggen. Zu dem Zweck werde ich Indy 10 verwenden. Die Login-Form sieht so hier aus:
Code:
Und der Delphi Code, so wie ich ihn mir vorstelle sieht so aus:
<form action="/misc/login" method="post">
<input type="text" class="textfield" name="user" value="Benutzername"/> <input type="password" class="textfield" name="pw" value="Passwort"/> <input type="hidden" name="xyz" value="132m2e" /> <input type="checkbox" name="slo" id="slo" value="1"/> Login speichern <input type="submit" value="Einloggen" class="button" />
Delphi-Quellcode:
Nun zu meinen Fragen.
procedure TForm1.Button1Click(Sender: TObject);
var sURL:String; slPostdata:TStringList; begin slPostdata := TStringList.Create; sURL:='http://www.snapscouts.de/misc/login'; with slPostdata do begin Values['user'] := sUser; Values['pw'] := sPass; // --> Hidden Value? // --> Checkbox Value? end; try IdHTTP1.Post(sURL,slPostdata); memo1.Text := idhttp1.Response.RawHeaders.Text; except memo1.Text := 'Fehlgeschlagen'; end; slPostdata.Free; end; Speichert Indy jetzt auch wie ein normaler Browser automatisch Cookies? Wie übergebe die Values von "Checkbox" + "Hidden"? :gruebel: Danke =) |
Re: Einloggen mit Indy 10
Hallo,
Zitat:
Zitat:
|
Re: Einloggen mit Indy 10
Wenn ich das jetzt richtig verstanden habe,
müsste der unvollständige Teil dann also so aussehen:
Delphi-Quellcode:
Danke! :dp:
begin
Values['user'] := sUser; Values['pw'] := sPass; Values['xyz'] := '132m2e'; Values['slo'] := 1; end; //Edit: :( dafür bekomm ich jetzt einen Socket Error # 11004 beim Login Versuch. Wäre jemand so lieb und könnte der jenige bitte auf die Seite gehen "http://www.snapscouts.de/misc/login" und mir sagen warum sie einen Redict auf die Mainpage macht, obwohl das Login Formular sagt, das dort der Login wäre? Wie kann man die zum Login dazugehörige Datei ausfindig machen? Also es muss doch dort in /misc/login/ sowas wie eine index.php oder so geben. :wiejetzt: |
Re: Einloggen mit Indy 10
Hallo,
ich habe auch schonmal ein Programm für SS geschrieben, welches Daten mit Login abrief. Allerdings ist das sehr lange her und damals war der Login noch etwas anders. Nun wollte ich gerade dein Problem nachzuvollziehen, allerdings schaffe ich es nicht mich per Indy einzuloggen. (Fehler wie falscher Username oder Pw habe ich schon geprüft, ist alles ok) - AUrl war wahlweise mal eine Profilseite oder die /misc/login/ - HandleRedirects ist True; Mein Code:
Delphi-Quellcode:
Wenn ich die gespeicherte Datei nachher lade, wird mir die Seite angezeigt, auf der steht, dass ich doch ein registriertes Mitglied sein müsste um mich umzusehen... und am linken Rand die Loginfelder.
var
L: TStrings; Data: TIdMultiPartFormDataStream; begin L := TStringList.Create; try Data := TIdMultiPartFormDataStream.Create; try Data.AddFormField('user', FUsername); Data.AddFormField('pw', FPassword.Password); Data.AddFormField('xyz', '132m2e'); Data.AddFormField('slo', '0'); L.Text := FHTTP.Post(AUrl, Data); L.SaveToFile('D:\test.html'); Result := True; finally Data.Free; end; finally L.Free; end; end; Konntest du dich mit deinem Code einloggen? |
Re: Einloggen mit Indy 10
mal so ganz grundsätzlich:
Webseiten mit Formularen, die Java-Script enthalten können mit Indy nicht bedient werden, weil Indy keinen Java-Script Interpreter an Bord hat. Man kann untersuchen, was das Script genau macht und ggf. die nachfolgende Seite mit Parametern versorgen. Häufig ist aber das Script dazu da, plumpe Versuche das Formular fernzusteuern, abzublocken. |
Re: Einloggen mit Indy 10
Gibt es irgendeine Möglichkeit (z.B. andere Komponenten oder Techniken) doch irgendwie automatisiert auf den Memberbereich zuzugreifen zu können?
Von mir aus auch über den Umweg, dass man sich mit dem IExplorer einloggt und dann irgendwie das Cookie zu den Indys holt (wäre das ne Möglichkeit?) Gibt es bei .NET eine Möglichkeit (also Delphi .NET habe ich nicht, aber Visual Studio mit seinen Sprachen wäre noch eine Ausweichmöglichkeit) |
Re: Einloggen mit Indy 10
Zitat:
|
Re: Einloggen mit Indy 10
Stimmt, über den kann man ja eigentlich auch die Felder ausfüllen...
Ok, werde ich die Woche mal testen, wenn ich Zeit habe. Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 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 by Thomas Breitkreuz