Программно вставить результат веб -формы

drupal.stackexchange https://drupal.stackexchange.com/questions/371

  •  16-10-2019
  •  | 
  •  

Вопрос

Я использую Drupal 6 с установленным модулем Webform.

Мне нужно иметь возможность удаленно публиковать, от результатов PHP до веб -формы. Псевдокод:

<?php
//File: remote_script_not_hosted_on_the_same_server_as_drupal.php

$results = array(
'name' => 'testname',
'age' => '6',
);

$node = 5;

$url_to_drupal = 'http://remote_server.com/drupal-6.2';

insert_into_webform($results, $node, $url_to_drupal);

Конечно, этот пример не идеален, но вы (надеюсь) поймете эту идею.

Как бы вы это сделали?

Я открыл проблему в очереди Drupal: http://drupal.org/node/1082016

Я обеспокоен тем, что эти два поля недействительны мое удаленное представление:

------WebKitFormBoundaryKIiNRZCPZIFlYWKc
Content-Disposition: form-data; name="form_build_id"

form-58f36748bfffd6752f204eadf1ba87c9
------WebKitFormBoundaryKIiNRZCPZIFlYWKc
Content-Disposition: form-data; name="form_token"

e4becb726ea858b6914980b9142b7f30
Это было полезно?

Решение

Я не пробовал, но глава 19 Pro Drupal Development (У меня есть 2 -е издание) относится к использованию XML-RPC сделать это. Он использует страницу XMLRPC.PHP, которая является частью стандартной установки для выполнения своей работы.

Другие советы

Вы пробовали использовать PHP, чтобы вручную отправить данные POST? Вот фрагмент от http://www.webmasterworld.com/php/3164561.htm

$server= 'www.someserver.com';
$url = '/path/to/webform/posturl';
$content = 'name1=value1&name2=value2';
$content_length = strlen($content);
$headers= "POST $url HTTP/1.0\r\nContent-type: text/html\r\nHost: $server\r\nContent-length: $content_length\r\n\r\n";
$fp = fsockopen($server, $port, $errno, $errstr);
if (!$fp) {
    return false;
}
fputs($fp, $headers);
fputs($fp, $content);
$ret = "";
while (!feof($fp)) {
    $ret .= fgets($fp, 1024);
}
fclose($fp);
print $ret;

Конечно, это не удалось бы, если вы используете какую -либо форму CAPTCHA в форме, а также в настоящее время потерпит неудачу, если вам необходимо пройти аутентификацию для публикации ответа

Лицензировано под: CC-BY-SA с атрибуция
Не связан с drupal.stackexchange
scroll top