我已经在虚拟机上设置了本地服务器,这是两个在Virtualbox上作为内部网络和桥接适配器连接的Ubuntu VM。我已经将站点托管在地址为10.0.0.3和10.0.0.4的本地dhcp服务器(内部网络)上。我的网页都托管在两台机器上的apache2服务器上。我已经验证它们在相互ping通彼此的VM时已连接。我必须将表单数据从一台服务器发送到另一台服务器,并且为此使用curl。
我在VM1(10.0.0.4)上的update.php文件是:
<?php
if($_POST['time']){
$time = $_POST['time'];
$data = array('time'=>$time);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, '10.0.0.3/index.php');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($ch);
curl_close($ch);
}
?>
我在VM2(10.0.0.3)中的index.php文件是:
<?php
$time = $_POST['time'];
echo $time;
?>
我能够在VM1(10.0.0.4)中从index.html到update.php接收html表单数据,但是无法使用上述方法将数据从update.php发布到index.php。还有其他我想使用curl将数据发布到远程服务器的东西吗?
答案 0 :(得分:0)
在检查数据是否已发布时,请确保在if条件中使用isset()。就像下面给出的
<?php
if(isset($_POST['time'])){
$time = $_POST['time'];
$data = array('time'=>$time);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://10.0.0.3/index.php');
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
}
?>