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

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

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

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

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

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

Всем привет. Опять у меня вопрос(
К сожалению, нигде решение не нашёл. В общем, на сайте есть яваскрипт, а-ля каптча.



Отправляет пост запрос




Подскажите пожалуйста, каким методом можно обойти?
Пробовал послать такой же пост запрос, от сервера получал добро. Но, после пост запроса на регистрацию - сервер выдал ошибку, мол каптчу не прошёл должным образом.

Спасибо.
_ZixeL_ вне форума Ответить с цитированием
Старый 11.01.2013, 17:50   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Спокойно зарегистрировался.
Код:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdCookieManager, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP;

type
  TForm2 = class(TForm)
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    IdCookieManager1: TIdCookieManager;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
  s: TStringList;
begin
  s := TStringList.Create;
  s.Add('action=qaptcha');
  IdHTTP1.Get('http://rus-minecraft.ru/register/');
  IdHTTP1.Post('http://rus-minecraft.ru/index.php?qaptcha/post', s);
  s.Clear;
  s.Add('username=12342&email=3@mail.ru&password=1&password_confirm=1&dob_month=1&dob_day=1&dob_year=1990&gender=&timezone=Asia/Magadan&iQapTcha=&agree=1&_xfToken=');
  Memo1.Text := IdHTTP1.Post('http://rus-minecraft.ru/register/register', s);
  Memo1.Lines.SaveToFile('1.html');
  s.Free;
end;

end.
Подключите cookiemanager к idhttp.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 11.01.2013, 18:26   #3
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

К сожалению, у меня почему-то не работает.

Код:
<h3 class="errorHeading">Пожалуйста, исправьте следующие ошибки:</h3>
			<div class="baseHtml errors">
				<ol>
				
					<li>Вы не прошли проверку CAPTCHA должным образом. Пожалуйста, попробуйте ещё раз.</li>
cookiemanager подключил.
_ZixeL_ вне форума Ответить с цитированием
Старый 11.01.2013, 18:41   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Может быть indy виноват? Проверьте Charles-ом, что пост запросы идут с cookies.

Еще 1 вариант (работает в Delphi 2010):
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdCookieManager, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, strutils;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    IdCookieManager1: TIdCookieManager;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  s: TStringList;
  k: integer;
  str: string;
begin
  s := TStringList.Create;
  s.Add('action=qaptcha');
  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;

end.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 11.01.2013, 18:49   #5
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Кукисы передаются. Но опять же, ошибка



Так же пробовал полностью передать Request headers. И куки подставлял вручную даже. Всё ровно всё та же ошибка.
Юзаю Делфи ХЕ
Может залейте работающий проэкт куда-то? Может я что-то не так делаю.

Последний раз редактировалось _ZixeL_; 11.01.2013 в 18:56.
_ZixeL_ вне форума Ответить с цитированием
Старый 11.01.2013, 19:02   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Да, вот проект.
Вот из-за таких вот странных проблем потихоньку переползаю на synapse.
Вложения
Тип файла: zip регер.zip (600.8 Кб, 7 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 11.01.2013, 19:23   #7
_ZixeL_
Форумчанин
 
Регистрация: 04.11.2012
Сообщений: 151
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Да, вот проект.
Вот из-за таких вот странных проблем потихоньку переползаю на synapse.

Жаль, но и в Вашем проекте та же ошибка. Странно как-то.

Последний раз редактировалось _ZixeL_; 11.01.2013 в 19:26.
_ZixeL_ вне форума Ответить с цитированием
Старый 11.01.2013, 19:26   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Ой, удалите настройки прокси.
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  IdHTTP1.ProxyParams.ProxyPort := 8888;
  IdHTTP1.ProxyParams.ProxyServer := '127.0.0.1';
end;
Цитата:
Жаль, но и в Вашем проекте та же ошибка. Странно как-то.
Ну а ехешник работает? Если да, то виновата Indy, имхо.
Вложения
Тип файла: zip регер.zip (599.9 Кб, 7 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

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

Цитата:
Сообщение от BDA Посмотреть сообщение
Ой, удалите настройки прокси.
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  IdHTTP1.ProxyParams.ProxyPort := 8888;
  IdHTTP1.ProxyParams.ProxyServer := '127.0.0.1';
end;
Да, удалил.
Цитата:
Сообщение от BDA Посмотреть сообщение
Ну а ехешник работает? Если да, то виновата Indy, имхо.
и ехешник не работает.
_ZixeL_ вне форума Ответить с цитированием
Старый 11.01.2013, 20:47   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Вот вариант на synapse (+старый idhttp на другой кнопке). Правда, я сам не понял, как его заставил работать
Вложения
Тип файла: zip регер.zip (1.26 Мб, 10 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 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