0

我收到发布到我域上的 url 的数据,检查某些字段值,如有必要更新数据库,然后将收到的数据发布到另一个 url。

不幸的是,我发布的 url (https) 没有测试平台或类似的东西,所以我需要确保我重新发布的内容与收到的内容相同。

这看起来是一种合理的方法吗?

谢谢

foreach($_POST as $key=>$value) 
{ 
    $fields_string .= $key.'='.$value.'&'; 
}
$fields_string = substr_replace($fields_string, "", -1);

$ch = curl_init();
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" );
curl_setopt( $ch, CURLOPT_URL, "https://anotherdomain.com/script.php");
curl_setopt( $ch, CURLOPT_ENCODING, "" );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 30 );
curl_setopt( $ch, CURLOPT_TIMEOUT, 30 );
curl_setopt( $ch, CURLOPT_MAXREDIRS, 10 );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);   
$response = curl_getinfo( $ch );    
curl_close($ch);    

$fh = fopen('audit.log', 'a');
fwrite($fh, $response."\r\n");
fclose($fh);
4

1 回答 1

1

CURLOPT_POSTFIELDS可以array直接拿

这会很好用:

 curl_setopt( $ch, CURLOPT_POSTFIELDS, $_POST);

如果服务器关闭,您还需要管理多次尝试.....

于 2012-09-30T20:50:52.740 回答