resultado formulario web mediante programación inserto
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
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