DotNetNuke, PHP, Имитация удаленной обратной передачи с использованием curl

У меня есть страница в DNN, например: http://nolimitswebdesign.com.dnnmax.com/test/tabid/57/ctl/Edit/mid/374/Default.aspx

Мне нужно отправить запрос на эту страницу с помощью PHP + Curl, который изменяет содержимое текстовой области и сохраняет ее (например, если кто-то изменил ее вручную и нажал кнопку обновления на этой странице). Я сомневаюсь, что с DNN это будет невозможно. Пожалуйста, порекомендуйте.

Вот как я подхожу к этой проблеме, тот же общий метод будет работать на любом веб-сайте. В этом контексте DNN – это всего лишь средний веб-сайт ASP.Net. Сначала посмотрите на javascript, который запускается при нажатии на обновление:

__doPostBack('dnn$ctr374$EditHTML$cmdUpdate','') 

Найдите метод __doPostBack:

 function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } 

Это стандартный метод doPostBack (), используемый во многих формах ASP.Net. Из этого вы можете видеть, что вы хотите заполнить скрытые поля __EVENTTARGET и __EVENTARGUEMENT с соответствующими значениями из вызова метода и отправить форму.

Конечно, вам также необходимо заполнить данные, которые вы хотите сохранить в элемент управления ввода для текстового поля. Скорее всего, это будет проще сделать, если вы используете основной текстовый режим HTML-модуля, тогда вам просто нужно установить значение текстового поля, а не определять, куда вставлять значение в fckEditor, и эта техника будет все еще работают, если сайт настроен на использование поставщика Telerik вместо поставщика fck.

Одна вещь, на которую следует обратить внимание, это то, что имя элемента управления может время от времени меняться, поэтому вам нужно быть уверенным, что вы читаете правильные идентификаторы для цели события, а textarea – не просто жесткое кодирование.