|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Авторизация в админке
Здравствуйте. Прошу помощи.
Есть админка интернет-магазина http://rusatribut.ru/simpla Пытался перехватить post запрос, но ничего не вышло. Вообще не понимаю, как с такой формой входа работать. В итоге решил делать через webbrowser. Открыть сайт и ввести данные в форму - пол беды. Вопрос вот в чем: как подставить логин и пароль из 2-ух edit'ов? Т.е чтобы я ввел логин и пароль в edit'ы, а потом при нажатии на кнопку "вход" эти данные автоматом подставились в форму и произошла авторизация. Спасибо заранее. Далее мне нужно будет переходить в админке по ссылкам и парсить информацию, поэтому авторизация нужна через то, что мне-новичку будет понятнее и правильнее с точки зрения программирования. |
#2
|
||||
|
||||
А где же ваш код чтобы править? Да ещё похоже не в тот раздел пост, под тырнет здесь есть отдельная ветка. Ну да ладно, каков вопрос, таков ответ:
Нажать кнопку можно так (при условии что она одна, если больше, то это совсем другая песня) Код:
... WebBrowser1.OleObject.Document.forms.item(0).elements.item(0).click; ... Код:
var item: variant; ... if (Webbrowser1.ReadyState and READYSTATE_INTERACTIVE) = 3 then begin item:= WebBrowser1.OleObject.Document.all.tags('Edit'); if (item.type = 'text') or (item.type = 'password') or (item.tagname = 'TEXTAREA') then item.Value:= Edit1.Text; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
На форме: Webbrowser, label, edit, button.
Вот обработчик кнопки входа. Код:
procedure TForm1.Button1Click(Sender: TObject); var document: IHTMLDocument2; begin WebBrowser1.Navigate(edit1.text+'/simpla'); while WebBrowser1.ReadyState<READYSTATE_COMPLETE do begin Application.ProcessMessages; end; document := WebBrowser1.Document as IHTMLDocument2; if (document<>nil) and (WebBrowser1.OleObject.Document.Title='Товары') then label1.caption:='Авторизовались' else label1.Caption:='Не авторизовались'; if label1.caption='Авторизовались' then form2.ShowModal; end; |
#4
|
||||
|
||||
форма входа лежит в document или это уже после авторизации? В смысле, до неё можно достучаться?
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
Так тогда выходит данные вам нужно передавать не в поля ввода, а сразу адресату - нужно отловить как это выглядит при отправке через стандартное оконце и по такому "шаблону" скидывать взад.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
Цитата:
|
#8
|
||||
|
||||
Хорошо, упрощю - данные вводятся когда на экране появляется форма входа, а их нужно передавать до её появления (чтоб её не видеть) - нужно смотреть, что уходит к сайту при отправке от формы входа, а иначе, логика подсказывает, никак.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
|||
|
|||
Цитата:
|
#10
|
||||
|
||||
Не, послать инфу с параметрами можно, например так
Код:
function GetPostParam(const PostData: OleVariant): string; var V: Variant; P: PChar; lb, hb, i: Integer; begin V:=Variant(TVarData(PostData).VPointer^); if VarIsArray(V) then begin P:=VarArrayLock(V); try lb := VarArrayLowBound(V, 1); hb := VarArrayHighBound(V, 1); SetString(Result, P, hb - lb + 1); for i := 1 to Length(Result) do if Result[i] = #0 then begin SetLength(Result, i - 1); Break; end; Exit; finally VarArrayUnlock(V); end; end; Result:= ''; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#11
|
|||
|
|||
Ох, блин, пол 5 утра.. Ничего не соображаю. Написал на форуме этого движка, авось знают, что там передают
Вернусь к этому позже. Спасибо! |
#12
|
|||
|
|||
Basic Access Authentication эта всплывающая форма.
|