Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   idHTTP.Post geht nicht (https://www.delphipraxis.net/157021-idhttp-post-geht-nicht.html)

sh0xXer 25. Dez 2010 14:15

idHTTP.Post geht nicht
 
Hallo ;)

Ich wollte mir ein kleines Tool schreiben um mir das Leben ein wenig zu erleichtern.. Allerdings scheitere ich beim Login auf eine Seite.

Mit dem FF-Addon Live HTTP Headers kam folgendes raus:


Code:
http://seite.com/

POST / HTTP/1.1
Host: seite.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Cookie: PHPSESSID=ce93ce360191efb3f57288d8db3cXXX
Content-Type: application/x-www-form-urlencoded
Content-Length: 56
username=ZENSIERT&password=ZENSIERT&login=&captcha=Captcha
Nun stellt sich mir die Frage: Wie logge ich mich dort ein, auf der Seite?

Habe es mit:

Code:
procedure TForm1.Button1Click(Sender: TObject);
var slLogin: TStringList;
begin
slLogin:=TStringList.Create();
slLogin.Add('?username=' + edNick.text);
slLogin.Add('&password=' + edPW.text);
slLogin.Add('&login=&captcha=Captcha');
try
idHTTP1.Post('http://seite.com/', slLogin);
finally
slLogin.Free;
end;
end;
probiert, er gibt mir auch keinen Fehler etc. aus, aber der Login scheint nicht erfolgreich zu sein (da der Schritt danach, der 100% klappt, nicht ausgeführt wird).

Was mich verwirrt ist, dass es keine login.php oder ähnliches gibt, sondern nur das / danach kommt.

Freue mich über Hilfe

PS: Nur die seite durch "Seite" ersetzt, rest ist original.

Matze 25. Dez 2010 18:22

AW: idHTTP.Post geht nicht
 
Hallo,

gleich vorweg: Beachte die AGB der Website, denn oftmals ist ein automatischer Login nicht zulässig. Sonst kannst du richtig Ärger bekommen.
Da mein Delphi mal wieder brutal rumzickt (vielleicht muss mal ein XE her), hier ungetesteter Code:
Delphi-Quellcode:
procedure TForm1.Login;
var
  slLogin: TStringList;
begin
  slLogin := TStringList.Create;
  try
    slLogin.Values['username'] := edNick.text;
    slLogin.Values['password'] := edPW.text;
    slLogin.Values['login='] := ''; // kannst auch eglassen, nehme ich an
    slLogin.Values['captcha'] := 'Captcha';

    IdHTTP1.Post('http://seite.com/', slLogin);
  finally
    FreeAndNil(slLogin);
  end;
end;
Eine login.php muss es nicht geben. Es kann auch sein, dass z.B. die index.php den Login durchführt. Diese wird meist aufgerufen, wenn keine PHP-Datei angegeben wird. Das lässt sich natürlich auch ändern und es können auch andere Dateien wie index.php5 o.ä. sein.

sh0xXer 25. Dez 2010 19:15

AW: idHTTP.Post geht nicht
 
Danke schonmal für die Antwort ;)

Habe deinen Code gerade getestet, funktioniert jedoch immernoch nicht.

Habe, um herauszufinden ob es klappt, einmal vor dem einloggen den Quelltext geholt und nach dem "einloggen", beide identisch.

Schade, danke trotzdem für die Hilfe.

Kleine Frage noch: Muss man bei einer TStringList nicht die "&" bzw. als erstes das "?" einfügen?

Grüße
sh0xX

Matze 25. Dez 2010 19:33

AW: idHTTP.Post geht nicht
 
Normalerweise muss man das nicht.
Der erste Parameter ist generell vom "?" von der URL getrennt, alle weiteren durch ein "&". Die könntest du auch beliebig vertauschen.

Das nur, damit du weißt, dass diese Trennzeichen nicht "fest" sind. Bzw. es gibt auch Situationen, bei denen die Reihenfolge der Parameter fest sein muss, aber das ist sehr selten der Fall.

sh0xXer 25. Dez 2010 19:49

AW: idHTTP.Post geht nicht
 
Ah okay, danke ;)

Ich dachte die müsste man immer mit eingeben (habe mich damit noch nie so wirklich beschäftigt, immer nur mal so ein wenig benutzt, sofern es um Seiten mit z.B. einer login.php ging war dies bisher auch kein Problem.

Ich versuche einfach noch ein wenig rum, vielleicht schaff ich mit etwas glück ja den Login ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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