кросс-домен — запуск файла PHP на другом сервере с использованием переполнения стека

В настоящее время я пытаюсь добавить второй сервер для своего сайта, разделив различные службы. Один сервер отвечает за основную часть моего веб-сайта, а другой — за мою службу чата.

Однако иногда главный сервер должен соединяться с другим сервером, предпочтительно используя только файлы PHP. Это происходит, когда пользователь изменяет свои настройки, например, на главном сервере, тогда второй сервер должен быть уведомлен в тот же момент (т.е. обновление базы данных).

Так, например, когда пользователь меняет настройку на www.example.com/foo.php (Сервер 1), запрос должен быть отправлен www.sub.example.com/bar.php?setting=1&value=abc (Сервер 2), не показывая второй запрос пользователю. Это должно быть сделано в фоновом режиме, желательно даже асинхронно по запросу пользователя.

Кто-нибудь знает лучший / самый простой способ добиться этого?

0

Решение

Проверьте CURL: http://php.net/manual/en/book.curl.php

Обычно это то, что я использую для междоменных уведомлений.

1

Другие решения

Например. отправить запрос с curl. Возьмите параметры из данных публикации и используйте их для создания запроса (вы можете использовать свои собственные параметры, а не данные публикации)

//set POST variables

$url = $_POST['url'];

unset($_POST['url']);

$fields_string = "";

//url-ify the data for the POST

foreach($_POST as $key=>$value) {

$fields_string .= $key.'='.$value.'&';
}

$fields_string = rtrim($fields_string,'&');

//open connection

$ch = curl_init();

//set the url, number of POST vars, POST data

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($_POST));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);//execute post

$result = curl_exec($ch);

//close connection
curl_close($ch);
1