![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Пытаюсь авторизоваться на форуме rutracker.org, ничего не получается.
1. Нажимаю кнопку получения капчи 2. ввожу текст с капчи в едитбокс 3. нажимаю на кнопку 2 И нифига не логинится. Где бага? Код:
const link: string = 'http://login.rutracker.org/forum/login.php'; mylogin='логин'; mypass='пароль'; var Form1: TForm1; Txt: string; cap : Boolean; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); const C_Url='http://static.rutracker.org/captcha/0/'; var ris,txt1,ss,lres:string; sPos, fPos,spos1,fpos1,lpos,lpos2: Integer; ltxt,ltxt1: Integer; lStream: TMemoryStream; jpg: TJPEGImage; s : TStringList; begin txt := HTTP1.Get(link); s := TStringList.Create; s.Text := txt; S.SaveToFile('file.html'); s.Free; sPos := Pos(C_Url, txt); if sPos > 0 then begin cap := True; ltxt := Length(C_Url); Inc(sPos, ltxt); fPos := sPos; while (fPos <= ltxt) and (txt[sPos] <> '"') do Inc(fPos); ris:=Copy(txt, sPos, 39); if ris <> '' then begin lStream := TMemoryStream.Create; jpg := TJPEGImage.Create; try HTTP2.Get(C_Url + ris , lStream); lStream.Position := 0; Jpg.LoadFromStream(lStream); Image1.Picture.Bitmap.Assign(JPG); finally jpg.Free; lStream.Free; end; end; end else Cap := False; //ShowMessage('Капчи нет!'); end; procedure TForm1.Button2Click(Sender: TObject); var Tst:TStringList; cookie_test,cap_sid,cap_code: string; begin Tst:=TStringList.Create; if Cap then begin cap_sid:=copy(txt,pos('cap_sid', txt) + 15, 21); cap_code:=copy(txt,pos('cap_code', txt), 41); end; Tst.Add('login_username='+mylogin); tst.Add('login_password='+mypass); tst.Add('ses_short=1'); // tst.Add('auth_remember=ok'); if cap then begin tst.Add('cap_sid=' + cap_sid); tst.Add(cap_code + '=' + Edit1.Text); end; tst.Add('login=Вход'); Txt := Http1.Post(link, tst); tst.Text:=txt; tst.SaveToFile('page.html'); If Pos('>Выход</a>', Txt)>0 then ShowMessage('УРА!!') else ShowMessage('БЛ*ТЬ'); Tst.Free; Http1.Disconnect; end; |