我当前的主机不允许远程mysql访问,所以我需要通过让server1上的script1与server2上的script2进行通信来解决它。我试图将后期数据发送到script2,然后脚本2获取该数据并将其放入mysql。为了使我的问题变得简单,我将代码删除了:
SCRIPT1
for ( $counter = $counternumbernao; $counter <= $amountofcomments; $counter += 1)
{
echo'
<form action="http://server2.x.com/form-receive.php" method="post">
<INPUT TYPE=HIDDEN NAME="comment_content" value=$comment_content>
<INPUT TYPE=HIDDEN NAME="comment_date" value=$comment_date">
<input type="submit" />
</form>
';
}
如何更改此代码,以便每次循环发生时它会自动将$ _POST数据发送到script2,然后将其放入mysql?我认为没有必要包含script2,因为它对这个问题并不重要。
答案 0 :(得分:3)
为什么不使用 cURL 将FORM数据发送到server2。它允许您发送HTTP请求。试试下面的剧本:
$url = "http://server2.x.com/form-receive.php";
$postvars = "comment_content=$comment_content&comment_date=$comment_date";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS ,$postvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER ,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1);
$data = curl_exec($ch);
答案 1 :(得分:2)
要在没有最终用户意识到此行为的情况下自动执行此操作,最好的方法是使用CURL(http://php.net/manual/en/book.curl.php)。
以下是它的外观示例:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://server2.x.com/form-receive.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$data = array(
'foo' => 'bar',
// Put data from $_POST here
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
答案 2 :(得分:1)
请记住,简单地回显表单永远不会导致表单数据发布到某个服务器。 无论您从PHP代码回复什么,都只会发送到请求php页面的Web浏览器(或任何用户代理)。
我投票给出了建议cURL的答案。
当你在Jack Murdoch的例子中使用cURL时,cURL命令本身作为HTTP用户代理工作,并将POST请求发送到http://server2.x.com/form-receive.php.
所以在form-receive.php中你只需要编写一些普通的php程序来从$ _POST数组读取数据并读/写数据库。
这样,您实际上将在server2上构建一个Web服务。
答案 3 :(得分:-1)
这些方面的东西:
echo '<form action="http://server2.x.com/form-receive.php" method="post">';
for ( $counter = $counternumbernao; $counter <= $amountofcomments; $counter += 1)
{
echo'
<INPUT TYPE=HIDDEN NAME="comment_content[]" value=$comment_content>
<INPUT TYPE=HIDDEN NAME="comment_date[]" value=$comment_date">
<input type="submit" />
';
}
echo '</form>';
然后,表单接收脚本将在$ _POST [&#39; comment_content&#39;]和$ _POST [&#39; comment_date&#39;]中接收数据数组。
答案 4 :(得分:-1)
尝试使用JQuery和post()方法(http://api.jquery.com/jQuery.post/) 然后只生成一个包含所有记录的JS数组,然后在循环中运行并享受ENJOY! 可能这个解决方案只比PHP中的循环/刷新更快。