[Indy]IdHTTP -> Log In in Seite



  • Hi!

    Habe schon das hier gefunden:

    TStringList * ParaIn    = new TStringList(); 
            TMemoryStream * ParaOut = new TMemoryStream(); 
    
            ParaIn->Add("action=1&login=UserName&pass=secret"); 
    
            IdHTTP1->Request->ContentType = "application/x-www-form-urlencoded"; 
            IdHTTP1->Post("http://test.de/login.php", ParaIn, ParaOut); 
    
            Memo1->Lines->LoadFromStream(ParaOut);
    

    Verstehe das aber nicht ganz...

    Ich möchte mich mit meinen Benutzerdaten in eine Seite einloggen.
    Könnt ihr mir helfen?

    thx

    Edit: hab noch was gefunden, was vielleicht wichtig ist, hier die input Felder:

    type="text" name="login" class="i1"
    type="password" name="passwort" class="i1"
    type="submit" class="i1" value="Login"



  • Hallo

    Ausgehend von den Quellcode must du eben in die Strings für "UserName" und für "secret" eben die Accountdaten eingeben die du willst. Und du must offenbar noch die Namen der Controls anpassen, das für "l" = "Login" und "pass" gleich "passwort" steht.

    bis bald
    akari



  • Habs nun soweit modifiziert:

    TStringList * ParaIn    = new TStringList();
            TMemoryStream * ParaOut = new TMemoryStream();
    
            /*type="text" name="login" class="i1" size=15>
             type="password" name="passwort" class="i1" size=15>
             type="submit" class="i1" value="Login">   */
    
            ParaIn->Add("login=Ich&passwort=abc123&action=login");
    
            IdHTTP->Request->ContentType = "application/x-www-form-urlencoded";
            IdHTTP->Post("http://miloth.kampf-um-mittelerde.de/login.php", ParaIn, ParaOut);
    
           Verbinde_E->Text = IdHTTP->ResponseText;
           AnsiString d = IdHTTP->Get("http://miloth.kampf-um-mittelerde.de/game.php?a=clist");
           Memo1->Text = d;
    

    Allerdings bekomme ich den Fehler: EIdProtocolReplyError mit der Meldung 302 Found



  • Hallo

    Laut deiner "Input-Feld Liste" muß die action "Login" mit großen L geschrieben werden

    bis bald
    akari



  • hab jetzt statt

    ParaIn->Add("login=Ich&passwort=abc123&action=login");
    
    ParaIn->Add("login=Ich");
            ParaIn->Add("passwort=abc123");
            ParaIn->Add("action=Login");
    

    jetzt kommt der Fehler hier:

    AnsiString d = IdHTTP->Get("http://miloth.kampf-um-mittelerde.de/game.php?a=clist");
    

    Edit: Liegt das vlt. daran dass die evl. mit Cookies arbeiten?
    Kann ich das auch irgendwie bewerkstelligen?

    thx


Anmelden zum Antworten