このトピックは広く議論されていますが、この例では私の単純なフォームを提出することはできません。 StackOverflowで見つかった多くの異なるcURL POSTデータの例を試しましたが、うまくいかないようです。PHP CURL投稿フォーム
私の現在のアイデアは、私が理解する限り、データを投稿する実際のアクションではないので、この場合のフォームアクションが問題であるということです。私はヘッダーを傍受するために様々なツールを試しましたが、私が見ているのは、私が現在持っているフォームアクションです。私はここにお問い合わせフォームを提出するのcURLを使用しようとしています
、ここでhttp://www.alpinewebdesign.co.uk/
は(私はすべての隠しフィールドを含めて、私は別のヘッダタイプを設定すると思います失敗ししようとしたした)私の最新の試みです。
//create array of data to be posted
$post_data['mact'] = 'FormBuilder,m62b34,default,1';
$post_data['m62b34returnid'] = '15';
$post_data['page'] = '15';
$post_data['m62b34fbrp_callcount'] = '1';
$post_data['m62b34form_id'] = '4';
$post_data['m62b34fbrp_continue'] = '2';
$post_data['m62b34fbrp_done'] = '1';
$post_data['name'] = 'Name';
$post_data['email'] = '[email protected]';
$post_data['message'] = 'Message';
$post_data['m62b34fbrp_submit'] = 'Send';
//traverse array and prepare data for posting (key1=value1)
foreach ($post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);
//create cURL connection
$curl_connection =
curl_init('http://www.alpinewebdesign.co.uk');
//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
$headers = array();
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
$headers[] = 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryM4YWvE6kIZAIC8vY';
curl_setopt($curl_connection, CURLOPT_HTTPHEADER, $headers);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//perform our request
$result = curl_exec($curl_connection);
//show information regarding the request
print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' .
curl_error($curl_connection);
//close the connection
curl_close($curl_connection);
誰でも問題を見ることができますか?
まずcURLのライブラリがサーバー上で有効になっているかどうかを確認:次に
<?=phpinfo();?>
CURLOPTを準備しようと
おかげ
エラーログを確認しましたか? –
サイドノート: '$ post_string = http_build_query($ post_items);'はforeachループとimplodeの代わりに必要なものです – andrew