Код:
function GetSubStr(InputStr, BeginStr, EndStr: String): String;
var
s: String;
sp, ep: Integer;
begin
Result := '';
if pos(BeginStr, InputStr) <> 0 then begin
sp := pos(BeginStr, InputStr)+length(BeginStr);
s := copy(InputStr,sp,length(InputStr));
ep := pos(EndStr,s)-1;
Result := copy(s,1,ep);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
mp: TIdMultiPartFormDataStream;
begin
IdHTTP1.Get('http://vkontakte.ru');
IdHTTP1.Request.Referer := 'Referer: http://vkontakte.ru/login.php';
mp := TIdMultiPartFormDataStream.Create;
mp.AddFormField('op', 'a_login_attempt');
Memo1.Lines.Text := IdHTTP1.Post('http://vkontakte.ru/login.php', mp);
Memo1.Lines.SaveToFile('c:\111.html');
mp.Free;
mp := TIdMultiPartFormDataStream.Create;
mp.AddFormField('act', 'login');
mp.AddFormField('success_url', '');
mp.AddFormField('fail_url', '');
mp.AddFormField('try_to_login', '1');
mp.AddFormField('to', '');
mp.AddFormField('vk', '');
mp.AddFormField('email', Edit1.Text);
mp.AddFormField('pass', Edit2.Text);
mp.AddFormField('expire', '1');
Memo1.Lines.Text := IdHTTP1.Post('http://login.vk.com', mp);
Memo1.Lines.SaveToFile('c:\222.html');
mp.Free;
mp := TIdMultiPartFormDataStream.Create;
mp.AddFormField('op', 'slogin');
mp.AddFormField('redirect', '1');
mp.AddFormField('expire', '1');
mp.AddFormField('to', '');
mp.AddFormField('s', GetSubStr(Memo1.Text, 'id=''s'' value=''', ''''));
mp.AddFormField('email', 'alena@tdutn.com');
mp.AddFormField('pass', 'flouer');
mp.AddFormField('expire', '1');
Memo1.Lines.Text := IdHTTP1.Post('http://vkontakte.ru/login.php', mp);
Memo1.Lines.SaveToFile('c:\333.html');
mp.Free;
if pos('(это Вы)', Memo1.Text) > 0 then
MessageDlg('Залогинились.'+#13#10+GetSubStr(Memo1.Text, '<h1> <b>Online</b>', '<span>'), mtInformation, [mbOK], 0)
else
MessageDlg('Не залогинились!', mtInformation, [mbOK], 0);
end;