我想使用cURL传递数组或变量并发布到远程服务器并回显数组的内容或变量的值。看起来很简单。我一直在寻找解决方案的互联网,我90%肯定问题出在我的键盘和我的椅子之间,所以我在这里发布代码,由于添加了故障排除代码但仍然是一团糟很容易弄清楚。
我尝试将cURL帖子搜索到远程服务器,服务器接收空数据库以及该信息的各种组合。
代码;这是我的服务器上的内容并发送到远程服务器。
/*
* Data which is to submitted to the remote URL
*
*$_POST['key'] = "foo";
*/
$post_array = array("mahesh","chari");
// I have tried both of these
// $post_array = array('fname'=>'mahesh','lname'=>'chari');
/*
* Initialize cURL and connect to the remote URL
* You will need to replace the URL with your own server's URL
* or wherever you uploaded this script to.
*/
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.5thandpenn.com/Worms/curlpost_hanlder.php' );
/*
* Instruct cURL to do a regular HTTP POST
*/
curl_setopt($ch, CURLOPT_POST, TRUE);
/*
* Specify the data which is to be posted
*/
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
/*
* Tell curl_exec to return the response output as a string
*/
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
/**
* Execute the cURL session
*/
$response = curl_exec($ch );
/**
* Close cURL session and file
*/
curl_close($ch );
echo $response; // is Welcome Maheshchari.
我在本地服务器上获得的响应是: 欢迎网站字符串(6)“mahesh”字符串(5)“chari”字符串(0)“”字符串(0)“”NULL NULL
所以我可以看到正确的数据被发送到远程服务器并且返回传输正在捕获它并回复。
远程服务器上的代码是:
$site='website ';
$firstname = 'text';
$firstname = isset($_POST['fname']) ? $_POST['fname'] : '';
$lastname= isset($_POST['lname']) ? $_POST['lname'] : '';
$array = array($_POST[0], $_POST[1]);
// $firstname=$_POST[0];
// $lastname=$_POST[1];
echo "Welcome ";
echo $firstname;
echo $lastname;
echo $site;
print $firstname;
var_dump($array[0]);
var_dump($array[1]);
var_dump($firstname);
var_dump($lastname);
var_dump($post_array);
var_dump($post_array['fname']);
echo htmlspecialchars($_POST["fname"]);
远程服务器的响应是: 欢迎网站NULL NULL string(0)“”string(0)“”NULL NULL
所以在这里我可以看到远程服务器没有获取变量,因为它们是NULL或字符串(0)
远程服务器php版本:Linux上的5.6.17
本地服务器上的Php版本是:MAMP上的5.6.10
我知道正在发送正确的信息,并通过返回传输返回到我的本地服务器。
我知道远程服务器没有收到数据,至少没有接收到PHP脚本中,所以我假设数据被剥离了。
为什么远程服务器接收NULL和空数组但是echo在我的本地服务器上工作正常,最重要的是我如何解决这个问题呢?
最终目标是将回显呼叫嵌入到远程服务器上的html页面中,并反映从本地服务器发送到远程服务器的内容。
我在网址中尝试过http https,www和没有www。我已经尝试了许多不同的代码变体,应该工作坚果没有任何作用。 因此,远程服务器不允许数据进入,但允许返回数据,因为本地主机可以回显返回传输,数据就在那里。