Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2009, 06:39   #11
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Вот моя функция:

Код:
procedure TForm3.logIn(html: TStringList);
var
  s: string;
  html2: TStringStream;
  response: TMemoryStream;
  params: TStringList;
  time:TDateTime;
begin
  html2 := TStringStream.Create;
  params := TStringList.Create;
  params.add('email=twix1124@rambler.ru');
  params.Add('pass=bcgjkmpeqfynbxbn');
  //params.add('expire=');
  params.add('act=login');
  try
    HTTP.Post('http://login.vk.com/', params, html2);
  except
  end;
  params.Clear;
  s := strParse(strParse(html2.DataString), 'id=''s'' value=''', ''' /', 0);
  params.Add('s=' + s);
  params.Add('op=slogin');
  params.Add('redirect=1');
  html2.Free;
  response := TMemoryStream.Create;
  try
    http.Post('http://vkontakte.ru/login.php', params,response);
  except

  end;
  //HTTP.Post('http://vkontakte.ru/login.php', params, html2);
  response.Position:=0;
  html.LoadFromStream(response);
  response.Free;
  params.free;
end;
Код:
  s := strParse(strParse(html2.DataString), 'id=''s'' value=''', ''' /', 0);
В переменную s забиваем значения с полученной страницы.
Незабываем ставить handleRedirects в True...
TwiX вне форума Ответить с цитированием
Старый 03.12.2009, 13:56   #12
DeDoK
Форумчанин
 
Аватар для DeDoK
 
Регистрация: 05.11.2007
Сообщений: 392
По умолчанию

смотрел что шлет снифер - одни пост запросы. т.е страница с приложениями не приходит. почему?
DeDoK вне форума Ответить с цитированием
Старый 03.12.2009, 23:46   #13
DeDoK
Форумчанин
 
Аватар для DeDoK
 
Регистрация: 05.11.2007
Сообщений: 392
По умолчанию

блин( кто может реально помочь - стукните в асю плиз. в долгу не останусь(((
DeDoK вне форума Ответить с цитированием
Старый 04.12.2009, 09:29   #14
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
params.add('email=twix1124@rambler. ru');
params.Add('pass=bcgjkmpeqfynbxbn') ;
Зачем это?
Lime вне форума Ответить с цитированием
Старый 06.12.2009, 01:01   #15
AquaKlaster
Delphi,Python,PHP
Форумчанин
 
Аватар для AquaKlaster
 
Регистрация: 04.04.2009
Сообщений: 138
По умолчанию

Вот рабочий пример авторизации!
Дополнительная функция для парсинга
Код:
function Pars(T_, ForS, _T: string): string;
var
  a, b: integer;
begin
  Result := '';
  if (T_ = '') or (ForS = '') or (_T = '') then
    Exit;
  a := Pos(T_, ForS);
  if a = 0 then
    Exit
  else
    a := a + Length(T_);
  ForS := Copy(ForS, a, Length(ForS) - a + 1);
  b := Pos(_T, ForS);
  if b > 0 then
    Result := Copy(ForS, 1, b - 1);
end;
И сама функция для авторизации:
Код:
function TProgramThread.VKAuth(Login, Pass: string): Boolean;
var
  I: Integer;
begin
  try
    Post := TStringList.Create;
    Response := TStringList.Create;
    Post.Add('op=a_login_attempt');
    IdHTTP.Request.Referer := 'http://vkontakte.ru/index.php';
    IdHTTP.Request.CustomHeaders.Add('X-Requested-With: XMLHttpRequest');
    Response.Text := IdHTTP.Post('http://vkontakte.ru/login.php', Post);
    if Pos('vklogin', Response.Text) <> 0 then
    begin
      Post.Clear;
      Post.Add('email=' + Login);
      Post.Add('pass=' + Pass);
      Post.Add('expire=');
      Post.Add('vk=');
      IdHTTP.Request.Referer := 'http://vkontakte.ru/index.php';
      IdHTTP.Request.CustomHeaders.Clear;
      Response.Text := IdHTTP.Post('http://login.vk.com/?act=login', Post);
      Post.Clear;
      Post.Add('op=slogin');
      Post.Add('redirect=1');
      Post.Add('expire=0');
      Post.Add('to=');
      Post.Add('s=' + Pars('id=''s'' value=''', Response.Text, ''' />'));
      IdHTTP.Request.Referer := 'http://login.vk.com/?act=login';
      IdHTTP.Post('http://vkontakte.ru/login.php', Post);
    end;
    IdHTTP.Post('http://vkontakte.ru/login.php', Post);
    Response.Text := IdHTTP.Get('http://vkontakte.ru/');
    if Pos('logout', Response.Text) <> 0 then
    begin
      Form1.Log1.Lines.Add('Вошли под ' + Login);
      Result := True;
    end
    else
    begin
      Result := False;
      Form1.Log1.Lines.Add( 'Ошибка при входе на ' + Login);
    end;
  finally

  end;
end;
AquaKlaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку! junkie Паскаль, Turbo Pascal, PascalABC.NET 2 03.05.2009 14:22
помогите найти ошибку! Picaso18 Паскаль, Turbo Pascal, PascalABC.NET 3 24.01.2009 15:32
Помогите найти ошибку alex2008ean Паскаль, Turbo Pascal, PascalABC.NET 2 17.12.2008 15:43
Помогите найти ошибку Dmitriy Общие вопросы Delphi 4 01.08.2008 23:32
Помогите найти ошибку N!ckeL Общие вопросы Delphi 9 05.05.2008 14:15