所以我的一个php文件中有一些变量,我想将这些变量数据发送到另一个域。所以我使用的是cURL函数。
<?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");
?>
我的receive.php文件的内容是 -
<?php
echo $_POST["name"];
?>
我得到一个空白页面。 我哪里错了?还有另一种方法可以在接收端获取结果吗? 此外,当我尝试使用一个理想的receive.php时,我只得到空白页。
post_to_url("http://samedomain.com/receive.php", $data);
答案 0 :(得分:0)
好像您正在使用curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
。 CURLOPT_RETURNTRANSFER告诉PHP将响应存储在变量中,而不是打印它或重定向到页面。您无需重定向到页面以显示请求,您可以直接执行以下操作:
$result = curl_exec($post);
echo $result;//show result expected ==> "c.bavota"
Curl不会重定向到任何页面。但你可以同时看到回应。
由于您使用header("location: http://anotherdomain.com/receive.php");
,您将收到空白页面意味着您再次点击GET
页面请求。
而不是使用curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
尝试:
curl_setopt($post, CURLOPT_POSTFIELDS, http_build_query($data));
答案 1 :(得分:0)
您的$ url参数未被使用。您正在为URL使用未定义的变量:
curl_setopt($post, CURLOPT_URL, $url2); // Undefined $url2?
PHP通常会告诉您何时出现类似问题。但是我会假设您已关闭某些错误检查。