|
Вопрос # 1 649/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Задача следующая:
1.Приложение создает XML-ФАЙЛ
2.В системе Битрикс совершается импорт этого файла для обновления сайта.
Надо это автоматизировать, а именно совершать импорт без запуска Битрикса путем заполнения HTML формы методом POST(см. прил 1.)
заполняю след образом:
Send.Add('URL_DATA_FILE=file.xml');
Send.Add('IBLOCK_TYPE=[news] Новости');
и т.д.
Otvet.Text:=IdHTTP1.Post('..../bitrix/admin/iblock_xml_import.php?lang=ru', Send);
результат- страница авторизации с незаполнеными полями
при том же методе для страницы авторизации(см. прил 2.) поля логин и пароль не заполняются и вход не происходит.
Вопрос1 как можно ли автоматизировать хотя бы авторизацию?
Вопрос2 как можно последовательно заполнять несколько форм, например авторизации и импорта как в этом случае?
Возможно нужно передавать cookies, если они нужны, то как их передавать?
Приложение: Переключить в обычный режим-
- <FORM id=form1 name=form1
- action=/bitrix/admin/iblock_xml_import.php?lang=ru method=post>
- <DIV class=edit-form>
- <....................................
-
-
- <TR>
- <TD class=delimiter colSpan=2>
- <DIV
class=empty></DIV></TD></TR></TBODY></TABLE>
- <TABLE class=edit-table id=edit1_edit_table
- cellSpacing=0 cellPadding=0 border=0>
- <TBODY>
- <TR vAlign=top>
-
-
- <TD width="60%"><INPUT id=URL_DATA_FILE size=30
-
- <TR
vAlign=top>
-
-
- <TD><SELECT id=IBLOCK_TYPE size=1
- name=IBLOCK_TYPE><OPTION value=news
-
- value=articles>[articles]
-
-
- <TR vAlign=top>
-
-
-
- <TD><INPUT class=typecheckbox id=ru type=checkbox
- value=ru name=LID[]><LABEL
-
- <TR vAlign=top>
-
-
- <TD><INPUT id=outFileAction_N type=radio CHECKED
- value=N name=outFileAction><LABEL
-
- id=outFileAction_A type=radio value=A
- name=outFileAction><LABEL
-
- id=outFileAction_D type=radio value=D
- name=outFileAction><LABEL
-
- <TR vAlign=top>
-
- ..................................................
-
-
- ............
- </FORM>
-
- <FORM name=form_auth action=/bitrix/admin/index.php?login=yes
- method=post target=_top><INPUT type=hidden value=Y name=AUTH_FORM>
- <INPUT type=hidden value=AUTH name=TYPE>
- <DIV class=auth-form>
-
- <DIV class=picture></DIV>
- <DIV class=table>
- <TABLE cellSpacing=0 cellPadding=0 border=0>
- <TBODY>
- <TR>
-
- <TD><INPUT class=input-text maxLength=50 value=ibis-admin
- name=USER_LOGIN></TD></TR>
- <TR>
-
- <TD><INPUT class=input-text type=password maxLength=50
- name=USER_PASSWORD></TD></TR>
- <TR>
- <TD></TD>
- <TD><INPUT id=USER_REMEMBER_F type=checkbox value=Y
-
-
- <TR>
- <TD></TD>
-
- clear=all>
- <DIV class=footer>
-
-
-
-
- </FORM>
 |
Вопрос задал: ss (статус: Посетитель)
Вопрос отправлен: 3 июня 2008, 16:18
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, ss!
Итак, начнём по кусочкам.
Кукисы. Их любят. но достаточно выствить AllowCoockies = true и компонент сам справиться с ними.
Заполнение полей. Тут отдельная песня. Я в таких случаях обычно не рассматриваю тоны кода, а запускаю FireFox с плагином LiveHTTP. Он умеет показывать, что отсылается и в каком виде. После этого многое проясняется, а иногда и интересные вещи появляются:)
Можно также пользоваться снифером, если умеете.
По поводу двух вопросов.
1)да, практически всегда. ну разве кроме извращённых каптчей, которые нужно показать пользователю и он их "декодирует" и даст ответ.
2)Прямо так брать и заполнять. То есть выполнили первый запрос - проанализировали ответ, выполнили второй. Очень удобно завернуть всё это в поток.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 3 июня 2008, 23:38
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 4 июня 2008, 14:45; участников в обсуждении: 1.
|
ss (статус: Посетитель), 4 июня 2008, 14:16 [#1]:
не подскажите ссылку, где скачать "FireFox с плагином LiveHTTP"
|
|
ss (статус: Посетитель), 4 июня 2008, 14:45 [#2]:
Спасибо большое за совет!!!!!!!!!!!!!!!!!!!!!!!!!
Оказывается я заполнял не все поля.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|