所以我有 GetMessages.php,這個腳本從資料庫(MongoDB)中獲取資料。然后它向 MyMessagesMDB.php 發送一個 cURL POST。這是代碼:
<?php
$FirstName = '';
$LastName = '';
$Email = '';
$Subject = '';
$Message = '';
GetFromDB();
echo $FirstName." ".$LastName;
echo "<br>";
echo $Email;
echo "<br>";
echo $Subject;
echo "<br>";
echo $Message;
echo "<br>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://192.168.0.163/MyMessagesMDB.php");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"FirstName=$FirstName&LastName=$LastName&Email=$Email&Subject=$Subject&TextMessage=$Message");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
curl_close($ch);
function GetFromDB(){
$client = new MongoDB\Driver\Manager('mongodb srv://####:####@####.tldyu.mongodb.net/Data');
$filter = [];
$options = [];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $client->executeQuery('ContactMessages.ContactForm', $query);
foreach($cursor as $document){
$document = json_decode(json_encode($document),true);
global $FirstName, $LastName, $Email, $Subject, $Message;
$FirstName = $document['FirstName'];
$LastName = $document['LastName'];
$Email = $document['Email'];
$Subject = $document['Subject'];
$Message = $document['Message'];
}
}
?>
MyMessagesMDB.php 是首先呼叫的腳本。它呼叫 GetMessages.php,然后應該接收它發布的資訊。這是代碼:
<?php
$FirstLoop = true;
if($FirstLoop == true){
file_get_contents('http://192.168.0.102/test/GetMessages.php');
$FirstLoop = false;
}
$FirstName = $_POST["FirstName"] ?? "";
$LastName = $_POST["LastName"] ?? "";
$Email = $_POST["Email"] ?? "";
$Subject = $_POST["Subject"] ?? "";
$Message = $_POST["TextMessage"] ?? "";
echo $FirstName." ".$LastName;
echo "<br>";
echo $Email;
echo "<br>";
echo $Subject;
echo "<br>";
echo $Message;
echo "<br>";
?>
但這里開始我的問題。
如果我呼叫 MyMessagesMDB.php,我會收到錯誤訊息:
PHP 警告:file_get_contents( http://192.168.0.102/test/GetMessages.php ):無法打開流:HTTP 請求失敗!。
如果我嘗試手動加載頁面,則不會出錯,并且資料庫中的資料會列印在螢屏上。
在 MyMessagesMDB.php 中,我像這樣注釋以下行:
#file_get_contents('http://192.168.0.102/test/GetMessages.php');
我可以毫無問題或錯誤地加載頁面。
問題
What do I have to do to call GetMessages.php from MyMessagesMDB.php and receive the information out of the database?
Note: I have tried
$curl_handle=curl_init();
curl_setopt($curl_handle,
CURLOPT_URL,'http://###.##.##.##/mp/get?
mpsrc=http://mybucket.s3.amazonaws.com/11111.mpg&mpaction=convert
format=flv');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application
name');
$query = curl_exec($curl_handle);
curl_close($curl_handle);
uj5u.com熱心網友回復:
在我們反復評論之后,我認為您的實作比它需要的要復雜得多。而不是MyMessagesMDB.php作為該程序的兩個發起者和資料的接收方,它僅需要一個啟動器。
在這個實作中,mdb.php作為將與您的資料庫一起使用的腳本,它的全部作業是從ContactMessages.ContactForm查詢中獲取所有內容并將其輸出為 JSON。
<?php
$client = new MongoDB\Driver\Manager('mongodb srv://####:####@####.tldyu.mongodb.net/Data');
$filter = [];
$options = [];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $client->executeQuery('ContactMessages.ContactForm', $query);
header('Content-Type: application/json');
echo json_encode($cursor);
然后你有get.php,你在學校的服務器上有它,它file_get_contents用來獲取 JSON,然后將它轉換回 PHP 陣列,然后你可以輸出你認為合適的任何東西。
<?php
$mdb_url = 'http://192.168.0.102/test/GetMessages.php';
$get = file_get_contents($mdb_url);
$decoded = json_decode($get, true);
foreach ($decoded as $document) {
echo $document['FirstName'] . '<br>' .
$document['LastName'] . '<br>' .
$document['Email'] . '<br>' .
$document['Subject'] . '<br>' .
$document['Message'] . '<br><hr>';
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/330822.html
