[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вызов скрипта на другом сервере
IndigoHollow
У меня есть два сервера:

сервер1 - без поддержки PHP и MySQL. На этом сервере находится сайт.

сервер2 - с поддержкой PHP и MySQL

Могу ли я с сервера1 запустить php-скрипт на сервере2, а потом получить обратно результат выполнения этого скрипта? Если да, то как? В какую сторону копать?

Подробнее: Написал скрипт голосования, который работает на локальном сервере, а теперь хочу перенести на реальный сайт. Проблема в том, что сервер1 не поддерживает php, поэтому хочу производить все вычисления на сервере2, а результат показывать на сервере1.
Игорь_Vasinsky
IndigoHollow
1. фрейм
2. сгенерировть на php html контент и подключить как JS
3. ajax (предпочтительней)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
IndigoHollow
Цитата (Игорь_Vasinsky @ 13.01.2015 - 09:29)
IndigoHollow
1. фрейм
2. сгенерировть на php  html контент и подключить как JS
3. ajax (предпочтительней)

Да, я выбираю AJAX. Мне надо послать на сервер2 ip посетителя. Как это можно сделать, ведь JavaScript не умеет определять ip? Нашел вот решение:

<script type="application/javascript">
function getip(json){
var ipaddress = json.ip;
}
</script>

<
script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"></script>


Итак, мы получили ip посетителя. Теперь пишем AJAX-конструкцию:

$.ajax({
url: "http://domain/button1.php",
cache: true,
type: 'Get',
data:{book:1},
success:
function(count) {

}
}
);


Как передать через эту конструкцию ip в php-функцию?
Игорь_Vasinsky
Можно ж проще тогда

на сервере2 - где PHP - создать файл getip.php


<?php
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}

// далее использовать $ip;
//запись в БД и что угодно


?>


на сервере1 где тока HTML в нужной страничке добавить

<iframe width="1px" height="1px" src="http://сервер2/getip.php"></iframe>



Когда юзер попадает на страницу сервера1 - он подгружает во фрейме скрипт с сервера2 - где отдается его IP

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
kaww
Цитата (Игорь_Vasinsky @ 13.01.2015 - 09:29)
ajax (предпочтительней)

только нужно иметь ввиду, что конкретно в этом случае речь идет о кроссдоменном ajax со всемы вытекающими.
Игорь_Vasinsky
kaww
тут оказалось и iframe достаточно более чем.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
mvg
Еще можно
- get_file_contents
- include (allow_url_include on)
- fopen
- curl

А также сокеты
Игорь_Vasinsky
mvg
на сервере1 - тока HTML

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
mvg
Цитата (Игорь_Vasinsky @ 13.01.2015 - 13:58)
mvg
на сервере1 - тока HTML

Мигрировать на Сервер 2 , а htaccess настроить с RewriteRule Сервер 1 Сервер 2. huh.gif

Или с помощью node.js установить прямую связь с Сервером 2 через PPP соединение используя socket.io

А также в node.js есть http.get который позволить затянуть файл из вне (сам не пробовал, но слышал и гуглил)
Игорь_Vasinsky
mvg
а чем тебе ifrme не подходит? лишние движения не нужны никому

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
Цитата (IndigoHollow @ 13.01.2015 - 13:01)
Мне надо послать на сервер2 ip посетителя. Как это можно сделать, ведь JavaScript не умеет определять ip?

и не нужно ничего определять, клиент же сам будет обращаться ко второму серверу.
IndigoHollow
Цитата (Игорь_Vasinsky @ 13.01.2015 - 10:15)
Можно ж проще тогда

на сервере2 - где PHP - создать файл getip.php


<?php
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}

// далее использовать $ip;
//запись в БД и что угодно


?>


на сервере1 где тока HTML в нужной страничке добавить

<iframe width="1px" height="1px" src="http://сервер2/getip.php"></iframe>



Когда юзер попадает на страницу сервера1 - он подгружает во фрейме скрипт с сервера2 - где отдается его IP

За решение с iframe спасибо, оно работает. А не знаете как сделать то же самое через аякс? Все-таки iframe не рекомендуется использовать из SEO соображений.
Игорь_Vasinsky
аяксом отправить ip полученый по API на сервер2 (на обработчик)

Цитата
Все-таки iframe не рекомендуется использовать из SEO соображений.

что ты там поисковику собрался отдавать в iframe? )))

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
IndigoHollow
Цитата (Игорь_Vasinsky @ 13.01.2015 - 14:43)
аяксом отправить ip полученый по API на сервер2 (на обработчик)

Цитата
Все-таки iframe не рекомендуется использовать из SEO соображений.

что ты там поисковику собрался отдавать в iframe? )))

Я ничего не хочу поисковику отдавать, просто не рекомендуется использовать любые iframe на сайте, это в любом SEO-учебнике написано smile.gif


Большое спасибо, Игорь_Vasinsky, за помощь! Потанцевал немного с бубном, допилил под свою задачу и все получилось! smile.gif
Игорь_Vasinsky
Цитата
Я ничего не хочу поисковику отдавать

и
Цитата
это в любом SEO-учебнике


противоречат друг-другу biggrin.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.