it-swarm.dev

프로그래밍 방식으로 웹 양식 결과 삽입

Webform 모듈이 설치된 상태에서 drupal 6을 사용하고 있습니다.

PHP 결과에서 웹 양식으로 원격으로 POST 할 수 있어야합니다. 의사 코드 :

<?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
6
xaav

나는 그것을 시도하지 않았지만 Pro Drupal Development (저는 두 번째 에디션을 가지고 있습니다)의 19 장에서 xml-rpc 사용을 언급합니다. 작업을 수행하기 위해 표준 설치의 일부인 xmlrpc.php 페이지를 사용합니다.

2
Tangurena

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;

물론 양식에 어떤 형태의 보안 문자를 사용하는 경우에는 실패하고 응답을 게시하기 위해 인증을 받아야하는 경우에도 현재 실패합니다.

1
wiifm