В чём может быть ошибка ?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by @VIRUS@, 9 Nov 2011.

  1. @VIRUS@

    @VIRUS@ New Member

    Joined:
    7 Jan 2011
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    Вот код авторизации для рутрекера
    Code:
    idhttp1.HandleRedirects:=true;
    StrPage:=idhttp1.Get('http://rutracker.org/forum/index.php');
    ssylka:='http://login.rutracker.org/forum/login.php';
    Data:=TstringList.Create;
    Data.Add('login_username='+Edit1.Text);
    Data.Add('login_password='+Edit2.Text);
    Data.Add('login=Вход');
    StrPage:=idhttp1.Post(ssylka, Data);
    if Pos('logout', StrPage)<>0 then
    Label3.Caption:='Залогинились'
    else Label3.Caption:='Не залогинились';
    Data.Free;
    Но суть в том что всегда пишет "Не залогинились".
     
  2. @VIRUS@

    @VIRUS@ New Member

    Joined:
    7 Jan 2011
    Messages:
    25
    Likes Received:
    1
    Reputations:
    0
    И переменные
    Code:
        var StrPage, ssylka:string;
        Data:TstringList;
     
  3. B0ri$ka

    B0ri$ka Banned

    Joined:
    1 Jul 2011
    Messages:
    33
    Likes Received:
    2
    Reputations:
    0
    возможно, нужно куки отправлять. проверь сниффером
     
  4. 1n0y

    1n0y Active Member

    Joined:
    9 May 2009
    Messages:
    276
    Likes Received:
    282
    Reputations:
    2
    предполагаю, что отправляя постом данные на http://login.rutracker.org/forum/login.php мы получаем редирект на http://rutracker.org/forum/index.php, который инди воспринимает как исключительную ситуацию и всё ломает.

    вобщем сделай так
    и да, не забудь про куки
     
  5. mr_walker

    mr_walker Member

    Joined:
    9 Aug 2009
    Messages:
    41
    Likes Received:
    34
    Reputations:
    2
    1n0y, я бы даже сделал так

    Code:
    idhttp1.HandleRedirects:=[COLOR=Blue]false[/COLOR];
    а потом после всего проверку на редирект...
    Code:
     try
       StrPage:=idhttp1.Post(ssylka, Data);
     except 
       if idhttp1.responsecode=302 then
       StrPage:=idhttp1.get('http://rutracker.org'+Idhttp1.response.location);
     end;
     
  6. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Русские буковки... Ну и может быть хедер не нравится скрЯпту...