Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi IdHTTP1.Request.Username IdHTTP1.Request.Password (https://www.delphipraxis.net/80951-idhttp1-request-username-idhttp1-request-password.html)

newuser01 17. Nov 2006 22:50


IdHTTP1.Request.Username IdHTTP1.Request.Password
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

Ich versuch mich die ganze Zeit auf einer Webseite anzumelden um dann die Formulardaten als angemeldeter User auszufüllen und diese dann abzuschicken. Unangemeldet (eUnregUser) funktioniert das ganze auch, nur auf manche Formulare hat man nur als angemeldeter User Zugriff und da liegt das Problem.

Ein bischen Code
Delphi-Quellcode:

 //Loginversuch
 IdHTTP1.Request.Username := eUsername.Text;
 IdHTTP1.Request.Password := ePasswort.Text;
 IdHTTP1.Get(sLOGINurl);


 sl := TStringList.Create;
 
 //Prüfen ob Formulardaten mit (unregistered User) oder mit angemeldeten User ausgefüllt werden solln
 if CheckBox1.Checked = true then
 begin
  sl.Add('from='+ eUnregUser.Text); //wenn sich nicht angemeldet wurde (unregistered User) benutzen
 end
    else
        begin
        sl.Add('from='+ eUsername.Text); //wenn sich angemeldet wurde angemeldeten User benutzen
 end;//if

 //Hier ist das Formular (Gästebuch) was abgeschickt werden soll.
//Als (unregistrierte User) funktioniert das ganze aber als (registrierte User) nach dem Login halt nicht

 sl.Add('p=MakeGuestbookEntry798');
 sl.Add('a=send');
 sl.Add('text=' + RichEdit1.Text);
 sl.Add('submit=senden');
 IdHTTP1.Post(sURL,sl);

Ich hab hier mal den Quelltext der Webseite um die es sich handelt und wo der Login funktionieren muss mit angehängt.


so hab ich es auch schon versucht leider auch ohne Erfolg
Delphi-Quellcode:

  slLogin := TStringList.Create;

  slLogin.Add('unickname='+ eUsername.Text);
  slLogin.Add('password='+ ePasswort.Text);
  slLogin.Add('submit=login');

newuser01 18. Nov 2006 16:03

Re: IdHTTP1.Request.Username IdHTTP1.Request.Password
 
Keiner eine Idee woran es liegen könnte ?

DGL-luke 18. Nov 2006 16:48

Re: IdHTTP1.Request.Username IdHTTP1.Request.Password
 
Hast du schon den AuthType eingestellt? Vorzugsweise auf Basic?

newuser01 18. Nov 2006 17:15

Re: IdHTTP1.Request.Username IdHTTP1.Request.Password
 
Hallo Lukas

BasicAuthentication ist auf true eingestellt

Hier noch mal der genaue Ablauf wie ich das Gästebuch abschicke

Delphi-Quellcode:
//-------------------------------------------------------------------------------------------------------------------------
//Gästebuch abschicken ohne sich vorher einzuloggen also als (unregistered User) das funktioniert!

sl.Clear;
sl.Add('p=MakeGuestbookEntry798');
sl.Add('a=send');
sl.Add('text=' + RichEdit1.Text);
sl.Add('from='+ eUnregUser.Text); //eintrag von (unregistered User) spielt keine Rolle was für ein Name eingesetzt wird
sl.Add('submit=senden');

IdHTTP1.Post(sURL,sl); //abschicken
//--------------------------------------------------------------------------------------------------------------------------

//..........................................................................................................................
//Gästebuch abschicken eingeloggt als (registrierte User) das funktioniert leider nicht!

//Login
IdHTTP1.Request.Username := eUsername.Text;
IdHTTP1.Request.Password := ePasswort.Text;
IdHTTP1.Get(sLOGINurl);

sl.Clear;
sl.Add('p=MakeGuestbookEntry798');
sl.Add('a=send');
sl.Add('text=' + RichEdit1.Text);
sl.Add('from='+ eUsername.Text); //eintrag von registrierte User) genauer Nickname festgelegt
sl.Add('submit=senden');

IdHTTP1.Post(sURL,sl); //abschicken
//..........................................................................................................................

newuser01 22. Nov 2006 11:12

Re: IdHTTP1.Request.Username IdHTTP1.Request.Password
 
Hat keiner eine Idee warum es bei Gästebüchern die nur als eingeloggter User einen eintrag zulassen nicht funktioniert? Das einloggen scheint ja zu funktionieren zumindest kommt keine Fehlermeldung.

generic 22. Nov 2006 11:15

Re: IdHTTP1.Request.Username IdHTTP1.Request.Password
 
der auth typ hat etwas mit den webbasiert authentifizierung zu tun.

das was in der webseite ist, ist eine formular basiert anmeldung.
diese felder müssen meistens als "POST" parameter mitgegeben werden.

DGL-luke 22. Nov 2006 14:20

Re: IdHTTP1.Request.Username IdHTTP1.Request.Password
 
Das stimmt, die Information hatte ich nicht. da muss man sich dann wirklich erst mal anmelden, geht natürlcih auch per IdHTTP.

PHP kann übrigens die basic auth perfekt emulieren, das wird dir nur hier am frontend nix helfen ;)

newuser01 22. Nov 2006 15:45

Re: IdHTTP1.Request.Username IdHTTP1.Request.Password
 
Hallo

Aber auch mit der Postmethode geht es nicht oder mach ich da noch Fehler ?

Delphi-Quellcode:

//Login
 slLogin := TStringList.Create;

 with slLogin do
 begin
  Add('a=login');
  Add('unickname='+ eUsername.Text);
  Add('password='+ ePasswort.Text);
  Add('submit=login');
 end;

IdHTTP1.Post(sLOGINurl,slLogin);

//Gästebuch abschicken

 slGuestbook := TStringList.Create;

 slGuestbook.Add('p=MakeGuestbookEntry798');
 slGuestbook.Add('a=send');
 slGuestbook.Add('text=' + RichEdit1.Text);
 slGuestbook.Add('from='+ eUsername.Text);
 slGuestbook.Add('submit=senden');

 IdHTTP1.Post(sGuestbookURL,slGuestbook);

newuser01 29. Nov 2006 11:28

Re: IdHTTP1.Request.Username IdHTTP1.Request.Password
 
Funktioniert einfach nicht :wall: Nach dem Login kommt keine Fehlermeldung also geh ich mal davon aus das dieser erfolgreich war. Bei dem abschicken des Gästebuches kommt ebenfalls keine Fehlermeldung, es wird nur nicht als registrierter User abgeschickt. Ist bei einem Gästebuch das eintragen als unregistrierter User erlaubt funktioniert das ganze auch :gruebel:

newuser01 29. Nov 2006 16:37

Re: IdHTTP1.Request.Username IdHTTP1.Request.Password
 
Ich habe mal geschaut was überhaupt nach dem Login zurückgeliefert wird. Wenn ich mich also normal über den Browser (MIE) einlogge und mir danach den Seitenquelltext anschaue findet man das hier ("input type="button" value="logout" class="submit") also ein sicheres Zeichen für das erfolgreiche einloggen. Dieses könnte ich ja bei IdHTTP zur Auswertung beim login nutzem. Müsste dazu nicht eigentlich nach dem Login Memo1.Text genau dieser Seitenquelltext zugewiesen werden ? denn es passiert nichts kein Text im Memo1. Wo steckt der Wurm drin :mrgreen: :wall: :wall:
Delphi-Quellcode:

//Login
slLogin := TStringList.Create;

with slLogin do
begin
  Add('a=login');
  Add('unickname='+ eUsername.Text);
  Add('password='+ ePasswort.Text);
  Add('submit=login');
end;

Memo1.Text := IdHTTP1.Post(sLOGINurl,slLogin);


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