0

我正在尝试调试它,但我没有运气。我是否正确发送 POST 数据?

if (isset($_POST['chrisBox'])) {

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.associates.com/send-email-orders.php");
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $_POST['chrisBox']);
curl_setopt($curl, CURLOPT_HEADER, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, FALSE);
curl_setopt($curl, CURLOPT_VERBOSE, TRUE);
$ex = curl_exec($curl);
echo 'email';
$email = true;

}
4

3 回答 3

9

请求中发送的参数$_POST需要采用以下形式 -

key=value&foo=bar

您可以为此使用 PHP 的http-build-query函数。它将从一个数组创建一个查询字符串。

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($_POST));

如果你只想传递一个参数,你仍然需要将它包装在一个数组或对象中。

$params = array(
  'stack'=>'overflow'
);

http_build_query($params);     // stack=overflow
于 2012-12-17T20:47:54.637 回答
3

CURLOPT_POSTFILEDS 需要一个 urlencoded 字符串或一个数组作为参数。阅读PHP 手册 curl_setopt。更改了您的示例,现在它使用了 urlencoded 字符串。

if (isset($_POST['chrisBox'])) {

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, "http://www.associates.com/send-email-orders.php");
    curl_setopt($curl, CURLOPT_POST, TRUE);
    curl_setopt($curl, CURLOPT_POSTFIELDS, 'chrisBox=' . urlencode($_POST['chrisBox']));
    curl_setopt($curl, CURLOPT_HEADER, FALSE);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, FALSE);
    curl_setopt($curl, CURLOPT_VERBOSE, TRUE);
    $ex = curl_exec($curl);
    echo 'email';
    $email = true;
}
于 2012-12-17T20:45:37.967 回答
0
$ex = curl_exec($process);
if ($ex === false)
{
    // throw new Exception('Curl error: ' . @curl_error($process));
    // this will give you more info
    var_dump(curl_error($process));
}
于 2012-12-17T20:46:46.540 回答