|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
07.09.2007, 16:46 | #1 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 16
|
как залогиниться автоматом?
Кто надоумит как залогиниться на сайте? Те заходим на сайт при помощи TWebbrowser.navigate, видим форму логин - пароль. Отправка данных в форме через POST. Как программно залогиниться, чтоб в браузере аккаунт вышел?
Вставил такую бадягу: ______________________ tL := TStringList.Create; tL.Add('login={здесь логин}'); tL.Add('passw={здесь пароль}'); try s := IdHTTP1.Post('{здесь "action" из формы на сайте}',tL); finally tL.Free; end; Проходит без ошибок. А как на аккаут попасть не пойму. |
08.09.2007, 13:52 | #2 |
Пользователь
Регистрация: 04.07.2007
Сообщений: 76
|
TWebbrowser и IdHTTP используют разные Cookies ! TWebbrowser использует cookies те же что и IE. Заставить использовать его полученные с помощью idHTTP вроде никак.
http://wmhelpers.narod.ru/ - сайт программ, помогающими получить немного денег.
|
08.09.2007, 14:07 | #3 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,597
|
geget, кнопку кликнуть, что ли надо? юный спамер?
|
10.09.2007, 08:58 | #4 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 16
|
не верится, что в дельфи нет такой возможности
Насчёт кликов - хорошая мысль.... Только я такими вещами не занимаюсь . Так что, ни у кого нет соображений по поводу автологина? Не обязательно idHTTP использовать, может ещё какой вариант есть?
Кстати, насчёт Cookies - с трудом представляю себе принцип их действия, но если у TWebbrowser они те же, что и у IE, то в TWebbrowser должна быть процедура перехода по Cookies сформированным IE. Не подскажите какая? |
10.09.2007, 09:24 | #5 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
ну вот вам пример авторизации на сайте:
только нужно проанализировать html - код предварительно..Чтобі знать имена форм(тегов) в которіе вводятся значения.... var html_tagleVariant; i:integer; s:string; begin html_tag:=WebBrowser1.oleObject.Doc ument.forms.item(0).elements; for i:=0 to (html_tag.length -1) do begin s:='имя єлемента:' + html_tag.item(i).name + '| значение єлемента:' +html_tag.item(i).value + '| имя тега:' +html_tag.item(i).tagName+ '|Тип:' +html_tag.item(i).type; Memo1.lines.add(s); //анализируем теги if (html_tag.item(i).name = 'Имя тега(или формі)') then html_tag.item(i).value:='вводите логин'; if (html_tag.item(i).name = 'Имя тега(или формі)') then html_tag.item(i).value:='вводите пароль'; if (html_tag.item(i).value = 'Вход') then html_tag.item(i).click; end;
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Последний раз редактировалось Pitbull; 10.09.2007 в 09:27. |
10.09.2007, 09:46 | #6 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
для Post:
var tL: TStringList; response: TStringStream; begin end; response:=TstringStream.Create(''); tL := TStringList.Create; tL.Add('login=здесь логин'); // я оставил ваши значения, но они могут отличаться...Нужно знать насвание формі(тега) , отвечающие за данніе поля..... tL.Add('passw=здесь пароль'); try s := IdHTTP1.Post('адрес',tL,Response); // ответ сервера memo1.lines.text:=response.DataStri ng; finally tL.Free; response.free; dHTTP1.Disconnect; end; Ну а чтобі получать содержимое странички используй : memo2.lines.add(dHTTP1.get('адрес') ); или memo2.lines.add(dHTTP1.response.Res ponseText); ответ сервера: memo3.lines.add(dHTTP1.ResponseText )
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Последний раз редактировалось Pitbull; 10.09.2007 в 10:05. |
10.09.2007, 10:00 | #7 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
для cookie используй компонент со вкладки indy Misc
IdCookieManager. Потом в свойствах TIdHTTP устанавливаешь свойство CookieManager на idCookieManager1. begin IdCookieManager1.cookieCollection.c lear; idHTTP1.get(адрес); for i:=0 to idcookieCollection.count-1 do memo1.lines.add(IdCookieManager1.co okieCollection.items[i].cookieText); idHTTP1.disconnect; end;
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
10.09.2007, 10:03 | #8 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
только ж тут прикол есть, если использовать разніе версии delphi. в 6 версии используются Инди -компоненті 10-й версии, а в 7-й - 9-й версии.... Наверное ж и реализация там немного отличается...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
10.09.2007, 10:44 | #9 |
Пользователь
Регистрация: 07.09.2007
Сообщений: 16
|
Спасибо
Pitbull - спасибо, всё работает. Даже больше чем я ожидал.
|
10.09.2007, 12:04 | #10 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Надо вбивать автоматом данные | diznt | Помощь студентам | 8 | 21.08.2008 08:15 |
Как автоматом заполнить поле? | Stanislav | PHP | 4 | 09.03.2008 01:57 |
как автоматом обновить страницу? | proglamer | PHP | 11 | 25.02.2008 20:34 |