Pregunta

Estoy usando Drupal 6 con el módulo de formulario web instalado.

Tengo que ser capaz de forma remota POST, a partir de resultados de PHP a un formulario web. Pseudocódigo:

<?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);

Por supuesto, este ejemplo no es perfecto, pero que (esperemos) consigue la idea.

¿Cómo ir haciendo esto?

He abierto un problema en la cola de Drupal: http://drupal.org/node/1082016

Me preocupan estos dos campos que invalidan mi sumisión a distancia:

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

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

e4becb726ea858b6914980b9142b7f30
¿Fue útil?

Solución

No lo he probado, pero el capítulo 19 del Pro Drupal Desarrollo (tengo la 2ª edición) se refiere a la utilización de XML-RPC para hacer esto. Utiliza el xmlrpc.php página que es parte de la instalación estándar para hacer su trabajo.

Otros consejos

¿Ha intentado utilizar PHP para enviar manualmente los datos POST? Aquí hay un fragmento de 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;

Por supuesto, esto sería un fracaso si usted está usando alguna forma de código de imagen en el formulario, y también fallará actualmente si debe estar autenticado para publicar un Reponse

Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top