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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2012, 19:08   #1
Mrsqler
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 146
По умолчанию Vk массовая авторизация

Всем привет!Имеется код для авторизации вконтакте:
Код:
var
 PageProfile:string;

 begin
   if edit1.Text='' then messagebox(0,'Введите ваш E-mail','Vk_Infromer',MB_OK or MB_ICONINFORMATION)
       else
      if edit2.Text='' then messagebox(0,'Введите пароль!','Vk_Infromer',MB_OK or MB_ICONINFORMATION)
      else
 begin
  TidCookieManager.Create(IdHTTP1);
   IdHTTP1.Request.Host:='m.vkontakte.ru';
   IdHTTP1.Request.UserAgent:='Mozila/5.0 (Windows; U; Windows NT 5.1; com; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
   IdHTTP1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
   IdHTTP1.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
   IdHTTP1.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
   IdHTTP1.AllowCookies:=true;
   IdHTTP1.HandleRedirects:=true;
try
  PageProfile:=IdHTTP1.get('http://vkontakte.ru/login.php?email='+ListBox1.Items[0]+'&pass='+ListBox1.Items[1]);
  PageProfile:=IdHTTP1.get('http://vkontakte.ru/login.php?email='+ListBox1.Items[2]+'&pass='+ListBox1.Items[3]);

except
end;
 if Pos('logout', PageProfile)<>0 then
     begin
      messagebox(0,'Авторизация прошла успешно!','Vk_Infromer',MB_OK or MB_ICONINFORMATION);
     end
 else
   begin

    messagebox(0,'Авторизация не удалась!Попробуйте снова.','Vk_Infromer|Ошибка!',MB_OK or MB_ICONERROR);
   end;
 end;
   end;
Если авторизывывать один аккаунт,то всё работает,а как быть с двумя,или даже с 3-мя аккаунтами?
Добавить еще одну строчку?
Код:
PageProfile:=IdHTTP1.get('http://vkontakte.ru/login.php?email='+ListBox1.Items[2]+'&pass='+ListBox1.Items[3]);
Или же как-то по другому?
Mrsqler вне форума Ответить с цитированием
Старый 02.07.2012, 19:20   #2
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Вынести код авторизации в процедуру и вызывать в цыкле, также проверять капчу(а она там быть), следить за выделенную память под обьекты(см.
Код:
TidCookieManager.Create(IdHTTP1);
).
Delphi_ProGer вне форума Ответить с цитированием
Старый 02.07.2012, 19:52   #3
Mrsqler
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 146
По умолчанию

А как же я буду добавлять логин и пароль в ссылку?Если весь код в процедуре будет?
Mrsqler вне форума Ответить с цитированием
Старый 02.07.2012, 19:59   #4
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

а в процедуре параметров разве нет?
Pein95 вне форума Ответить с цитированием
Старый 02.07.2012, 22:17   #5
Mrsqler
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 146
По умолчанию

Можете помочь с процедурой?) Через out можно объявить выходные параметры.У меня в это объект ListBox.Но я его похоже как-то не правильно объявил
Код:
Procedure Autorisation(PageProfile:string;out ListBox1.Items[0],ListBox1.Items[1]:string );
var
IdHTTP1: TIdHTTP;

Edit1: TEdit;
Edit2: TEdit;
 begin
   if edit1.Text='' then messagebox(0,'Введите ваш E-mail','Vk_Infromer',MB_OK or MB_ICONINFORMATION)
       else
      if edit2.Text='' then messagebox(0,'Введите пароль!','Vk_Infromer',MB_OK or MB_ICONINFORMATION)
      else
 begin
  TidCookieManager.Create(IdHTTP1);
   IdHTTP1.Request.Host:='m.vkontakte.ru';
   IdHTTP1.Request.UserAgent:='Mozila/5.0 (Windows; U; Windows NT 5.1; com; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
   IdHTTP1.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
   IdHTTP1.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
   IdHTTP1.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
   IdHTTP1.AllowCookies:=true;
   IdHTTP1.HandleRedirects:=true;
try
  PageProfile:=IdHTTP1.get('http://vkontakte.ru/login.php?email='+ListBox1.Items[0]+'&pass='+ListBox1.Items[1]);
  PageProfile:=IdHTTP1.get('http://vkontakte.ru/login.php?email='+ListBox1.Items[2]+'&pass='+ListBox1.Items[3]);

except
end;
 if Pos('logout', PageProfile)<>0 then
     begin
      messagebox(0,'Авторизация прошла успешно!','Vk_Infromer',MB_OK or MB_ICONINFORMATION);
     end
 else
   begin

    messagebox(0,'Авторизация не удалась!Попробуйте снова.','Vk_Infromer|Ошибка!',MB_OK or MB_ICONERROR);
   end;
 end;
   end;
Mrsqler вне форума Ответить с цитированием
Старый 02.07.2012, 23:33   #6
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

У меня ещо вопрос к вам) Вам нужно авторизировать одновременно несколько пользователей или по-очереди?
Pein95 вне форума Ответить с цитированием
Старый 03.07.2012, 07:27   #7
Mrsqler
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 146
По умолчанию

Одновременно несколько пользователей,а что?)
Mrsqler вне форума Ответить с цитированием
Старый 03.07.2012, 07:30   #8
QunneD
C++ &amp;amp; PHP &amp;amp; Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

Используйте потоки, плюс работа в цикле, и собственно будет Вам счастье.
QunneD вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массовая email рассылка. Selectra Помощь студентам 2 12.07.2011 14:33
массовая рассылка RUSlan48 Работа с сетью в Delphi 2 24.03.2011 23:10
Обычная авторизация или авторизация на уровне браузера? calugin Безопасность, Шифрование 0 13.01.2011 00:34
Массовая замена Rossoman Microsoft Office Word 12 14.05.2010 00:32