Curl не публикует данные на удаленном сервере, используя php-curl - PullRequest
0 голосов
/ 11 февраля 2019

Я настроил локальные серверы на виртуальной машине. Это две виртуальные машины Ubuntu, которые подключены к Virtualbox как внутренняя сеть и мостовой адаптер.Я разместил свой сайт на локальном сервере DHCP (внутренняя сеть) с адресами 10.0.0.3 и 10.0.0.4.Я разместил свои веб-страницы на серверах apache2 на обеих машинах.Я проверил, что они связаны, поскольку они проверяют связь друг с другом виртуальных машин.Я должен отправить данные формы с одного сервера на другой, и я использую для этого curl.

Мой файл update.php на VM1 (10.0.0.4):

<?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);
}
?>

И мой файл index.php на VM2 (10.0.0.3):

<?php 
$time = $_POST['time'];
echo $time;
?>

Я могу получать данные html-формы из index.html в update.php как в VM1 (10.0.0.4), но не могу опубликовать данные из update.php в index.php, используя метод, описанный выше.Есть ли что-то еще, что я пропустил, чтобы отправить данные на удаленный сервер с помощью curl?

1 Ответ

0 голосов
/ 11 февраля 2019

убедитесь, что вы используете isset () в вашем условии if при проверке публикации данных.как указано ниже

<?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;  
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...