我收到发布到我的域名网址的数据,检查某些字段值,必要时更新数据库,然后将收到的数据发布到另一个网址。
不幸的是,我发布的网址(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);
答案 0 :(得分:1)
CURLOPT_POSTFIELDS
可以直接array
这样可以正常工作:
curl_setopt( $ch, CURLOPT_POSTFIELDS, $_POST);
如果服务器关闭,您还需要管理多次尝试.....