Entwickler-Ecke

Internet / Netzwerk - Http-Formulare


s00f - Do 12.01.06 19:52
Titel: Http-Formulare
tach erstmal,

ich weiß das es dieses thema schon zig mal gab, aber alle threads konnten mir nicht wirklich weiterhelfen.
mein programm "soll" sich mit id und passwort auf einer seite einloggen, eine suchmaske ausfüllen und danach den ie mit den ergebnissen anzeigen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
var
  L: TStringList;
begin
  L := TStringList.Create;

  try
    L.Add('id=edit1.text');
    L.Add('pw=edit2.Text');
    IdHTTP1.post('http://www.dieseite.de', L);
  finally
    L.Free;
  end;
end;


nun weiß ich jetzt natürlich nicht ob das auch so funktioniert wie ich mir das gedacht habe.
wie kann ich prüfen, dass ich tatsächlich eingeloggt bin und wie öffne' ich den ie mit der seite und bin gleichzeitig immernoch angemeldet? hab schon etliches versucht, aber ich weiß nicht weiter.

gruß, s00f


GTA-Place - Do 12.01.06 20:49


Delphi-Quelltext
1:
2:
MyVar = IdHTTP1.post('http://www.dieseite.de', L); 
ShowMessage(MyVar);

Gibt den Source der Seite aus, damit kannst du überprüfen ob du eingeloggt bist.

2. Frage kann ich nicht beantworten. Sry.


mkinzler - Do 12.01.06 21:13
Titel: Re: Http-Formulare
user profile icons00f hat folgendes geschrieben:
tach erstmal,

ich weiß das es dieses thema schon zig mal gab, aber alle threads konnten mir nicht wirklich weiterhelfen.
mein programm "soll" sich mit id und passwort auf einer seite einloggen eine suchmaske ausfüllen und danach den ie mit den ergebnissen anzeigen.

Kommt darauf an, wie der Login bzw. Das "Action"-Skript der Suchmaske aussieht.
Werden die Eingaben der Maske ber GET übertragen bzw. ist im übernehmenden Skript globals aktiviert können die Felder der Suchmaske in der Url kodiert übergeben werden.
z.B.

Quelltext
1:
such.php?name=name&passwort=passwort                    

Bei Übertagung per POST und deaktivierten globals, geht das nicht.
Zitat:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
var
  L: TStringList;
begin
  L := TStringList.Create;

  try
    L.Add('id='+edit1.text);
    L.Add('pw='+edit2.Text);
    IdHTTP1.post('http://www.dieseite.de', L);
  finally
    L.Free;
  end;
end;


gruß, s00f


s00f - Mo 16.01.06 21:05

so sieht das ganze bei mir aus:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Button3Click(Sender: TObject);
var
  i,j,k: Integer;
  m,a: String;
begin
  waren := TStringList.Create;
  waren.LoadFromFile('waren.txt');
  for i:=0 to waren.count-1 do begin
    a:=waren.Strings[i];
    j:=pos('#',a);
    k:=Length(a);
    m:=copy(a,j+1,k-j);
    Delete(a,j,2);
    WebBrowser1.OleObject.document.forms.item(0).elements.item('Suche').value:=a;
    WebBrowser1.OleObject.Document.forms.item(0).elements.item(8).click;
    WebBrowser1.OleObject.document.forms.item(0).elements.item(12).value:=m;
    WebBrowser1.OleObject.Document.forms.item(0).elements.item(10).click;
    WebBrowser1.OleObject.Document.forms.item(0).elements.item(4).click;
  end;
  waren.Free;
end;


in einer textdatei(waren.txt) sind artikelnummer und menge der artikel gespeichert, diese sollen nacheinander ausgelesen werden.


Delphi-Quelltext
1:
for i:=0 to waren.count-1 do begin                    


das soll die die artikelnummer(a) in das feld "suche" einfügen


Delphi-Quelltext
1:
WebBrowser1.OleObject.document.forms.item(0).elements.item('Suche').value:=a;                    


und danach wird der suchbutton gedrückt.


Delphi-Quelltext
1:
WebBrowser1.OleObject.Document.forms.item(0).elements.item(8).click;                    


jetzt soll die menge der artikel in das formularfeld eingegeben werden.


Delphi-Quelltext
1:
WebBrowser1.OleObject.document.forms.item(0).elements.item(12).value:=m;                    


und wieder abschicken(damit kommt man zum warenkorb).


Delphi-Quelltext
1:
WebBrowser1.OleObject.Document.forms.item(0).elements.item(10).click;                    


im warenkorb sollte nun der artikel und die menge eingetragen sein.
jetzt zurück zur suchmaske.


Delphi-Quelltext
1:
WebBrowser1.OleObject.Document.forms.item(0).elements.item(4).click;                    


wenn ich die ganzen schritte über einzelne buttons verteile funktioniert auch alles, aber nicht nacheinander.
ich hab schon probiert das programm warten zu lassen bis der webbrowser fertig geladen ist, aber ohne erfolg.
hat vielleicht jemand eine idee??


gruß, s00f