AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Einloggen mit Indy 10
Thema durchsuchen
Ansicht
Themen-Optionen

Einloggen mit Indy 10

Offene Frage von "blooddog_90"
Ein Thema von blooddog_90 · begonnen am 10. Mai 2009 · letzter Beitrag vom 4. Jul 2009
Antwort Antwort
blooddog_90

Registriert seit: 23. Sep 2007
24 Beiträge
 
Turbo Delphi für Win32
 
#1

Einloggen mit Indy 10

  Alt 10. Mai 2009, 15:16
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:
<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" />
Und der Delphi Code, so wie ich ihn mir vorstelle sieht so aus:

Delphi-Quellcode:
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;
Nun zu meinen Fragen.
Speichert Indy jetzt auch wie ein normaler Browser automatisch Cookies?
Wie übergebe die Values von "Checkbox" + "Hidden"?
Danke =)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Einloggen mit Indy 10

  Alt 10. Mai 2009, 15:23
Hallo,

Zitat von blooddog_90:
Speichert Indy jetzt auch wie ein normaler Browser automatisch Cookies?
Für Cookies gibt es den TIdCookieManager.
Zitat von blooddog_90:
Wie übergebe die Values von "Checkbox" + "Hidden"?
Die werden genau so wie die anderen Forumlar-Eingaben übermittelt. Bei der Checkbox übermittelst du 1 für True und 0 für False.
  Mit Zitat antworten Zitat
blooddog_90

Registriert seit: 23. Sep 2007
24 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Einloggen mit Indy 10

  Alt 10. Mai 2009, 15:30
Wenn ich das jetzt richtig verstanden habe,
müsste der unvollständige Teil dann also so aussehen:

Delphi-Quellcode:
begin
  Values['user'] := sUser;
  Values['pw'] := sPass;
  Values['xyz'] := '132m2e';
  Values['slo'] := 1;
end;
Danke!

//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.
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#4

Re: Einloggen mit Indy 10

  Alt 2. Jul 2009, 22:59
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:
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;
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.

Konntest du dich mit deinem Code einloggen?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Einloggen mit Indy 10

  Alt 3. Jul 2009, 07:25
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.
fork me on Github
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#6

Re: Einloggen mit Indy 10

  Alt 3. Jul 2009, 21:57
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)
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: Einloggen mit Indy 10

  Alt 4. Jul 2009, 06:03
Zitat von F.W.:
Gibt es irgendeine Möglichkeit (z.B. andere Komponenten oder Techniken) doch irgendwie automatisiert auf den )
z.B. mit dem Webbrowser Control (TWebbrowser etc)
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#8

Re: Einloggen mit Indy 10

  Alt 4. Jul 2009, 12:05
Stimmt, über den kann man ja eigentlich auch die Felder ausfüllen...

Ok, werde ich die Woche mal testen, wenn ich Zeit habe. Danke!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 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