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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2010, 17:38   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию Авторизация с капчей и без

На форме есть две кнопки, одна авторизируется без капчи, другая с капчей, от сюда вопрос, как сделать что бы одна кнопка отвечала за авторизацию с капчей и без неё, тоесть если нажал на кнопку, и если на сайте есть капча то дожидается её ввода нажал на кнопку принять и авторизировался, а если нету то сразу авторизируемся. Просто умственно осилить не могу как скрестить.
bulldog5293 вне форума Ответить с цитированием
Старый 22.08.2010, 20:27   #2
Terikon
Форумчанин
 
Регистрация: 22.02.2009
Сообщений: 174
По умолчанию

Делай get запрос на сайт и смотри если нет капчи то запускаеш первую функцию, если капча есть то вторую функцию.
Используй if then...else
Terikon вне форума Ответить с цитированием
Старый 22.08.2010, 21:53   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

А можно хотя бы не большой пример, что бы понять куда if then...else засунуть
bulldog5293 вне форума Ответить с цитированием
Старый 22.08.2010, 22:03   #4
kardinal94
Форумчанин
 
Аватар для kardinal94
 
Регистрация: 26.04.2010
Сообщений: 105
По умолчанию

Лично я сделал бы по тупому.
Получал бы код с помощью idHTTP
Код:
var s:string;
begin
s:=Idhttp.Get('URL');
If pos('Какая то часть кода, которая есть только при наличии на странице каптчи', s)>0 then
Begin
//Тут часть кода, которая отвечает за авторизацию с каптчей.
else
//тут та часть, которая без каптчи.
Ну я в Delphi 0000. Но лично я сделал бы так
kardinal94 вне форума Ответить с цитированием
Старый 23.08.2010, 12:57   #5
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Впринцепе так правельно, но выдаёт ошибку, сделал так:
Код:
procedure TForm10.Button1Click(Sender: TObject);
var
img: TMemoryStream;
png: TPNGObject;
s:string;
begin
s:=Idhttp1.Get('http://www.sayt.ru/login.php');
If pos('logincap.php', s)>0 then
try///менял на begin, тоже самое
IdHTTP1.Get('http://sayt.ru');
img:=TMemoryStream.Create;
IdHTTP1.Get('http://sayt.ru/logincap.php',img);
img.Position:=0;
png:= TPNGObject.Create;
png.LoadFromStream(img);
image1.Picture.Assign(png);
png.Free;
img.Free;
else///ошибка приводит сюда
Idhttp.Get('nemovera2.ucoz.ru')///на тот случай если не удалось,   
///переправляю на свой сайт
end;
Исправил так:
Код:
procedure TForm10.Button1Click(Sender: TObject);
var
img: TMemoryStream;
png: TPNGObject;
s:string;
begin
s:=Idhttp1.Get('http://www.sayt.ru/login.php');
If pos('logincap.php', s)>0 then
else
IdHTTP1.Get('http://sayt.ru');
img:=TMemoryStream.Create;
IdHTTP1.Get('http://sayt.ru/logincap.php',img);
img.Position:=0;
png:= TPNGObject.Create;
png.LoadFromStream(img);
image1.Picture.Assign(png);
png.Free;
img.Free;
begin
Idhttp1.Get('http://nemovera2.ucoz.ru')
end;
end;
Но всё равно, если даже капча есть, то заходит потом на другой сайт, который объявил в конце, но как же всё таки сделать исключение есть ли капча или нет

Последний раз редактировалось bulldog5293; 23.08.2010 в 13:21.
bulldog5293 вне форума Ответить с цитированием
Старый 23.08.2010, 17:29   #6
Terikon
Форумчанин
 
Регистрация: 22.02.2009
Сообщений: 174
По умолчанию

Код:
procedure TForm1.btn1Click(Sender: TObject);
var
img: TMemoryStream;
png: TPNGObject;
s:string;
begin
s:=idhtp1.Get('http://www.sayt.ru/login.php');
If pos('logincap.php', s)>0 then begin
idhtp1.Get('http://sayt.ru');
img:=TMemoryStream.Create;
idhtp1.Get('http://sayt.ru/logincap.php',img);
img.Position:=0;
png:= TPNGObject.Create;
png.LoadFromStream(img);
img1.Picture.Assign(png);
png.Free;
img.Free;
end
else
idhtp1.Get('nemovera2.ucoz.ru')
end;
end.
Terikon вне форума Ответить с цитированием
Старый 23.08.2010, 17:54   #7
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Спасибо Terikon, только я сделал чуть чуть по другому
bulldog5293 вне форума Ответить с цитированием
Старый 24.08.2010, 18:09   #8
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Последний вопрос, модеры и админы не ругайтесь и не закрывайте тему, правильно ли я понял, что если авторизация проходит с капчей то в месте с капчей передаются логин и пас, если без то просто логин и пас, если всё же прав то капчи нету, как тогда не передавать что капча пуста
bulldog5293 вне форума Ответить с цитированием
Старый 24.08.2010, 18:36   #9
JDredd
Пользователь
 
Регистрация: 07.08.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от bulldog5293 Посмотреть сообщение
Последний вопрос, модеры и админы не ругайтесь и не закрывайте тему, правильно ли я понял, что если авторизация проходит с капчей то в месте с капчей передаются логин и пас, если без то просто логин и пас, если всё же прав то капчи нету, как тогда не передавать что капча пуста
могут еще быть скрытые поля, надо смотреть хтмл код
JDredd вне форума Ответить с цитированием
Старый 24.08.2010, 18:43   #10
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Полей скрытых нет, я хочу разобраться просто как правельней передавать капчу с логином и пассом, или логин и пасс без капчи.
просто если авторизация с капче, то передаётся вместе с логином и пассом капча, а если без капчи то её не передаёш, вот это только не понятно осталось, в гугле не нашёл, тоесть скрещённого примера

Последний раз редактировалось bulldog5293; 24.08.2010 в 18:46.
bulldog5293 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает повторная авторизация без WebBrowser1.Destroy Alamo Работа с сетью в Delphi 0 12.08.2010 13:33
Регистрация/авторизация пользователей при помощи PHP, без использования MySQL. Web-Gangsta PHP 30 03.05.2009 18:32
Авторизация по IdHTTP без имени компонента tuftel Работа с сетью в Delphi 11 17.03.2009 04:20
НУЖЕН ПРОГРАММИСТ для написания ПО по распознованию капчей pro_ccx Фриланс 1 31.05.2008 11:37