1

重複の可能性:
cURL で $_POST 値を渡す

curl を使用して、フォームから送信された $_POST 値を反復検証ページに渡し、処理のために別のサーバーに渡し、サーバーに戻って成功ページを表示しようとしています。

ここに私が持っているものがあります:

    unset($_POST['recaptcha_challenge_field']);
    unset($_POST['recaptcha_response_field']);
    $params = $_POST;
    foreach ( $params as $key => $value) {
      $post_items[] = $key . '=' . $value;
    }
    $post_string = implode ('&', $post_items);
    $curl_connection =
    curl_init('http://server.somedomain.net/about/spit.php');
    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, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
    $result = curl_exec($curl_connection);
    print_r(curl_getinfo($curl_connection));
    echo curl_errno($curl_connection) . '-' .
    curl_error($curl_connection);
    //close the connection
    curl_close($curl_connection);

私が知る限り、データは正しい形式でそこにあるように見えますが、サーバーに送信されません。これの何が問題なのですか?私は少し困惑しています。

デイブ

4

1 に答える 1

1

あなたが忘れてしまった:

curl_setopt($curl_connection, CURLOPT_POST, 1);

そして変更:

curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);

curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, false);

PHP 5.2 以降では、POSTFIELDS は配列でなければなりません!

http://php.net/manual/en/function.curl-setopt.php#example-4025

于 2012-12-13T07:46:31.217 に答える