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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2013, 21:00   #11
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Вот вариант на synapse (+старый idhttp на другой кнопке). Правда, я сам не понял, как его заставил работать
Вариант с synapse работает замечательно.
Теперь придётся разбираться с synapse. А то никогда не работал с ним.
Спасибо огромное за помощь.
_ZixeL_ вне форума Ответить с цитированием
Старый 11.01.2013, 22:05   #12
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Блин, ребят. Может кто-то сможет еще подсказать как это реализовать с idHTTP?
а то библиотека synapse немного не подходит. Да и нет времени его изучать(
_ZixeL_ вне форума Ответить с цитированием
Старый 11.01.2013, 22:38   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Попробуйте:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  s: TStringlist;
  k: integer;
  str: string;
begin
  s := TStringlist.Create;
  s.add('action=qaptcha');
  IdHTTP1.httpoptions := [];
  IdHTTP1.Get('http://rus-minecraft.ru/register/');
  IdHTTP1.Post('http://rus-minecraft.ru/index.php?qaptcha/post', s);
  s.Clear;
  s.add('username=' + Edit1.text + '&email=' + Edit2.text +
    '&password=1&password_confirm=1&dob_month=1&dob_day=1&dob_year=1990&gender=&timezone=Asia/Magadan&iQapTcha=&agree=1&_xfToken=');
  str := IdHTTP1.Post('http://rus-minecraft.ru/register/register', s);
  if Pos('class="baseHtml errors"', str) > 0 then
  begin
    k := Pos('class="baseHtml errors"', str) +
      length('class="baseHtml errors"');
    Delete(str, 1, k);
    k := Pos('</div>', str) - 1;
    showmessage(copy(str, 1, k));
  end
  else
    showmessage('OK');
  s.Free;
end;
Мне помогло в Delphi XE3.
Только могут быть проблемы со спецсимволами (их нужно кодировать).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.01.2013, 22:47   #14
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Мне помогло в Delphi XE3.
Только могут быть проблемы со спецсимволами (их нужно кодировать).
Всё та же ошибка
Почему у Вас работает, а у меня нет?
Может версия indy разная у нас?
_ZixeL_ вне форума Ответить с цитированием
Старый 11.01.2013, 22:59   #15
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Может версия indy разная у нас?
Может быть.
У меня и в Delphi 2010 и в Delphi XE3 стоит Indy 10 "из коробки" (сам не менял).

Update 23:15
Только что узнал, как посмотреть более точно версию:
Delphi 2010 - 10.5.5
Delphi XE3 - 10.5.9.0
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 11.01.2013 в 23:16.
BDA вне форума Ответить с цитированием
Старый 11.01.2013, 23:08   #16
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Может быть.
У меня и в Delphi 2010 и в Delphi XE3 стоит Indy 10 "из коробки" (сам не менял).
У меня 10.5.7 в Delphi XE 2011
_ZixeL_ вне форума Ответить с цитированием
Старый 12.01.2013, 17:34   #17
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Неужели никто больше не знает как решить проблему?
_ZixeL_ вне форума Ответить с цитированием
Старый 12.01.2013, 18:18   #18
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Всё, разобрался. Тему можно закрыть. Всем большое спасибо)
_ZixeL_ вне форума Ответить с цитированием
Старый 12.01.2013, 18:29   #19
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

А в чем оказалась причина? Интересно же.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 12.01.2013, 19:32   #20
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

При заходе на страницу регистрации, сервер выдавал xf_session. Потом с этим xf_session делаем ПОСТ запрос на каптчу, где каптча выдавала PHPSESSID.
Далее ПОСТ запрос на регистрацию должен был быть с PHPSESSID и xf_session. Но кукименеджер почему-то передавал только PHPSESSID.

В общем, не знаю правильно-ли это. Но всё работает)
Вот код:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
    regist:string;
    param, kaptcha:TStringList;
begin
param:=TStringList.Create;
kaptcha:=TStringList.Create;

try
  kaptcha.Values['action']:='qaptcha';
  idHTTP1.Post('http://rus-minecraft.ru/index.php?qaptcha/post', kaptcha);

  idHTTP1.Request.CustomHeaders.Add('Cookie: '+ IdCookieManager1.CookieCollection.Items[i].CookieText);
  idHTTP1.Request.UserAgent:='Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.11';
  idHTTP1.Request.Host:='rus-minecraft.ru';
  idHTTP1.Request.Accept:='text/html, */*';
  idHTTP1.Request.AcceptEncoding:='gzip, deflate';
  idHTTP1.Request.Connection:='Keep-Alive';
  idHTTP1.Request.ContentType:='application/x-www-form-urlencoded';

  param.Add('username=' + Edit1.text + '&email=' + Edit2.text + '&password='+ Edit3.Text + '&password_confirm='+ Edit3.Text+
  '&dob_month=1&dob_day=1&dob_year=1990&gender=&timezone=Asia/Magadan&iQapTcha=&agree=1&_xfToken=');

  regist:=idHTTP1.Post('http://rus-minecraft.ru/register/register', param);

finally
  param.Free;
  kaptcha.Free;
end;
_ZixeL_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не срабатывает яваскрипт на сохраненой странице cargo29 JavaScript, Ajax 2 12.12.2012 23:29
Где ошибка в Яваскрипт поиск простого числа? shavtan Помощь студентам 0 21.05.2011 13:10
Изменить меню на ЯваСкрипт Che Guevara JavaScript, Ajax 2 20.08.2010 17:25
Яваскрипт и selest (html) Winlook JavaScript, Ajax 1 11.03.2010 18:41
не работает яваскрипт в браузерах chrome-е и safari sdf JavaScript, Ajax 5 03.02.2009 01:23