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_POSTFIELDSarray直接取ることができます

これは問題なく機能します。

 curl_setopt( $ch, CURLOPT_POSTFIELDS, $_POST);

また、サーバーがダウンした場合に備えて、複数の試行を管理する必要があります。

于 2012-09-30T20:50:52.740 に答える