cURL不能使用POST数据 [英] cURL not working with POST data
本文介绍了cURL不能使用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;
}
解决方案
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;
}
I am trying to debug this, but I've had no luck. Am I sending the POST data correctly?
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;
}
解决方案
CURLOPT_POSTFILEDS requires an urlencoded string or an array as param. Read PHP Manual curl_setopt. Have changed your example, now it uses an urlencoded string.
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;
}
这篇关于cURL不能使用POST数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文