![]() |
|
|
#1
|
|||
|
|||
|
ужно написать программу каторая будет авторизовываться на форуме
Но я незнаю как работать с куками... Вот что я написал,ноничего не работает...В ответ получаю страницу Ввода логина и пароля.. Помогите плз Код:
var
text:string;
CookMan: TidCookieManager;
begin
CookMan:=TidCookieManager.Create(IdHTTP1);
IdHTTP1.CookieManager := CookMan;
IdHTTP1.AllowCookies := True;
otpr:= TStringList.Create;
otpr.Add('referer=');
otpr.Add('UserName=тут логин');
otpr.Add('PassWord=тут пароль');
otpr.Add('CookieDate=1');
otpr.Add('submit=%C2%EE%E9%F2%E');
memo1.Text:=IdHTTP1.Post('http://forum.sources.ru/index.php?&act=Login&CODE=00', otpr);
end;Код:
var
text,text1:string;
all:integer;
CookMan: TidCookieManager;
begin
CookMan:=TidCookieManager.Create(IdHTTP1);
IdHTTP1.CookieManager := CookMan;
IdHTTP1.AllowCookies := True;
memo1.Text:= IdHTTP1.Get('http://forum.sources.ru/');
text:=copy(memo1.text,pos ('Login&',memo1.text)-41,32); // поиск S=....
memo1.Text:= IdHTTP1.Get('http://forum.sources.ru/index.php?s='+text+'&act=Login&CODE=00');
text:=copy(memo1.text,pos ('Login&',memo1.text)-41,32); // поиск S=....
otpr:= TStringList.Create;
otpr.Add('referer=');
otpr.Add('UserName=тут логин');
otpr.Add('PassWord=тут пароль');
otpr.Add('CookieDate=1');
otpr.Add('submit=%C2%EE%E9%F2%E');
memo1.Text:=IdHTTP1.Post('http://forum.sources.ru/index.php?s='+text+'&act=Login&CODE=00', otpr); |
|
#2
|
||||
|
||||
|
Цитата:
А точно логин и пароль передаются методом Post? может всё таки get |
|
#3
|
|||
|
|||
|
помойму Post...
ВОт пакет каторый передаёться Код:
POST http://forum.sources.ru/index.php? HTTP/1.0 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* Referer: http://forum.sources.ru/index.php? Accept-Language: ru Content-Type: application/x-www-form-urlencoded Proxy-Connection: Keep-Alive User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709); .NET CLR 1.1.4322) Host: forum.sources.ru Content-Length: 56 Pragma: no-cache Cookie: member_id=0; pass_hash=0; anonlogin=-1; session_id=21ac18f44182035110111172d10dea06 act=Login&CODE=01&CookieDate=1&UserName=***&PassWord=*** GET http://forum.sources.ru/index.php? HTTP/1.0 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* Referer: http://forum.sources.ru/index.php? Accept-Language: ru Proxy-Connection: Keep-Alive User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.8 (build 01709); .NET CLR 1.1.4322) Host: forum.sources.ru Pragma: no-cache Cookie: member_id=62537; pass_hash=9564ab8f27103567f1e135024261130e; anonlogin=-1; session_id=21ac18f44182035110111172d10dea06 |
|
#4
|
|||
|
|||
|
IdHTTP1 соеденил с IdCookieManager1
idHTTP1.HandleRedirects := true idHTTP1.AllowCookies:=true Вот что у меня получилось: [CODE=pas]var i:integer; text:string; otpr: TStringList; begin IdCookieManager1.cookieCollection.clear; memo1.Text:= IdHTTP1.Get('http://forum.sources.ru'); otpr:= TStringList.Create; otpr.Add('act=Login'); otpr.Add('CODE=01'); otpr.Add('CookieDate=1'); otpr.Add('UserName=8ka'); otpr.Add('PassWord=*****'); //otpr.Add('submit=ОК'); memo1.Text:=IdHTTP1.Post('http://forum.sources.ru/index.php?', otpr); for i:=0 to IdCookieManager1.cookieCollection.count-1 do memo2.lines.add(IdCookieManager1.cookieCollection. items[i].cookieText); //idHTTP1.disconnect; end;[/code] Вопрос: 1)В мемо2 вообще не появляються куки,почему? 2)когда пароль вписываю НЕ правильно - получаю ответ: "Пароль не правельный" А когда пароль подставляю правильный то в ответ получаю пустыю страницу... почему я получаю пустую страницу? Кто-нибудь может помочь? пс.. ПРобовал на другом форуме(phpBB) все работает...но на forum.sources.ru (IPB) ничего не работает..почему*? |