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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2013, 16:01   #1
andrey444430
Пользователь
 
Регистрация: 24.04.2013
Сообщений: 11
По умолчанию

В общем, необходимо сделать авторизацию тут http://samp-rp.ru/Аккаунт
Вроде все делаю правильно, но все ровно не авторизирует. Сделал ручной ввод капчи.
Вот код :
Код:
procedure TForm2.Button1Click(Sender: TObject);
var
ms:tmemorystream;
http: TIdHttp;
s:string;
post:string;
html:string;
begin

  ms := TMemoryStream.Create;
 Gif := TGifImage.Create;

try
http := TIdHTTP.Create(nil);

Http.Request.UserAgent:='Opera/9.80 (Windows NT 6.1; MRA 8.0 (build 5977)) Presto/2.12.388 Version/12.15';
 Http.Request.Accept:='text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
 Http.Request.AcceptLanguage:='ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3';
 HTTP.Request.AcceptEncoding:='gzip,deflate';
 Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
    Gif.Animate := True;
    Gif.AnimateLoop := glEnabled;
html2:=http.Post('http://samp-rp.ru/%D0%90%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82', postdata);
showmessage(html2);

   captcha_md5:=copy(html2, pos('Защитный код', html2), pos('login_right', html2)-1);
    delete(captcha_md5,1,10);
   captcha_md5:=copy(captcha_md5, 1, pos('login_right', captcha_md5)-2);
   captcha_md5:=copy(captcha_md5, pos('img src', captcha_md5), pos('/td', captcha_md5)-14);
   delete(captcha_md5,1,16);

    memo1.Lines.Add(captcha_md5);
http.Get('http://samp-rp.ru/%D0%9A%D0%B0%D0%BF%D1%87%D0%B0/'+captcha_md5, ms);
    ms.Position := 0;
    gif.LoadFromStream(ms);
    Image1.Picture.Graphic := gif;
  s:=InputBox('Ввод','ввод текста','');
 PostData:=TStringList.Create;
PostData.Clear;
PostData.Add('login=мой логин');
PostData.Add('password=мой пароль');
PostData.Add('server=05');
PostData.Add('captcha='+s);
PostData.Add('captcha_md5='+captcha_md5);
PostData.Add('authorization=%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F');

html2:=http.Post('http://samp-rp.ru/%D0%90%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82',PostData);

PostData.Free;
showmessage(html2);
except

end;
end;
P.S. пропарсил свою программу. Она отправляет такой же запрос, что и браузер, только капча другая. Но почему-то в браузере все норм, а тут не норм :С

Последний раз редактировалось Stilet; 09.05.2013 в 18:20.
andrey444430 вне форума Ответить с цитированием
Старый 09.05.2013, 16:34   #2
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Цитата:
Сообщение от andrey444430 Посмотреть сообщение
P.S. пропарсил свою программу. Она отправляет такой же запрос, что и браузер, только капча другая. Но почему-то в браузере все норм, а тут не норм :С
А вы посмотрите, какие пакеты потом посылает браузер и ваша программа. Наверняка поймёте в чём ошибка.
Kix.IV вне форума Ответить с цитированием
Старый 09.05.2013, 16:42   #3
andrey444430
Пользователь
 
Регистрация: 24.04.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Kix.IV Посмотреть сообщение
А вы посмотрите, какие пакеты потом посылает браузер и ваша программа. Наверняка поймёте в чём ошибка.
Да вроде такие же..

кажется понял. В том посте, что отправляет браузер есть куки, а программка отправляет без куки. Как быть?

Последний раз редактировалось Stilet; 09.05.2013 в 18:21.
andrey444430 вне форума Ответить с цитированием
Старый 09.05.2013, 18:07   #4
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Точнее ваша программа вовсе не работает с куками.
В Indy есть компонент для работы с кукисами, используйте его.
Kix.IV вне форума Ответить с цитированием
Старый 10.05.2013, 08:06   #5
andrey444430
Пользователь
 
Регистрация: 24.04.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Kix.IV Посмотреть сообщение
Точнее ваша программа вовсе не работает с куками.
В Indy есть компонент для работы с кукисами, используйте его.
Добавил куки, теперь он получает их, но только
"PHPSESSID",
а "__utma", "__utmb", "__utmс", "__utmz", "_ym_visorc" не получает. Как быть?

P.S. через гугл хром и оперу такие отправляет куки, а IE отправляет такие же куки, как и программа, но через IE ошибка при авторизации, а опера и гугл нормально авторизуют. Скорее всего в куки проблемма.. Что думаете?
andrey444430 вне форума Ответить с цитированием
Старый 10.05.2013, 10:39   #6
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

На сайте могут использоваться скрипты. Вообще причины могут быть разные.
Посмотрите сниффером запросы вашей программы и оперы. Попытайтесь добиться максимальной схожести.
Kix.IV вне форума Ответить с цитированием
Старый 10.05.2013, 10:48   #7
andrey444430
Пользователь
 
Регистрация: 24.04.2013
Сообщений: 11
По умолчанию

Браузер:
Код:
(Request-Line):POST /%D0%90%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82 HTTP/1.1
User-Agent:Opera/9.80 (Windows NT 6.1; MRA 8.0 (build 5977)) Presto/2.12.388 Version/12.15
Host:samp-rp.ru
Accept:text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language:ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding:gzip, deflate
Referer:http://samp-rp.ru/%D0%90%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82
Cookie:PHPSESSID=i3p057un0qe84m9vshl18s3oh3; _ym_visorc=b; __utma=142386992.1866150064.1365762513.1368156052.1368167942.16; __utmb=142386992.2.10.1368167942; __utmc=142386992; __utmz=142386992.1365762513.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Connection:Keep-Alive
Content-Length:158
Content-Type:application/x-www-form-urlencoded
Пост запрос:
Код:
login           логин 
password        пароль       
server          05             
captcha         8668           
captcha_md5     8134           
authorization   Авторизация
Программа:
Код:
(Request-Line):POST /%D0%90%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82 HTTP/1.0
Connection:keep-alive
Content-Type:application/x-www-form-urlencoded
Content-Length:158
Host:samp-rp.ru
Accept:text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Encoding:gzip, deflate, identity
Accept-Language:ru-RU,ru;q=0.9,en;q=0.8
Referer:http://samp-rp.ru/%D0%90%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82
User-Agent:Opera/9.80 (Windows NT 6.1; MRA 8.0 (build 5977)) Presto/2.12.388 Version/12.15
Cookie:PHPSESSID=djjf108g9fuob60b0d01397k26
Пост:
Код:
login           логин 
password        пароль       
server          05             
captcha         1295           
captcha_md5     9346           
authorization   Авторизация
andrey444430 вне форума Ответить с цитированием
Старый 10.05.2013, 10:50   #8
andrey444430
Пользователь
 
Регистрация: 24.04.2013
Сообщений: 11
По умолчанию

Вроде и так все нормально..
andrey444430 вне форума Ответить с цитированием
Старый 10.05.2013, 10:51   #9
andrey444430
Пользователь
 
Регистрация: 24.04.2013
Сообщений: 11
По умолчанию

Разве что в программа HTTP/1.0, а в браузере 1.1, хотя в настройках idhttp1 я ставил pr1.1
andrey444430 вне форума Ответить с цитированием
Старый 10.05.2013, 10:55   #10
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

Я имел в виду не первый запрос. Смотрите, что посылает после этого бразуер и ваша программа.
Кстати, эти запросы не совпадают.
Kix.IV вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация на сайте Florento Фриланс 3 25.11.2012 20:58
Авторизация на сайте rosljk Работа с сетью в Delphi 134 19.05.2012 11:12
Авторизация на сайте DemetrioN Работа с сетью в Delphi 6 07.04.2012 10:20
Авторизация на сайте record222 Работа с сетью в Delphi 12 01.01.2011 00:17
Авторизация на сайте MultiBit Работа с сетью в Delphi 6 13.03.2009 18:45