Автозаполнение формы

Модератор: Модераторы разделов

Аватара пользователя
turun
Сообщения: 117
ОС: CENTOS5.4

Автозаполнение формы

Сообщение turun »

Есть Html-страничка как автоматически вводить данные в форму и нажать на кнопку???
<HTML>
<HEAD>
<TITLE>Просмотр баланса</TITLE>
<link href="/style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</HEAD>
<body >
<center><b><h3>Просмотр баланса</h3></b></center>
<BR>
<BR>
Введите логин и пароль от вашего текущего соединения:
<form method="post" action="https://nn.db.ertelecom.ru/cgi-bin/ppo/es_webface/balance_view.now" name="bal_enter">
<PRE>
Логин: <INPUT type="text" name="login$c" size="20" maxlength="60" value=""><br>Пароль: <INPUT type="password" name="password$c" size="20" maxlength="60"><br>
<INPUT TYPE="submit" VALUE="Вход">
</PRE>
</FORM>
</BODY>
</HTML>
<!-- from cache -->
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Автозаполнение формы

Сообщение eddy »

Так воткните ее iframe'ом в свою страничку, и на JS заполняйте (document.frames['ваш_фрейм'].GetElementsByName('login$c').value="значение"...), потом форме делаете submit: document.frames['ваш_фрейм'].forms['bal_enter'].submit(), чего сложного-то?
Могу допускать ошибки, пишу примерно и по памяти.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
turun
Сообщения: 117
ОС: CENTOS5.4

Re: Автозаполнение формы

Сообщение turun »

Не силен в программировании, еще один нубский вопрос
А можно просто в браузерной строке написать запрос с нужными значениями, чтобы все сразу обработалось, если да то покажите пожалуйста как он буде выглядеть???
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Автозаполнение формы

Сообщение eddy »

Нельзя, здесь используется метод POST, а не GET. Хотя, можете, конечно, проверить:

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

https://nn.db.ertelecom.ru/cgi-bin/ppo/es_webface/balance_view.now?login$c=логин&password$c=пароль

Только это будет полным ... разрешать паролю и логину проходить в открытом виде: трафик https'ом-то кодируется, а вот адреса - нет.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
turun
Сообщения: 117
ОС: CENTOS5.4

Re: Автозаполнение формы

Сообщение turun »

Решил проблему заполнения вводом value="нужное значение", расскажите по подробнее по поводу
document.frames[0].forms["bal_enter"].submit()
В теле html-документа это должно выглядеть вот так???

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

<script>
document.frames[0].forms["bal_enter"].submit()
</SCRIPT>


eddy писал(а):
26.03.2010 13:54
Нельзя, здесь используется метод POST, а не GET. Хотя, можете, конечно, проверить:

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

https://nn.db.ertelecom.ru/cgi-bin/ppo/es_webface/balance_view.now?login$c=логин&password$c=пароль

Только это будет полным ... разрешать паролю и логину проходить в открытом виде: трафик https'ом-то кодируется, а вот адреса - нет.

По поводу вот этого все проходит)))
И еще вопрос, что еще надо добавить, чтобы страница рефрешилась через какой-то определенный промежуток времени??
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Автозаполнение формы

Сообщение eddy »

turun писал(а):
26.03.2010 14:03
В теле html-документа это должно выглядеть вот так???

Вроде того, только не забудьте вставить <iframe> с адресом формы, которую нужно заполнять.
Кстати, можете вообще сделать на xmlhttprequest'е заполнение, тогда не понадобится подгружать форму:

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

        request = new XMLHttpRequest();
        request.open("POST", "https://nn.db.ertelecom.ru/cgi-bin/ppo/es_webface/balance_view.now", true);
        request.setRequestHeader("Accept-Language", "ru, en");
        request.setRequestHeader("Content-Type", "text/html");
        request.send("login$c=логин&password$c=пароль");

Для автообновления - гуглите по поводу <meta refresh=timeout>
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
turun
Сообщения: 117
ОС: CENTOS5.4

Re: Автозаполнение формы

Сообщение turun »

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

<HTML>
<HEAD>
<TITLE>Просмотр баланса</TITLE>
<link href="/style.css" rel="stylesheet" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</HEAD>
<body >
<center><b><h3>Просмотр баланса</h3></b></center>
<BR>
<BR>
Введите логин и пароль от вашего текущего соединения:
<form method="post" action="https://nn.db.ertelecom.ru/cgi-bin/ppo/es_webface/balance_view.now" name="bal_enter">
<PRE>
Логин: <INPUT type="text" name="login$c" size="20" maxlength="60" value="gffghgh"><br>Пароль: <INPUT type="password" name="password$c" size="20" maxlength="60" value="пароль"><br>
<INPUT TYPE="submit" VALUE="Вход">
</PRE>
<script>
document.frames[0].forms["bal_enter"].submit()
</SCRIPT>
</FORM>
</BODY>
</HTML>
<!-- from cache -->

Что-то не нажимается(((
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Автозаполнение формы

Сообщение eddy »

Конечно не нажимается, т.к. у вас, во-первых, нет фреймов, а во-вторых, вам, вроде бы, надо было автоматом заполнять, а здесь - вручную :)
Вставьте код из моего предыдущего поста, а все остальное уберите. И учите html/JS, если хотите с ними работать.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
turun
Сообщения: 117
ОС: CENTOS5.4

Re: Автозаполнение формы

Сообщение turun »

eddy писал(а):
26.03.2010 14:28
Конечно не нажимается, т.к. у вас, во-первых, нет фреймов, а во-вторых, вам, вроде бы, надо было автоматом заполнять, а здесь - вручную :)
Вставьте код из моего предыдущего поста, а все остальное уберите. И учите html/JS, если хотите с ними работать.

Мне просто один раз надо заполнить с определенными данными и все.
А вот по поводу кнопки, что не работает. а зачем тут iframe, никак не могу разобрать погуглил
http://www.htmlbook.ru/html/iframe.html
Вроде мне он совершенно не нужет.
Разъясните пожалуйста
Все это делаю для того, чтобы создать виджет который будет автоматиечски заходить на страницу и смотреть балланс.
Аналогично смотреть еще количество потраченного трафика.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Автозаполнение формы

Сообщение eddy »

turun писал(а):
26.03.2010 14:35
Все это делаю для того, чтобы создать виджет который будет автоматиечски заходить на страницу и смотреть балланс.

Вот и делайте через xmlhttprequest, а его ответ отображайте. Погуглите примеры.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
turun
Сообщения: 117
ОС: CENTOS5.4

Re: Автозаполнение формы

Сообщение turun »

Делают как вы мне посоветовали

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

<HTML>
</BODY>
<HEAD>
<script>
request = new XMLHttpRequest();
request.open("POST", "https://nn.db.ertelecom.ru/cgi-bin/ppo/es_webface/balance_view.now", true);
request.setRequestHeader("Accept-Language", "ru, en");
request.setRequestHeader("Content-Type", "text/html");
request.send("login$c=asdasda&password$c=bub");
request.responseText;
</script>
</HEAD>
</BODY>
</HTML>

Добавил строчку request.responseText;
Но что то пустая страница((
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Автозаполнение формы

Сообщение eddy »

А ответ принять и обработать не надо???

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

<HTML>
<HEAD>
<script>
var request;
function sendrequest(req_URL, req_STR, req_fn_OK){
        request = new XMLHttpRequest();
        request.open("POST", req_URL, true);
        request.setRequestHeader("Accept-Language", "ru, en");
        request.setRequestHeader("Content-Type", "text/html");
        request.onreadystatechange=function(){
                if (request.readyState == 4){
                        if (request.status == 200){
                                clearTimeout(timeout_id);
                                req_fn_OK();
                        }
                        else handleError(request.statusText); // вызвать обработчик ошибки с текстом ответа
                }
        }
        request.send(req_STR);
        timeout_id = setTimeout(TimeOut, 5000);
}
function ok(){document.getElementById('ans').innerHTML = request.responseText;};
</script>
<meta http-equiv="refresh" content="30">
</HEAD>
<BODY onload='sendrequest("https://nn.db.ertelecom.ru/cgi-bin/ppo/es_webface/balance_view.now", "login$c=asdasda&password$c=bub", ok);'>
<div id=ans></div>
</BODY>
</HTML>

Каждые 30 секунд ваши данные будут отправляться на сервер, а его ответ отображаться в браузере. Проверяйте, я этот код не проверял.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
turun
Сообщения: 117
ОС: CENTOS5.4

Re: Автозаполнение формы

Сообщение turun »

Что-то все равно не работает
Спасибо сказали:
Аватара пользователя
poet13
Сообщения: 271
ОС: OpenSUSE 11.3 Gnome 2.30

Re: Автозаполнение формы

Сообщение poet13 »

curl, не?
Спасибо сказали:
Аватара пользователя
turun
Сообщения: 117
ОС: CENTOS5.4

Re: Автозаполнение формы

Сообщение turun »

poet13 писал(а):
26.03.2010 22:38
curl, не?

да без разницы на чем, можно и на нем, просто curl вообще не знаю
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Автозаполнение формы

Сообщение eddy »

turun писал(а):
26.03.2010 20:40
Что-то все равно не работает

Что пишет? Откройте для отладки хотя бы "Консоль ошибок JavaScript" и посмотрите - возможно, где-нибудь опечатка.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали: