На сервере A
$post_fields = array(
'variable_name' => 'variable_value',
'variable' => $variable,
);
$ch = curl_init('http://www.serverB.com/example.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
curl_setopt($ch, CURLOPT_POST, 1);
$result = curl_exec($ch);
$result
теперь содержит HTML-код страницы, которую вы запросили с сервера B.
На сервере B
// pseudocode
$variable = $_POST['variable'];
$variable_name = $_POST['variable_name'];
$db_results = $db->getQuery('SELECT * FROM table WHERE `variable` = ?', array($variable))->toString();
echo $db_results;
Это безопасно?
Это зависит.Нужно ли защищать информацию, поступающую из БД, от публичного просмотра?Очевидно, что при вышеописанной настройке информация просто echo
выводится на страницу на сервере B. Если кто-то найдет эту страницу, он сможет увидеть эту информацию.
Если это не имеет значения, тогда егоидеально сохраняет и не открывает никаких дверей (в частности, вы владеете обоими сайтами?).
Если вам нужно защититься от этого, я предлагаю отправить токен с сервера A на сервер B, чтобы подтвердить подлинность правильного сценария.пытаясь получить доступ к информации.Что-то вроде ключа API, который можно передать в качестве заголовка в запросе curl, а затем получить и проверить его с $_SERVER
на сервере B.