卷曲不使用php-curl将数据发布到远程服务器

时间:2019-02-11 08:04:33

标签: php curl

我已经在虚拟机上设置了本地服务器,这是两个在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将数据发布到远程服务器的东西吗?

1 个答案:

答案 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;  
}
?>