BACKGROUND
在域1上的用户单击指向域2的链接后,我需要
send also the user-data (username,email,..) from server1/domain1 to server2/domain2 并将其临时保存在server2/数据库中。
两者都是wordpress网站。
CURRENT WORK
比如说,
$url = \'http://my-domain2.com\'
;到目前为止,我发现cURL可以做这项工作:
function curlTest($url, $fields){
try{
$ch = curl_init($url);
if (!$ch)
throw new Exception(\'Failed to initialize\');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, \'PUT\');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(\'Content-Length: \' . strlen($fields)));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (!$response)
throw new Exception(curl_error($ch), curl_errno($ch));
curl_close( $ch );
return (int) $status; //status 200 = success
} catch(Exception $e) {
trigger_error(sprintf(
\'Curl failed with error #%d: %s\',
$e->getCode(), $e->getMessage()),
E_USER_ERROR);
}
}
或像描述的那样以客观为导向
here.
后来我发现wordpress solution 像这样:
$response = wp_remote_post( &url, array( \'data\' => $fields) );
已解释
here.
cURL调用似乎成功了,但我不知道如何在另一台服务器上获取数据。到目前为止,我将server1上的用户数据放在一个数组中($字段),并使用POST将其发送到server2。但是how can I fetch the data 在服务器2上?
根据下面的Ed Cradock示例offical documentation 似乎可以使用以下代码在另一端绘制请求:
if($_SERVER[\'REQUEST_METHOD\'] == \'PUT\')
{
parse_str(file_get_contents(\'php://input\'), $requestData);
print_r($requestData);
// Save requested Data to database here
}
但它对我不起作用,因为我猜URL是错误的:
http://my-domain2.com/<whats-here?>
QUESTION
如何使用wordpress以安全的方式获取POST cURL请求的数据?