AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Login mit IdHTTP

Ein Thema von Kharlanki · begonnen am 28. Jun 2007 · letzter Beitrag vom 30. Jun 2007
Antwort Antwort
Kharlanki

Registriert seit: 9. Jul 2003
Ort: Düsseldorf
50 Beiträge
 
#1

Login mit IdHTTP

  Alt 28. Jun 2007, 20:08
Hi,

ich versuche gerade, mich automatisiert in eine Website einzuloggen.

Anfangs habe ich den Login-Prozess einem EmbeddedWB ueberlassen, habe mir die SessionID aus der weitergeleiteten URL rausgepopelt und diese dann bei allen weiteren Anfragen per IdHTTP.Get verwendet.
Jetzt will ich aber alles ueber ein IdHTTP erledigen... und hier komme ich nicht weiter.

Hier der Code des Login-Formulares:
Code:
<form method="POST" action="login.php">
<p align="center">[b]<font size="2" face="Verdana">Loginbereich

</font>[/b]</p>
<div align="center">
  <center>
  <table style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="3">
        <tr>
      <td width="100"><font size="2" face="Verdana">[b]Benutzername:[/b]</font></td>
      <td width="100"><input class="inputfeld2" name="user" maxlenght="20" size="20"></td>

    </tr>
    <tr>
      <td width="100"><font size="2" face="Verdana">[b]Passwort:[/b]</font></td>
      <td width="100"><input class="inputfeld2" type="password" name="pwd" maxlenght="20" size="20">
</td>
    </tr>
    <tr>
      <td colspan="2">
      <p align="center">

      <input type="submit" class="inputfeld2" value="Login" name="login"></td>
    </tr>
  </table>
  </center>
</div>
<p align="center">[url="passwort.php"]Benutzerdaten vergessen?[/url]</p>
<p align="center">[url="aktivlink.php"]Aktivierungslink erneut zuschicken[/url]</p>
Und so sieht mein Code aus:
Delphi-Quellcode:
begin
  oldct := http.Request.ContentType;
  http.Request.ContentType := 'application/x-www-form-urlencoded';
  try
    Ergebnis := TStringList.Create;
    http.HTTPOptions := http.HTTPOptions - [hoKeepOrigProtocol];
    Ergebnis.Clear;
    try
      try
        sl := TStringList.Create;
        try
          sl.Text := 'user=bla&pwd=fasel';
          FResult := HTTP.post ('http://www.irgendwas.de/login.php', sl);
        finally
          sl.Free;
        end;
      finally
        try
          if (HTTP.Connected) then
            HTTP.DisconnectSocket;
        except
        end;
      end;
    except
    end;
    Ergebnis.Add (AdjustLineBreaks(FResult));
  finally
    http.Request.ContentType := oldct;
  end;
  memPage.Lines.Clear;
  memPage.Lines.Text := Ergebnis.Text;
  Ergebnis.Free;
end;
Ich bekomme aber immer nur die Login-Seite zurueckgeliefert. Selbst, wenn ich falsche Login-Daten verwende, kommt keine Anzeige "Benutzername unbekannt", die beim manuellen Einloggen erscheint.

Laut Firefox LiveHTTPHeaders ergibt ein manueller Login:
Code:
[url]http://www.irgendwas.de/login.php[/url]

POST /login.php HTTP/1.1
Referer: [url]http://www.irgendwas.de/login.php?ref=[/url]
HTTP/1.x 302 Found
Location: ./members/loginbereich.php?sessionid=ad8f9603e14204719d7aec8e63e05e4f
----------------------------------------------------------
[url]http://www.irgendwas.de/members/loginbereich.php?sessionid=ad8f9603e14204719d7aec8e63e05e4f[/url]

GET /members/loginbereich.php?sessionid=ad8f9603e14204719d7aec8e63e05e4f HTTP/1.1
Referer: [url]http://www.irgendwas.de/login.php?ref=[/url]

HTTP/1.x 200 OK
----------------------------------------------------------
Irgendwelche Hinweise oder Gedankenanstoesse?
Gruss,
Matthias

  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Login mit IdHTTP

  Alt 28. Jun 2007, 20:13
so nicht
sl.Text := 'user=bla&pwd=fasel'; ich VERMUTE daran hängt es denn erwartet wird
sl.Text := 'user=bla'#13#10'pwd=fasel';
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Kharlanki

Registriert seit: 9. Jul 2003
Ort: Düsseldorf
50 Beiträge
 
#3

Re: Login mit IdHTTP

  Alt 28. Jun 2007, 20:22
Das wars leider auch nicht. Eben probiert.
Gruss,
Matthias

  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Login mit IdHTTP

  Alt 28. Jun 2007, 20:31
erwartet die Seite cockies? Eventuell könntest du ja die url bekannt geben so das wir auch probieren können denn so ins blaue hinein raten ist recht schwer.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Kharlanki

Registriert seit: 9. Jul 2003
Ort: Düsseldorf
50 Beiträge
 
#5

Re: Login mit IdHTTP

  Alt 28. Jun 2007, 21:21
Cookies werden nicht gesetzt.

Die URL moechte ich nicht nennen, da ich mir hier zum Testen eine Seite mit Login ausgesucht habe, deren AGB ein automatisiertes Einloggen wohl nicht gutheissen.

Sehe ich das richtig, dass IdHTTP nach einem Post() automatisch die weitergeleitete Seite mit Get() nachlaedt? Wo finde ich dann die neue URL mit einer moeglichen SessionID und wo befindet sich der Quelltext der weitergeleiteten Seite?
Gruss,
Matthias

  Mit Zitat antworten Zitat
Kharlanki

Registriert seit: 9. Jul 2003
Ort: Düsseldorf
50 Beiträge
 
#6

Re: Login mit IdHTTP

  Alt 29. Jun 2007, 12:52
Ich habe es jetzt mal mit einem Login hier in der DP ausprobiert:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Ergebnis : TStringList;
  tmpString: String;
  oldct: string;
  FResult: String;
  ParamData : TStringStream;

begin
  oldct := http.Request.ContentType;
  http.Request.ContentType := 'application/x-www-form-urlencoded';
  try
    Ergebnis := TStringList.Create;
    http.HTTPOptions := http.HTTPOptions - [hoKeepOrigProtocol];
    Ergebnis.Clear;
    try
      try
        ParamData := TStringStream.Create('');
        ParamData.WriteString('username=bla');
        ParamData.WriteString('password=fasel');
        ParamData.WriteString('redirect=');
        try
          FResult := HTTP.post('http://www.delphipraxis.net/login.php', Paramdata);
        finally
          ParamData.Free;
        end;
      finally
        try
          if (HTTP.Connected) then
            HTTP.DisconnectSocket;
        except
        end;
      end;
    except
    end;
    Ergebnis.Add (AdjustLineBreaks(FResult));
  finally
    http.Request.ContentType := oldct;
  end;
  memPage.Lines.Clear;
  memPage.Lines.Text := Ergebnis.Text;
  Ergebnis.Free;
end;
Auch hier erhalte ich bei falschen Zugangsdaten noch nicht einmal den Hinweis, dass die Daten falsch sind, sondern einfach nur wieder die Seite login.php...
Gruss,
Matthias

  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Login mit IdHTTP

  Alt 29. Jun 2007, 13:59
bei dem dp-login fehlt auf jeden fall schonmal die checkbox und der submit-button.
Lasse ich diese beiden input-felder weg hab ich das gleiche Resultat wie du. Lasse ich diese Angaben nicht weg sieht das resultat wie im Browser aus. Wenn man das gleiche Resultat haben will wie der Browser sollte man auch alle Informationen wie er abschicken und nicht nur die hälfte.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Kharlanki

Registriert seit: 9. Jul 2003
Ort: Düsseldorf
50 Beiträge
 
#8

Re: Login mit IdHTTP

  Alt 29. Jun 2007, 19:08
Wie uebergebe ich denn eine Checkbox?

Kannst du mal dein Codesnippet posten?

Bei mir klappts mittlerweile manuell, indem ich die sid aus dem Cookie popel und dann die index.html?sid per Get aufrufe. Obwohl HandleRedirects auf true steht, macht IdHTTP das nicht selbst.
Gruss,
Matthias

  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Login mit IdHTTP

  Alt 30. Jun 2007, 03:07
Zitat von Kharlanki:
Die URL moechte ich nicht nennen, da ich mir hier zum Testen eine Seite mit Login ausgesucht habe, deren AGB ein automatisiertes Einloggen wohl nicht gutheissen.
Und warum nimmst du keine Seite, wo das nicht verboten ist? Es ist zwar nicht illegal, aber da du gegen die AGs verstösst und der Anbieter wohl nicht sehr erfreut darüber sein wird und wir so etwa snicht unterstützen wollen, schliesse ich den Thread hier.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 02:31 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