Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.03.2010, 10:00
fanlis fanlis вне форума
Прохожий
 
Регистрация: 02.03.2010
Сообщения: 11
Репутация: 10
Вопрос TWebbrowser, авторизация или как нажать кнопку

Здравствуйте. Перечитал много информации, ничего путного не нашел по своему случаю и понял что все случаи индивидуальны и зависят от реализации страницы.

Есть страничка авторизации, кусок кода из нее:

Код HTML:
<div class="content"> <h2><img class="png" src="/Skin/modern/images/global/bullet-green.png" width="28" height="27" alt="" /> Форма авторизации</h2> <div class="block"> <table align="center" class="registration"> <tr> <td align="center" class="form"> <form action="auth.php?action=doauth" method="post"> <table class="form-table"> <tr> <td class="label"><strong>Имя пользователя:</strong><br /><small>Не чувствительно к регистру</small></td> <td class="fields"><input type="text" name="username" size="30" /></td> </tr> <tr> <td class="label"><strong>Пароль:</strong><br /><small>Чувствителен к регистру</small></td> <td class="fields"><input type="password" name="password" size="30" /></td> </tr> <tr> <td class="label"><a href="reg.php">Не зарегистрированы?</a></td> <td class="fields"><a href="auth.php?action=forgot">Забыли пароль?</a></td> </tr> <tr class="group-start"> <td>&nbsp</td> <td> <input type="image" src="/Skin/modern/images/index/authorize-button.gif" name="submit" value="Авторизоваться" /> </td> </tr> </table> </form> </td> </tr> </table> </div> </form> </div>

Мне нужно программно авторизоваться. Я открываю эту страницу в компоненте Webbrowser. Программно ввожу туда имя пользователя и пароль, но никак не могу понять как нажать кнопку "Авторизоваться".
Кнопка, как я понял представлена кодом:
Код HTML:
<input type="image" src="/Skin/modern/images/index/authorize-button.gif" name="submit" value="Авторизоваться" />
Но у нее получается нет ссылки. И эта кнопка программно не находится. Я искал ее и по ссылке на картинку и по name="submit" и по value="Авторизоваться".
Главный вопрос: как нажать эту кнопку или, по-другому, как подтвердить авторизацию?
Не главный вопрос: В коде написано value="Авторизоваться", но когда я открываю страницу в браузере, там на кнопке написано "Войти в игру". Как так?
Ответить с цитированием
  #2  
Старый 18.03.2010, 11:22
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

И так по порядку:
1) Так как тут post запрос, то надо скорее всего делать через indy
Код:
IdHTTP1.Post('адрес сайта','пост параметры')
в ответ придет страница(код) который можно отобразить в браузере
2) А надпись "Войти в игру" это скорее всего картинка по адресу "/Skin/modern/images/index/authorize-button.gif"

если с первым не понятно, то могу скинуть примерчик (хотя на форуме тоже их хватает)
Ответить с цитированием
  #3  
Старый 19.03.2010, 08:53
fanlis fanlis вне форума
Прохожий
 
Регистрация: 02.03.2010
Сообщения: 11
Репутация: 10
По умолчанию

Цитата:
Сообщение от friz
если с первым не понятно, то могу скинуть примерчик (хотя на форуме тоже их хватает)

Ни столько "не понятно", сколько "я с этим не знаком", поэтому от примерчика не откажусь, скидывай:
fanlis@rambler.ru
Ответить с цитированием
  #4  
Старый 19.03.2010, 10:28
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

Кидаешь на форму кнопку и idHTTP (закладка indy client)
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
post:TStringList;
begin
post:=TStringList.Create;                     //формируем пост запрос
post.Add('vb_login_username=admin');   // вводим данные, у тебя что-то такое username=buben
post.Add('cookieuser=1');                    // данного поля вроде у тебя нету
post.Add('vb_login_password=qwerty'); // у тебя password=qqqqq
post.Add('submit=Вход');                    // submit=Авторизоваться

memo1.Text:=IdHTTP1.Post('http://www.delphisources.ru/',post); 
// первый параметр это сайт (твой сайт/auth.php?action=doauth), второй это наш пост запрос.
// если все гуд, то в мемо ты увидишь код страницы. Ну а код можно впихнуть в браузер
end;
Ответить с цитированием
  #5  
Старый 22.03.2010, 08:59
fanlis fanlis вне форума
Прохожий
 
Регистрация: 02.03.2010
Сообщения: 11
Репутация: 10
По умолчанию

Спасбо, в принцыпе все понятно, только непонятен результат. Впихиваю код из мемо в Webbrowser, у меня там получается та же страница авторизации, только со строчкой "не введено имя пользователя или пароль". Я так понимаю результат не достигнут..
Ответить с цитированием
  #6  
Старый 22.03.2010, 09:51
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

значит проблема в пост запросе, скорее всего передаются не те параметры
Ответить с цитированием
  #7  
Старый 22.03.2010, 10:01
fanlis fanlis вне форума
Прохожий
 
Регистрация: 02.03.2010
Сообщения: 11
Репутация: 10
По умолчанию

Ну так а что тогда делать? Как узнать какие параметры передаются?
P.S. Авторизоваться хорошо получается у оперы, когда пароль сохраняешь для данной страницы, потом кнопочку нажимаешь, она заполняет логин пароль и заходит. Прокатывает на любой странице, значит есть какой-то способ.
Ответить с цитированием
  #8  
Старый 23.03.2010, 09:32
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

скинь мне в личку ссылку на сайт, я посмотрю что там за параметры
Ответить с цитированием
  #9  
Старый 23.03.2010, 11:56
fanlis fanlis вне форума
Прохожий
 
Регистрация: 02.03.2010
Сообщения: 11
Репутация: 10
По умолчанию

скинул вроде сайт
Ответить с цитированием
  #10  
Старый 24.03.2010, 13:04
fanlis fanlis вне форума
Прохожий
 
Регистрация: 02.03.2010
Сообщения: 11
Репутация: 10
По умолчанию

Народ, ну подскажите как же мне все-таки авторизоваться на сайте?
Ответить с цитированием
  #11  
Старый 24.03.2010, 15:30
nazim_e nazim_e вне форума
Прохожий
 
Регистрация: 24.03.2010
Сообщения: 1
Репутация: 10
По умолчанию

IHTMLFormElement.submit;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:47.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter