Php cURL函数未发布到其他域

Php cURL函数未发布到其他域,php,post,curl,cross-site,Php,Post,Curl,Cross Site,所以我的一个php文件中有一些变量,我想把这些变量数据发送到另一个域。所以我用的是旋度函数 <?php function post_to_url($url, $data) { $fields = ''; foreach($data as $key => $value) { $fields .= $key . '=' . $value . '&'; } rtrim($fields, '&'); $post = curl_init(); curl_setopt

所以我的一个php文件中有一些变量,我想把这些变量数据发送到另一个域。所以我用的是旋度函数

<?php
function post_to_url($url, $data) {
$fields = '';
foreach($data as $key => $value) { 
  $fields .= $key . '=' . $value . '&'; 
}
rtrim($fields, '&');

$post = curl_init();

curl_setopt($post, CURLOPT_URL, $url);
curl_setopt($post, CURLOPT_POST, count($data));
curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($post);
echo $result;

curl_close($post);
}

$data = array(
   "name" => "c.bavota",
   "website" => "http://bavotasan.com",
   "twitterID" => "bavotasan"
);

post_to_url("http://anotherdomain.com/receive.php", $data);
//header("location: http://anotherdomain.com/receive.php");
?>

就像您正在使用
curl\u setopt($post,CURLOPT\u RETURNTRANSFER,1)。CURLOPT_RETURNTRANSFER告诉PHP将响应存储在变量中,而不是打印响应或重定向到页面。您不必重定向到显示请求的页面,您可以直接执行以下操作:

$result = curl_exec($post);
echo $result;//show result expected ==> "c.bavota"
Curl不会重定向到任何页面。但你们可以同时看到反应

由于您使用的是
标题(“位置:http://anotherdomain.com/receive.php");表示您再次点击
GET
请求页面


而不是使用
curl\u setopt($post,CURLOPT\u POSTFIELDS,$fields)尝试:

curl_setopt($post, CURLOPT_POSTFIELDS, http_build_query($data));

未使用您的$url参数。您正在为URL使用未定义的变量:

curl_setopt($post, CURLOPT_URL, $url2); // Undefined $url2?

当出现这样的问题时,PHP通常会告诉您。但是,我假设您已关闭某些错误检查。

添加了“PHP”标记。请不要忘记这样做。我删除了标题并添加了echo$result;现在我在浏览器中收到消息“307临时重定向”是的,对不起。该漏洞发生在我将代码复制到堆栈溢出时。我原来的代码不是这样的。我更正了问题,对不起。该漏洞发生在我将代码复制到堆栈溢出时。我原来的代码不是这样的。我纠正了问题。好的。我会尝试回显除$\u POST变量之外的其他变量,以查看您是否实际到达了该文件。如果它能工作,那么我会猜测name参数没有正确发布,或者如果它仍然为空,receive.php服务器上会发生错误。
curl_setopt($post, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($post, CURLOPT_URL, $url2); // Undefined $url2?