Autor Beitrag
Dark-§hadow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 24



BeitragVerfasst: So 13.07.08 15:53 
Hallo zusammen!

Ich bin im Rahmen eines Projekts auf das Problem gestoßen, dass ich dafür den Login bei (in diesem Fall) www.Schuelervz.net benötige.

Also hab ich mich über die möglichen Komponenten erkundigt, zum einen wäre das der TWebbrowser, zum anderen die von Indy zur Verfügung gestellte Komponente TIdhttp.

Nach längerer Recherche hab ich dann herausgefunden, dass ich zunächst die genaueren Bezeichnungen für das Namensfeld und für das PW-Feld benötige.

Quelltext Schuelervz.net
Zitat:

<label for="Login_email">E-Mail</label><br />
<input class="fieldText" type="text" name="email" id="Login_email" value="" /><br />
<label for="Login_password">Passwort</label><br />
<input class="fieldText" type="password" name="password" id="Login_password" value="" /><br />
<input class="fieldBtnSubmit" type="submit" name="login" value="Einloggen" />
<input type="hidden" name="jsEnabled" id="jsEnabled" value="false" />


So nun wird klar, dass die Variablen die Namen login und passwort tragen...

Gesehen getan...mit den "Recherchen" hab ich dann folgendes zusammen gebastelt..
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
var
  IdHTTP: TIdHTTP;
  PostDataStream : TStringStream;
  ParamData : TStringStream;
begin
  IdHTTP:= TIdHTTP.Create(nil);
  PostDataStream := TStringStream.Create('');
  ParamData := TStringStream.Create('');
  ParamData.WriteString('email=lawel&password=');
  IdHTTP.Post('http://www.schuelervz.net/login.php' , ParamData, PostDataStream);
  postdatastream.Position:=0;
  memo1.Text:=postdatastream.DataString;
end;

Naja...jetzt kommt folgender Fehler.. "HTTP/1.1 302 found"

Google gibt dazu nicht viel raus, zum einen wurde einem geraten, handleredirects auf true zu setzen und redirectmaximum auf 15, aber das hat in meinem Fall auch nicht weitergeholfen, ansonsten ging halt nur hervor, dass es ein Fehler des HTTP Protokolls war..tutorials zum TIdhttp sprechen dann noch von verschiedenen http-versionen, die man dabei festlegen muss o.ä...? Aber dann wird auch gesagt, dass mit 1.0, der Standardausgabe, eig alles laufen müsste..oder fehlen mir Parameter..?

Ich bitte um Hilfe! :>
D-§


Moderiert von user profile iconGausi: Topic aus Sonstiges (Delphi) verschoben am Mo 21.07.2008 um 13:01
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: So 13.07.08 16:32 
versuch mal login=Einloggen noch zu übergeben. Und kann es sein dass man vor dem ersten Parameter ein ?-Zeichen braucht? Ich bin mir da nicht sicher, könnte aber sein.

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: So 13.07.08 16:41 
302 Found heißt, dass die Datei zeitweilig unter einer anderen URI zu finden ist. Der Name der neuen URI wird im Header Location übergeben. Eigentlich müsste Indy das mit handleredirects erledigen...
Worauf du auch noch stoßen wirst: SchülerVZ benötigt Cookies. Das nur vorneweg.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Dark-§hadow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 24



BeitragVerfasst: So 13.07.08 16:45 
user profile iconTilman hat folgendes geschrieben:
versuch mal login=Einloggen noch zu übergeben. Und kann es sein dass man vor dem ersten Parameter ein ?-Zeichen braucht? Ich bin mir da nicht sicher, könnte aber sein.

Hallo Tilman,
danke erstmal für die Antwort, aber ich weiß nicht, wo du genau login=Einloggen übergeben möchtest? In einem der Stringstreams?
Hast du es dir so ungefähr vorgestellt..?
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
begin
  IdHTTP:= TIdHTTP.Create(nil);
  PostDataStream := TStringStream.Create('');
  ParamData := TStringStream.Create('');
  ParamData.WriteString('?login=einloggen&email=lawel&password=1234');
  IdHTTP.Post('http://www.schuelervz.net/login.php' , ParamData, PostDataStream);
  postdatastream.Position:=0;
  memo1.Text:=postdatastream.DataString;
end;

das klappt leider auch nicht, der Fehler ist immernoch derselbe, noch welche Ideen..?
Gruß
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: So 13.07.08 16:48 
versuchs mal mit /Login statt /login.php

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Dark-§hadow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 24



BeitragVerfasst: So 13.07.08 16:53 
user profile iconTilman hat folgendes geschrieben:
versuchs mal mit /Login statt /login.php


gesagt getan, immernoch dasselbe...wenn ihr dort angemeldet seid, könnt ihr es auch gerne mal selbst probieren, wäre euch dankbar ^^ oder kurz testweise registrieren :>
Bisheriger Source (nur um Missverständnissen aus dem Weg zu gehen)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
var
  IdHTTP: TIdHTTP;
  PostDataStream : TStringStream;
  ParamData : TStringStream;
begin
  IdHTTP:= TIdHTTP.Create(nil);
  PostDataStream := TStringStream.Create('');
  ParamData := TStringStream.Create('');
  ParamData.WriteString('?Login=einloggen&email=test&password=pw');
  IdHTTP.Post('http://www.schuelervz.net/Login.php' , ParamData, PostDataStream);
  postdatastream.Position:=0;
  memo1.Text:=postdatastream.DataString;
end;
PeterPain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: So 13.07.08 16:56 
Hast du gelesen, was Timosch geschrieben hat? Genau das ist dein problem, und die Lösung is ja auch gleich angedeutet (TidCookiemanager, handleredirects).

gruss
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: So 13.07.08 16:56 
Nein, ich meinte /Login statt /login.php, also ohne .php. So komm ich jedenfalls auf die (Fehler)-Seite von studivz.net. Aber das einloggen klappt nicht, da brauchst du wie oben gesagt cookies, ausserdem wirst du diesen "Formkey" ebenfalls übergeben müssen. Sowei iv und checkcode seh ich grad. Das sind alles hidden-Elemente die sicher noch abgefragt werden.

// edit:

Zitat:

<form id="Login" method="post" action="https://secure.schuelervz.net/Login">


Du wirst also das ganze wohl über https machen müssen. ABer frag mich nicht wie das geht.

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Dark-§hadow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 24



BeitragVerfasst: So 13.07.08 17:02 
user profile iconTilman hat folgendes geschrieben:
Nein, ich meinte /Login statt /login.php, also ohne .php. So komm ich jedenfalls auf die (Fehler)-Seite von studivz.net. Aber das einloggen klappt nicht, da brauchst du wie oben gesagt cookies, ausserdem wirst du diesen "Formkey" ebenfalls übergeben müssen. Sowei iv und checkcode seh ich grad. Das sind alles hidden-Elemente die sicher noch abgefragt werden.

// edit:

Zitat:

<form id="Login" method="post" action="https://secure.schuelervz.net/Login">


Du wirst also das ganze wohl über https machen müssen. ABer frag mich nicht wie das geht.


Ja stimmt, der Fehler ist schonmal behoben, danke!

@PeterPain & Timosch: Sorry, aber dem werd ich mich dann jetzt wohl widmen müssen ^^

Seid ihr euch sicher, dass da 3 Parameter übergeben werden müssen? auch mit diesem Login=einloggen?
PeterPain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: So 13.07.08 17:04 
Ich mache sowas immer per localproxy (z.B. proxomitron). Da kannst du einfach ausgehende formulardaten anzeigen, und rauskopieren und musst nicht umständig den quellcode der seite durchforsten.


gruss
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: So 13.07.08 17:06 
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<form id="Login" method="post" action="https://secure.schuelervz.net/Login">
        <fieldset>
            <label for="Login_email">E-Mail</label>
            <input class="fieldText" type="text" name="email" id="Login_email" value="" />
            <label for="Login_password">Passwort</label>
            <input class="fieldText" type="password" name="password" id="Login_password" value="" />

            <input class="fieldBtnSubmit" type="submit" name="login" value="Einloggen" />
            <input type="hidden" name="jsEnabled" id="jsEnabled" value="false" />
            <input type="hidden" name="formkey" value="(von mir entfernt wegen Datenschutz)" />
<input type="hidden" name="iv" value="(Von mir entfernt, so.o.))" />
<input type="hidden" name="checkcode" value="(auch von mir entfernt)" />

        </fieldset>
    </form>


Sicher bin ich mir sicher nicht ^^ aber es würde mich schwer wundern wenn das ohne diese Parameter ginge. Denn aus jux und dollerei haben die die bestimmt nicht eingebaut (vermutlich sogar, um genau dass was du versuchst unmöglich zu machen).

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
PeterPain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: So 13.07.08 17:10 
user profile iconTilman hat folgendes geschrieben:


Sicher bin ich mir sicher nicht ^^ aber es würde mich schwer wundern wenn das ohne diese Parameter ginge. Denn aus jux und dollerei haben die die bestimmt nicht eingebaut (vermutlich sogar, um genau dass was du versuchst unmöglich zu machen).


Wieso sollte dadurch irgendetwas unmöglich gemacht werden? Die einzige möglichkeit sowas unmöglich (oder zumindest sehr sehr schwer) zu machen, sind captchas (und andere, noch nutzerunfreundlichere und daher selten anzutreffende möglichkeiten).

gruss
Dark-§hadow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 24



BeitragVerfasst: So 13.07.08 17:17 
Gut, langsam wirds unübersichtlich ^^
Also mein Code bis hier hin...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Button1Click(Sender: TObject);
var
  bla:tstringlist;
  IdHTTP: TIdHTTP;
  PostDataStream : TStringStream;
  ParamData : TStringStream;
begin
bla := tstringlist.create;
  IdHTTP:= TIdHTTP.Create(nil);
  idHTTP.AllowCookies := true;
  PostDataStream := TStringStream.Create('');
  ParamData := TStringStream.Create('');
  ParamData.WriteString('?login=Einloggen&email=&password=pw');
  IdHTTP.Post('http://www.secure.schuelervz.net/Login' , ParamData, PostDataStream);
  postdatastream.Position:=0;
  memo1.Text:=postdatastream.DataString;
  bla.add(memo1.text);
  bla.savetofile ('test.html');

end;

Mit der stringlist guck ich mir einfach nur an, was er ausgibt ^^
Und es kommt sowas wie "Ein allgemeiner Fehler, wir kümmern uns drum!" oder ähnliches...

Also gehts jetzt gar nicht mehr auf die Weise..?
...Hilfe? x_X
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: So 13.07.08 17:28 
Du hast formkey, iv und checkcode immer noch nicht übergeben. Außerdem heißt es https:

https://secure.schuelervz.net/Login

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)


Zuletzt bearbeitet von GTA-Place am So 13.07.08 17:31, insgesamt 3-mal bearbeitet
PeterPain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: So 13.07.08 17:29 
user profile iconGTA-Place hat folgendes geschrieben:
Du hast formkey, iv und checkcode immer noch nicht übergeben.


...und auch weder nen cookiemanager noch HandleRedirects eingestellt, lies doch mal, was man dir schreibt -_-

edit: Ui, SSL, da wirst du so eh nicht weiterkommen :)
Dark-§hadow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 24



BeitragVerfasst: So 13.07.08 17:35 
user profile iconPeterPain hat folgendes geschrieben:
user profile iconGTA-Place hat folgendes geschrieben:
Du hast formkey, iv und checkcode immer noch nicht übergeben.


...und auch weder nen cookiemanager noch HandleRedirects eingestellt, lies doch mal, was man dir schreibt -_-

edit: Ui, SSL, da wirst du so eh nicht weiterkommen :)

Handledirects hab ich direkt eingestellt oO und ich habs doch geleseen aber ich hab doch gefragt, obs überhaupt dann damit weiter gehen kann, vorher wollte ich ja nicht weiter machen, maul mich doch net an ;____________; hassus net gelesen? T___T und die Antwort lieferst du gleich mit x-X

Naja, dann wird des wohl nichts...trotzdem danke ^^
Carlo91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 20



BeitragVerfasst: So 13.07.08 18:33 
Hi,
ich hatte grade mal langeweile und da dacht Programmiere ich doch einfach mal einen Lösungs ansatz ;)...

@GTA-Place ich hab es mit https zuerst gemacht da kam ein error von Indy, naja damit wollte ich mich nicht rum schlagen also hab ich es mit http versucht und es geht...

P.S. Ich würde mich über ein feedback freuen ;)
P.P.S Code ist im anhang(ohne kommentare aber er sollte sich eigendlich selbst erklären)

MfG Carlo
Einloggen, um Attachments anzusehen!
Dark-§hadow Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 24



BeitragVerfasst: So 13.07.08 20:27 
user profile iconCarlo91 hat folgendes geschrieben:
Hi,
ich hatte grade mal langeweile und da dacht Programmiere ich doch einfach mal einen Lösungs ansatz ;)...

@GTA-Place ich hab es mit https zuerst gemacht da kam ein error von Indy, naja damit wollte ich mich nicht rum schlagen also hab ich es mit http versucht und es geht...

P.S. Ich würde mich über ein feedback freuen ;)
P.P.S Code ist im anhang(ohne kommentare aber er sollte sich eigendlich selbst erklären)

MfG Carlo

Hey, das klappt wunderbar und ohne Probleme ;)
Vielen Dank, du hast dich da auch bei den restlichen Funktionen echt mal ins Zeug gelegt.

Darf ich den Teilsource fürs einloggen übernehmen? :)
Carlo91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 20



BeitragVerfasst: So 13.07.08 20:36 
Hi,
klar kannst so weiter programmieren, ich habs ja nicht umsonst hochgeladen ;)!
Wenn du noch irgendwelche fragen hast kannst ja hier im Thread fragen oder mich per PN.

MfG Carlo
pennyWISE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49

Win XP
Delphi 2005 PE (getunt), QBasic 4.5
BeitragVerfasst: Sa 19.07.08 18:34 
Darf ich mal fragen, mit welchen Delphiversionen ihr arbeitet?

Ich programmiere im Moment etwas Ähnliches wie Dark-§, nur leider hab ich fast nur Probleme.
Ich arbeite mit Borland Delphi 6, wo standardmäßig idHTTP dabei ist, allerdings anscheinend in einer älteren Version, da ich den Quelltext von Carlo nicht compiliert bekomme (verschiedene Idunits fehlen).
Das Installieren von IdSoap_1_00 (ist doch das richtige package oder?) schlug aber wiederum wegen des Fehlens verschiedener Units fehl (dazu habe ich in einem anderen Forum gelesen, dass man für Delphi6 und 7 Besonderes beachten muss, allerdings ist der entsprechende Link verwaist und auf der indyseite finde ich da auch nichts mehr zu)

weiterhin funktioniert ganz allgemein der Dateidownload nicht. habe es schon mit der alten Version von idHTTP versucht sowie mit der URLmon-Unit. Keiner der beiden Befehle gibt eine Fehlermeldung, allerdings wird die gewünschte Datei auch nicht geladen. (an der Datei kann es nicht liegen, da ich verschiedene Files ausprobiert habe, u.a. auch eine von kernel.org, die auf dem server ganz sicher existiert ^^)
Kann es vllt daran liegen, dass ich Vista hab und diese krebsartigen sicherheitsvorkehrungen daran schuld sind? (obwohl ich eigentlich alle nötigen Befehle wie "schreiben, lesen, etc" auf "zulassen" gesetzt hab)
Am meisten nervt mich, dass ich nichmal ne Fehlermeldung bekomme. :( Die Datei wird einfach nich gezogen.
Ich hoffe, ihr könnt mir helfen!

Schonmal vielen Dank!
pennyWISE

PS.: Falls ich Probleme wiederholt habe, die hier schonmal gelöst wurden, dann fallt bitte nicht gleich über mich her :) ich hab die Suchfunktion schon benutzt und nichts entsprechendes gefunden :>

_________________
„Philosophie ist der Versuch, eine schwarze Katze in einem dunklen Zimmer zu fangen. Theologie ist der Versuch, eine schwarze Katze in einem dunklen Zimmer zu fangen, jedoch eine Katze, die gar nicht im Zimmer ist - und immer zu rufen: Ich hab' sie!“
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.