Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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, если они нужны, то как их передавать?

Приложение:
  1.  
  2. <FORM id=form1 name=form1
  3. action=/bitrix/admin/iblock_xml_import.php?lang=ru method=post>
  4. <DIV class=edit-form>
  5. <....................................
  6.  
  7.  
  8. <TR>
  9. <TD class=delimiter colSpan=2>
  10. <DIV class=empty></DIV></TD></TR></TBODY></TABLE>
  11. <TABLE class=edit-table id=edit1_edit_table
  12. cellSpacing=0 cellPadding=0 border=0>
  13. <TBODY>
  14. <TR vAlign=top>
  15.  
  16.  
  17. <TD width="60%"><INPUT id=URL_DATA_FILE size=30
  18.  
  19. <TR vAlign=top>
  20.  
  21.  
  22. <TD><SELECT id=IBLOCK_TYPE size=1
  23. name=IBLOCK_TYPE><OPTION value=news
  24.  
  25. value=articles>[articles]
  26.  
  27.  
  28. <TR vAlign=top>
  29.  
  30.  
  31.  
  32. <TD><INPUT class=typecheckbox id=ru type=checkbox
  33. value=ru name=LID[]><LABEL
  34.  
  35. <TR vAlign=top>
  36.  
  37.  
  38. <TD><INPUT id=outFileAction_N type=radio CHECKED
  39. value=N name=outFileAction><LABEL
  40.  
  41. id=outFileAction_A type=radio value=A
  42. name=outFileAction><LABEL
  43.  
  44. id=outFileAction_D type=radio value=D
  45. name=outFileAction><LABEL
  46.  
  47. <TR vAlign=top>
  48.  
  49. ..................................................
  50.  
  51.  
  52. ............
  53. </FORM>
  54.  
  55. <FORM name=form_auth action=/bitrix/admin/index.php?login=yes
  56. method=post target=_top><INPUT type=hidden value=Y name=AUTH_FORM>
  57. <INPUT type=hidden value=AUTH name=TYPE>
  58. <DIV class=auth-form>
  59.  
  60. <DIV class=picture></DIV>
  61. <DIV class=table>
  62. <TABLE cellSpacing=0 cellPadding=0 border=0>
  63. <TBODY>
  64. <TR>
  65.  
  66. <TD><INPUT class=input-text maxLength=50 value=ibis-admin
  67. name=USER_LOGIN></TD></TR>
  68. <TR>
  69.  
  70. <TD><INPUT class=input-text type=password maxLength=50
  71. name=USER_PASSWORD></TD></TR>
  72. <TR>
  73. <TD></TD>
  74. <TD><INPUT id=USER_REMEMBER_F type=checkbox value=Y
  75.  
  76.  
  77. <TR>
  78. <TD></TD>
  79.  
  80. clear=all>
  81. <DIV class=footer>
  82.  
  83.  
  84.  
  85.  
  86. </FORM>


ss Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: 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

ss (статус: Посетитель), 4 июня 2008, 14:16 [#1]:

не подскажите ссылку, где скачать "FireFox с плагином LiveHTTP"
ss

ss (статус: Посетитель), 4 июня 2008, 14:45 [#2]:

Спасибо большое за совет!!!!!!!!!!!!!!!!!!!!!!!!!
Оказывается я заполнял не все поля.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:49
Выполнено за 0.03 сек.