Последняя версия DataExpress 3 beta от 1 сентября 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

Заполнение WEB форм на сайте

Все о том как сделать что-то с помощью скриптов.
Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 9 раз

Re: Заполнение WEB форм на сайте

Сообщение Гocть » Ср май 23, 2018 1:53 pm

Процедура завершает предыдущую авторизованную сессию (если она была) и открывает новую. Если открылась страница с залогиненным ящиком равным требуемому, то выход и повторная авторизация не выполняется.
Параметры: 1. email полностью, 2. пароль.

Код: Выделить всё

procedure Sleep(MS:Longint); external 'Sleep@kernel32.dll stdcall';

var IE,Login,Password,LoginButton,Rst,
PH_logoutLink,PH_user_email:variant;
S:string;

procedure MailRuAuth(EMail,Pass:string);
begin
if (EMail='') or (Pass='') then exit;
try
IE := CreateOleObject('InternetExplorer.Application');
IE.Navigate('https://mail.ru/');
Rst:=IE.ReadyState;
 while Rst <> 4 do
Rst:=IE.ReadyState;
  IE.Visible:=1;
  PH_user_email:=ie.document.getelementbyID('PH_user-email');
  PH_logoutLink:=ie.document.getelementbyID('PH_logoutLink');
  S:=PH_user_email.InnerHtml;
  if S = EMail then exit;
  if Pos('@',S)>0 then
  begin
    PH_logoutLink.Click(null);
    Sleep(1000); // как то так.
    IE.Refresh;
  end;
Rst:=IE.ReadyState;
while Rst <> 4 do
Rst:=IE.ReadyState;
  Login := IE.document.forms.auth.login;
  Login.Value:=EMail;
  Password := IE.document.forms.auth.password;
  Password.Value:=Pass;
  LoginButton:=ie.document.getelementbyID('mailbox:submit');
  LoginButton.Click(null);
  except;
    debug('Ошибка: '+ExceptionParam);
    IE.Quit;
    IE:=Unassigned;
  end;
end;     
Фрилансер. Разработка на заказ. Консультирование.

luxess
Интересующийся
Сообщения: 59
Зарегистрирован: Пт апр 22, 2016 3:51 pm
Поблагодарили: 1 раз

Re: Заполнение WEB форм на сайте

Сообщение luxess » Ср май 23, 2018 4:37 pm

Гocть писал(а):Процедура завершает предыдущую авторизованную сессию (если она была) и открывает новую. Если открылась страница с залогиненным ящиком равным требуемому, то выход и повторная авторизация не выполняется.
Параметры: 1. email полностью, 2. пароль.

Код: Выделить всё

procedure Sleep(MS:Longint); external 'Sleep@kernel32.dll stdcall';

var IE,Login,Password,LoginButton,Rst,
PH_logoutLink,PH_user_email:variant;
S:string;

procedure MailRuAuth(EMail,Pass:string);
begin
if (EMail='') or (Pass='') then exit;
try
IE := CreateOleObject('InternetExplorer.Application');
IE.Navigate('https://mail.ru/');
Rst:=IE.ReadyState;
 while Rst <> 4 do
Rst:=IE.ReadyState;
  IE.Visible:=1;
  PH_user_email:=ie.document.getelementbyID('PH_user-email');
  PH_logoutLink:=ie.document.getelementbyID('PH_logoutLink');
  S:=PH_user_email.InnerHtml;
  if S = EMail then exit;
  if Pos('@',S)>0 then
  begin
    PH_logoutLink.Click(null);
    Sleep(1000); // как то так.
    IE.Refresh;
  end;
Rst:=IE.ReadyState;
while Rst <> 4 do
Rst:=IE.ReadyState;
  Login := IE.document.forms.auth.login;
  Login.Value:=EMail;
  Password := IE.document.forms.auth.password;
  Password.Value:=Pass;
  LoginButton:=ie.document.getelementbyID('mailbox:submit');
  LoginButton.Click(null);
  except;
    debug('Ошибка: '+ExceptionParam);
    IE.Quit;
    IE:=Unassigned;
  end;
end;     



Все супер!!! Но только что с этим кодом дальше делать?
Копирую и вставляю в модуль формы через разработчика. Нажимаю на кнопку на форме, и ни чего... А все почему, потому что не понимаю куда в коде запихнуть те поля, из которых должны вытягиваться из программы данные в web форму.

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 9 раз

Re: Заполнение WEB форм на сайте

Сообщение Гocть » Ср май 23, 2018 4:43 pm

Если скинете базу и 500 р. на карту - я это сделаю за вас. ;)
Фрилансер. Разработка на заказ. Консультирование.

luxess
Интересующийся
Сообщения: 59
Зарегистрирован: Пт апр 22, 2016 3:51 pm
Поблагодарили: 1 раз

Re: Заполнение WEB форм на сайте

Сообщение luxess » Ср май 23, 2018 4:49 pm

Гocть писал(а):Если скинете базу и 500 р. на карту - я это сделаю за вас. ;)


Не стоит этот скрипт такого внимания. ;) ;) ;)

В предыдущий раз человек мне сделал подобное безвозмездно, за плюсик в карму... ))) Написал код, я только скопировал, и вставил. и все заработало. )))

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 9 раз

Re: Заполнение WEB форм на сайте

Сообщение Гocть » Ср май 23, 2018 4:59 pm

luxess писал(а):Не стоит этот скрипт такого внимания. ;) ;) ;)

Там вы писали то же самое. ("за плюсик в карму" в контексте почему то не заметно).
Вы здесь как и там сначала сообщаете что "очень нужно" а потом "не нужно". Уж определитесь что ли :) .

А с кармой у меня все в порядке (читайте подпись). Обращайтесь, если вдруг снова станет "нужно".
Фрилансер. Разработка на заказ. Консультирование.

luxess
Интересующийся
Сообщения: 59
Зарегистрирован: Пт апр 22, 2016 3:51 pm
Поблагодарили: 1 раз

Re: Заполнение WEB форм на сайте

Сообщение luxess » Ср май 23, 2018 5:13 pm

Там вы писали то же самое. ("за плюсик в карму" в контексте почему то не заметно).


В начале мне сделали что что просил, но далее был уже второй вопрос об усовершенствовании, но это усовершенствование мне в итоге и не понадобилось))) Обошелся)

Вы здесь как и там сначала сообщаете что "очень нужно" а потом "не нужно". Уж определитесь что ли :) .


Че то перехотелось..)))

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 9 раз

Re: Заполнение WEB форм на сайте

Сообщение Гocть » Ср май 23, 2018 5:30 pm

luxess, а чему вы удивляетесь?
Допустим, что "за плюсик в карман карму" я могу написать и выложить в свободный доступ функцию, которая будет востребована большинством. Но в данном случае на ваш (узкоспециализированный) скрипт, который никому кроме вас не нужен, я потратил свое личное время, так же как и предыдущий ваш помощник.
В этом нет ничего ужасного или обидного, что за подобное с вас могут попросить символическую компенсацию, привыкайте к тому, что функции "Калькулятор Для Иваныча" или "Смета Сергеича" на дороге не валяются.

Что касается усовершенствований: скрипт который я написал может сделать даже больше того, что вы спрашивали. Он сам входит и выходит и сам нажимает на кнопочки в нужный момент, а если его научить, он даже и другие задачи сможет выполнить. Но это, как писал предыдущий опонент, уже "другая история".
Фрилансер. Разработка на заказ. Консультирование.

cordek
Опытный
Сообщения: 357
Зарегистрирован: Вс май 14, 2017 2:53 pm
Благодарил (а): 43 раза
Поблагодарили: 4 раза

Re: Заполнение WEB форм на сайте

Сообщение cordek » Ср май 23, 2018 10:46 pm

У меня есть одна специфическая веб-форма, там двадцать полей, причём некоторые с выбором из списка. Сколько будет стоить скрипт, который переносит данные из формы Дата экспресс в эту специфическую форму?

Аватара пользователя
Гocть
Эксперт
Сообщения: 1586
Зарегистрирован: Пн ноя 27, 2017 8:02 am
Поблагодарили: 9 раз

Re: Заполнение WEB форм на сайте

Сообщение Гocть » Ср май 23, 2018 11:05 pm

cordek писал(а):есть одна специфическая веб-форма

Взглянуть возможно?
Фрилансер. Разработка на заказ. Консультирование.