Использование CURL и JSON для анализа переменных с сервера A на сервер B - PullRequest
0 голосов
/ 30 июля 2011

Я пытаюсь выполнить запросы mysql с удаленного сервера (сервер B) и затем вернуть информацию из БД обратно в качестве переменных на исходный сервер (сервер A), используя CURL и JSON.

ЭтоВот каков будет конечный результат:

  1. Когда кто-нибудь заходит на страницу с сервера A, запрос будет отправлен с сервера A на сервер B, который затем подключится к базе данных.

  2. Как только сервер B подключится к базе данных, он будет получать информацию из определенных строк и полей, а затем отправлять ее обратно на сервер A в виде переменных, таких как $name $email и т. Д. И т. Д..

  3. Как только сервер A получит информацию, он затем выведет эхо и т. Д. И т. Д. *

Вот код I 'у нас так далеко ...

Сервер A

<?

include ('../reference.php');


$post_fields = array(
    'unq__id' => $_reference,
    'gdi__username' => $sponsor_GDI_id,
);
$ch = curl_init('http://example.com/WP/d__access.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,  $post_fields);
curl_setopt($ch, CURLOPT_POST, 1);
$result = curl_exec($ch);



?>

Сервер B

<?

include ('config/wp__2135432135435135412312534.php');

mysql_connect($hostname,$username,$password) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

$reference = $_POST['__id'];
$variable_name = $_POST['__username'];
$select = mysql_query("SELECT * FROM $usertable WHERE ". "username = '$variable_name' AND Unique_id = '$reference'");


?>

У меня нетЯ на самом деле еще не протестировал приведенный выше код, потому что я пытаюсь найти способ отправить все эти переменные с Сервера B на Сервер A (_email, $s, $tst etc etc)

Так что я не even уверен, что то, что у меня есть, будет работать ...

Теперь из предыдущего вопроса мне сказали, что я могу использовать JSON для отправки переменных обратно на сервер А ... "Возможно, вы могли быпопросите сервер B вернуть строку в кодировке JSON, которую вы можете декодировать на сервере A. "

Может кто-нибудь сказать мне, как я поступил бы, если бы сделал что-то подобное?Или были бы хороши любые более простые альтернативы.

1 Ответ

1 голос
/ 30 июля 2011

На вашем B-сервере вы можете создать один массив, который будет содержать все данные, которые вам нужно отправить обратно в A:

$result = array(
    'sponsor_first_nme' => $sponsor_first_nme, 
    'sponsor_second_nme' => $sponsor_second_nme, 
);

Затем вы можете json_encode() этого массива и повторить его:

echo json_encode($result);

Это означает, что ваш сценарий на B будет отображать некоторый действительный JSON.


Затем, на A, просто получитеэтот результат в виде строки, как вы уже сделали:

$result = curl_exec($ch);

И json_decode() этой строки, чтобы получить обратно некоторые данные PHP, которые вы можете использовать (массив или объект, в зависимости от используемых вами параметров) :

$data = json_decode($result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...