【问题标题】:Using cURL to pass $_POST values to an external server [duplicate]使用 cURL 将 $_POST 值传递给外部服务器 [重复]
【发布时间】:2012-12-13 07:38:32
【问题描述】:

可能重复:
Passing $_POST values with cURL

我正在尝试使用 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);

据我所知,数据似乎存在且格式正确,但并未发送到服务器。知道这有什么问题吗?我有点困惑。

戴夫

【问题讨论】:

  • 我可能是错的,但你已经分配了 $result,但没有在任何地方调用它?

标签: php post curl


【解决方案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

【讨论】:

  • 我看到这已经关闭,我查看了被认为是重复的示例,但我真的不知道它们是怎样的。我正在尝试从另一个页面上的表单中捕获帖子值,运行验证码验证,如果通过,将帖子值转发到另一个外部服务器,该服务器处理数据,发送确认电子邮件,然后将用户返回到原始服务器显示成功页面。我不认为这就是所谓的重复帖子中正在讨论的内容。我可能错了吗?
  • 当然...一切皆有可能 :D 但为什么呢?
猜你喜欢
  • 2015-02-28
  • 2010-09-06
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 2016-07-07
  • 2022-01-14
  • 1970-01-01
相关资源
最近更新 更多