Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2011, 14:07   #1
hoolio_g
Пользователь
 
Регистрация: 06.03.2009
Сообщений: 12
По умолчанию Логин на сайт

Здравствуйте


Нужно сделать прогу для залогивания на сайте (логин и пасс). При заполнении значений логина и пароля чтоб инфа отсылалась на сайт в форму ввода и логинилось бы на нем.

Я пробовал и через компонент IdHTTP и через WebBrowser. Никак не получается.

Отследил через исходный код сайта. что логин - это user, пароль - passwrd.



вот код через IdHTTP

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  tL: TStringList;
  s: String;
begin
   tL := TStringList.Create;
  tL.Add('user=мой_логин');
  tL.Add('passwrd=мой_пароль');
  try
    s := IdHTTP1.Post('http://www.pes6j.net/forum/login2/',tL);
   memo1.lines.add(idHTTP1.get('http://www.pes6j.net/forum/') );
  finally
    tL.Free;
end;
end;
вот через браузер

Код:
procedure TForm1.Button3Click(Sender: TObject);
var
  ovElements: OleVariant;
  i: Integer;
begin
   ovElements := WebBrowser1.OleObject.Document.Forms.Item( 0 ).Elements;
   for i := 0 to ( ovElements.Length-1 ) do
   begin
      // Вставляем логин
      if ( AnsiUpperCase( ovElements.Item( i ).tagName ) = 'INPUT' ) then
            if ( ovElements.item( i ).name = 'user' ) then
               ovElements.Item( i ).Value := 'мой_логин';

      // Вставляем логин
      if ( AnsiUpperCase( ovElements.Item( i ).tagName ) = 'INPUT' ) then
            if ( ovElements.item( i ).name = 'passwrd' ) then
               ovElements.Item( i ).Value := 'мой_пароль';

      // Жмем на кнопку
      if ( AnsiUpperCase( ovElements.Item( i ).tagName ) = 'INPUT' ) then
         if ( AnsiUpperCase( ovElements.Item( i ).type ) = 'SUBMIT' )  then
            if ( AnsiUpperCase( ovElements.item( i ).Value ) = 'Login' ) then
                ovElements.Item( i ).Click;

   end;
end;
Вставлять то вставляет, только кнопка не нажимается программно.
hoolio_g вне форума Ответить с цитированием
Старый 07.01.2011, 16:06   #2
dharma
Пользователь
 
Аватар для dharma
 
Регистрация: 03.01.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от hoolio_g Посмотреть сообщение

вот код через IdHTTP

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  tL: TStringList;
  s: String;
begin
   tL := TStringList.Create;
  tL.Add('user=мой_логин');
  tL.Add('passwrd=мой_пароль');
  try
    s := IdHTTP1.Post('http://www.pes6j.net/forum/login2/',tL);
   memo1.lines.add(idHTTP1.get('http://www.pes6j.net/forum/') );
  finally
    tL.Free;
end;
end;
Помоему вы передаёте не все параметры. Вот более менее правильный код:

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  tL: TStringList;
  s: String;
begin
   tL := TStringList.Create;
  tL.Add('user=мой_логин');
  tL.Add('passwrd=мой_пароль');
  tL.Add('cookielength=60');
  tL.Add('hash_passwrd=');
  try
    s := IdHTTP1.Post('http://www.pes6j.net/forum/login2/',tL);
   memo1.lines.add(idHTTP1.get('http://www.pes6j.net/forum/') );
  finally
    tL.Free;
end;
end;
dharma вне форума Ответить с цитированием
Старый 07.01.2011, 18:12   #3
hoolio_g
Пользователь
 
Регистрация: 06.03.2009
Сообщений: 12
По умолчанию

Проблема не решилась
hoolio_g вне форума Ответить с цитированием
Старый 11.01.2011, 10:03   #4
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

1. Оооочень внимательно посмотреть в код страницы? Вы точно умерены, что пост запрос надо слать именно на http://www.pes6j.net/forum/login2/ и только логин с паролем отправлять??? Лично я совсем в этом не уверен. По событиу сабмита вызывается явовская функция еще и с хэшем.
2. на будущее, если пытаетесь делать авторизацию, да и вообще вормирувку POST запросов, ставьте снифер и пользуйте его. Сразу масса вопросов снимается, или возникает, это уж как повезет
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 11.01.2011, 13:44   #5
hoolio_g
Пользователь
 
Регистрация: 06.03.2009
Сообщений: 12
По умолчанию

Сделал с помощью webbrowser. Конечно коряво, но что уж поделать. А с помощью сниффера отслеживать все что отправляется и принимается? Тогда подскажите на свое усмотрение какой снифер для ньюби будет оптимальным
hoolio_g вне форума Ответить с цитированием
Старый 11.01.2011, 16:19   #6
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

на мой взгляд HttpAnalyzer, но это мое личное мнение.
А на вэббраузере - не знаю, может у меня руки такие кривые, но вообще устойчивой работы от него не добился.
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 11.01.2011, 22:30   #7
Aleksandr69
Пользователь
 
Регистрация: 11.12.2010
Сообщений: 71
По умолчанию

charles можно еще попробывать
Aleksandr69 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Логин и пароль serega112000 Помощь студентам 3 03.02.2010 16:22
Логин пользователя Мэс Общие вопросы Delphi 5 05.10.2009 22:07
"Логин" на сайт Sergey2 Работа с сетью в Delphi 13 29.07.2009 02:03
логин и пароль All517 Работа с сетью в Delphi 3 15.01.2009 15:46
изменить логин ERASERROR О форуме и сайтах клуба 5 23.02.2008 08:11