PHP Curl发送一个空数组

时间:2010-10-15 12:22:14

标签: php curl

好的,我已经检查了与此类似的其他问题,似乎没有人指出解决我的问题。我有以下代码:

<?PHP
$tamanho = $_REQUEST['tamanho'];

$post_data['item_quant'] = $_REQUEST['item_quant'];
$post_data['email_cobranca'] = $_REQUEST['email_cobranca'];
$post_data['tipo'] = $_REQUEST['tipo'];
$post_data['moeda'] = $_REQUEST['moeda'];
$post_data['item_id'] = $_REQUEST['item_id'].$tamanho;
$post_data['item_descr'] = $_REQUEST['item_descr'].'%20Tamanho%20'.$tamanho;
$post_data['item_valor'] = $_REQUEST['item_valor'];
$post_data['peso'] = $_REQUEST['peso'];
$post_data['encoding'] = $_REQUEST['encoding'];
$post_data['submit_01'] = $REQUEST['submit_01'];

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "[erased for security]");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($curl);
curl_close($curl);

header('Location:[erased for security]');
?>

在我稍微修改产品ID和说明之后,向其他网站发送帖子请求是一个准系统代码,以使它们更加独特(因此我不必为每种颜色和大小创建不同的产品的衣服)。但是,它作为空的$ _POST数组到达另一页。头部位置与发送请求的位置相同。

$ result变量没有通知错误。

curl_getinfo($ curl)的输出显示正在发送的数组。

环境是PHP 5,正在使用的库是php_curl.dll。

发送阵列的页面A和接收阵列的页面B之间发生了一些事情。

3 个答案:

答案 0 :(得分:1)

我曾经使用过CURL这个问题我没有深入研究它为什么会出现问题(可能是使用了CURL LIB的一些问题)。我在我的数组

上使用http_build_query找到了一种解决方法

答案 1 :(得分:1)

  

然而,这作为一个空的$ _POST数组到达另一页。头部位置与发送请求的位置相同。

等一下?您是否正在尝试将某人发送到您刚刚发布到的页面?您不能这样做,用户的重定向将导致用户/浏览器/用户代理执行GET请求,无论您之前发布的是什么。如果您echo $result;而不是重定向,您会看到什么?该页面是否包含正确的数据?然后卷曲只是简单的作品。如果你想通过帖子获得用户,你必须回复某种形式,并且可能执行一些javascript魔术让它立即提交到你的目标URL。

答案 2 :(得分:0)

我认为你应首先让$post_data查询字符串,然后发送它。这将解决您的问题。