AGB  ·  Datenschutz  ·  Impressum  







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

Login mit TWebBrowser

Ein Thema von Smarty · begonnen am 15. Jan 2005 · letzter Beitrag vom 17. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
Smarty

Registriert seit: 15. Jan 2005
5 Beiträge
 
#1

Login mit TWebBrowser

  Alt 15. Jan 2005, 18:41
Hallo
Habe mir ein kleines Programm geschrieben um mich auf einer Seite automatisch einloggen und Aktionen durchführen zu können. Hier mal der Code:
Code:
rocedure TForm1.Button1Click(Sender: TObject);    
begin    
timer1.enabled:=false;    
timer2.enabled:=false;    
timer3.enabled:=true;    
end;    

procedure TForm1.Timer3Timer(Sender: TObject);    
begin    
WebBrowser1.Navigate('http://www.die_Seite.de/nochein_Eintrag/');    
WebBrowser1.SetFocus;    
timer1.enabled:=true;    
timer3.enabled:=false;    
end;    

procedure TForm1.Timer1Timer(Sender: TObject);    
begin    
WebBrowser1.OleObject.document.forms.item(1).elements.item('password').value:='meinPW';    
WebBrowser1.OleObject.document.forms.item(1).elements.item('name').value:='meinName';    
WebBrowser1.OleObject.document.forms.item(1).submit;    
timer2.enabled:=true;    
timer1.enabled:=false;    

end;    

procedure TForm1.Timer2Timer(Sender: TObject);    
begin    
WebBrowser1.Navigate('http://www.die_Seite.de/nochein_Eintrag/start.php');    
WebBrowser1.Navigate('http://www.die_Seite.de/nochein_Eintrag/do1.php');    
WebBrowser1.Navigate('http://www.die_Seite.de/nochein_Eintrag/outlog');    
timer3.enabled:=true;    
timer2.enabled:=false;    
end;
Das Ganze funktioniert soweit einigermaßen. Allerdings machen mir 2 Stellen Probleme:
Code:
WebBrowser1.OleObject.document.forms.item(1).elements.item('password').value:='meinPW';    
WebBrowser1.OleObject.document.forms.item(1).elements.item('name').value:='meinName';
Das ist die erste. Egal welche Reiehenfolge, bei diesen Zeilen gibt es eine EAccessViolation beim Versuch aus der Adresse 000000... zu lesen.

Code:
WebBrowser1.Navigate('http://www.die_Seite.de/nochein_Eintrag/do1.php');
Die beiden Links um diesen Teil werden ausgeführt, dieser jedoch nicht, obwohl er korrekt ist. Woran kann das liegen?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: Login mit TWebBrowser

  Alt 15. Jan 2005, 18:54
Hi,

Probiere das ganze mal ohne Timer zu machen!
Ist sauberer Programmierstil und weniger fehleranfällig.
Thomas
  Mit Zitat antworten Zitat
chkdsk
(Gast)

n/a Beiträge
 
#3

Re: Login mit TWebBrowser

  Alt 15. Jan 2005, 18:59
Wozu der ganze Mist?

Ich weiß nicht, ob der TWebBrowser das modifizieren des HTTP-Headers unterstützt (weil ich ihn nicht benutze), aber zum einloggen muss einfach nur "Benutzernameasswort" (ohne Anführungszeichen) mit Base64 encodiert werden, und im entsprechenden Teil des Headers mitgeschickt werden. Einfach mal einen Sniffer benutzen, und anschauen, wie das genau funktioniert!

Dann kannst du dir den ganzen Scheiss sparen!
  Mit Zitat antworten Zitat
Smarty

Registriert seit: 15. Jan 2005
5 Beiträge
 
#4

Re: Login mit TWebBrowser

  Alt 15. Jan 2005, 19:13
Zitat von chkdsk:
Wozu der ganze Mist?
Erläutere mir bitte genauer was störend ist.

Zitat von chkdsk:
Ich weiß nicht, ob der TWebBrowser das modifizieren des HTTP-Headers unterstützt (weil ich ihn nicht benutze),
Geht mir genauso, bis vor 3 Tagen wusste ich nicht mal, dass es ihn gibt. Desweitern habe ich keine Ahnung was du mit
Zitat:
das modifizieren des HTTP-Headers
meinst. Ich habe nunmal nur das einigermaßen sicher drauf was ich in der Schule lernte, sprich kaum etwas das über den Schwierigkeitsgrad eines Taschenrechners geht.

Zitat von chkdsk:
aber zum einloggen muss einfach nur "Benutzernameasswort" (ohne Anführungszeichen) mit Base64 encodiert werden, und im entsprechenden Teil des Headers mitgeschickt werden. Einfach mal einen Sniffer benutzen, und anschauen, wie das genau funktioniert!
Dann kannst du dir den ganzen Scheiss sparen!
Und das ist wieder die Stelle an der ich keine Ahnung habe was du mir damit sagen willst. Sorry.

Zitat von toms:
Probiere das ganze mal ohne Timer zu machen!
Wie kann ich das machen? Ich benutze die Timer, damit ich die genaue Uhrzeit für die einzelnen Aktionen einstellen kann. Womit geht das sonst noch?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: Login mit TWebBrowser

  Alt 15. Jan 2005, 19:19
Noch eine Frage:

Warum führst du 3 Mal hintereinander Navigate aus?
Zitat:
WebBrowser1.Navigate('http://www.die_Seite.de/nochein_Eintrag/start.php');
WebBrowser1.Navigate('http://www.die_Seite.de/nochein_Eintrag/do1.php');
WebBrowser1.Navigate('http://www.die_Seite.de/nochein_Eintrag/outlog');
Der Webbrowser wartet nicht, bis ein Navigate Vorgang beendet ist sondern geht
führt alle 3 Navigates direkt nacheinander aus, ohne dass alle Seiten
vollständig geladen werden.
Thomas
  Mit Zitat antworten Zitat
Smarty

Registriert seit: 15. Jan 2005
5 Beiträge
 
#6

Re: Login mit TWebBrowser

  Alt 15. Jan 2005, 19:21
Hmm, wie kann ich das Ganze denn ansonsten im WebBrowser hintereinander laden? Ich kenne nur diese Möglichkeit zum anwählen von Links.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#7

Re: Login mit TWebBrowser

  Alt 15. Jan 2005, 19:23
Zitat von Smarty:
Hmm, wie kann ich das Ganze denn ansonsten im WebBrowser hintereinander laden? Ich kenne nur diese Möglichkeit zum anwählen von Links.
am besten ohne twebbrowser
am besten wäre es ein eigenes php interface für deine anwendung zu schreiben, dass die gewünschten operationen auf dem server ausführt... das kannst du dann mit der idHTTP Komponente von den Indys ansteuern!
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

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

Re: Login mit TWebBrowser

  Alt 15. Jan 2005, 19:24
Zitat von chkdsk:
Einfach mal einen Sniffer benutzen, und anschauen, wie das genau funktioniert!
Wo gibt's so ein Sniffer?
Thomas
  Mit Zitat antworten Zitat
Smarty

Registriert seit: 15. Jan 2005
5 Beiträge
 
#9

Re: Login mit TWebBrowser

  Alt 15. Jan 2005, 19:25
Zitat von Meflin:
am besten wäre es ein eigenes php interface für deine anwendung zu schreiben, dass die gewünschten operationen auf dem server ausführt...
Dafür müsste ich wohl PHP können, was leider nicht der Fall ist.

Zitat von Meflin:
das kannst du dann mit der idHTTP Komponente von den Indys ansteuern!
Danke, aber was meinst du mit dem eben Gesagten? Ich habe absolut keine Ahnung was das bedeutet.
  Mit Zitat antworten Zitat
chkdsk
(Gast)

n/a Beiträge
 
#10

Re: Login mit TWebBrowser

  Alt 15. Jan 2005, 23:15
Pass auf:


Wenn dein TShitBrowser eine Anfrage erstellt, dann beinhaltet die entweder GET oder POST, den Pfad, die HTTP-Version, etc.
Da fügst du einfach folgendes als einzelne Zeile ein:

"Authorization: Basic MxIxOxkxOxMxbxJxbxBxZxIxMx=="

(Wobei "MxIxOxkxOxMxbxJxbxBxZxIxMx==" der Verschlüsselte String "Usernameasswort" ist.)


Bisschen Eigeninitiave, wie du z.B. mit Delphi einen String Base64-verschlüsselst herauszufinden, kann auch nicht schaden. ---> GOOGLE <---

Die oben genannte Möglichkeit funktioniert bei jedem HTTP-Clienten, also auch, falls du mal nen Download-Manager oder so schreiben willst!
Es ist die sauberste (und vor allem die wirklich einzig richtige) Methode.


Als Sniffer kann ich CommView von TamoSoft empfehlen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:49 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