[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: include с другого домена
rolling
Добрый день!
Есть необходимость в тексте включать файл, который находится на другом домене. Вариант

include('http://somedomen.com/scripts/topbanner.php');

не работает.
Подскажите п-ста, есть ли выход из данной ситуации?



Спустя 5 минут, 14 секунд (10.03.2010 - 23:21) catov написал(а):
file_get_contents()

Спустя 26 минут, 32 секунды (10.03.2010 - 23:48) Adil написал(а):
catov чушь не неси..


Спустя 11 минут, 38 секунд (10.03.2010 - 23:59) sergeiss написал(а):
rolling - ты что хочешь сделать? Взять именно код скрипта и выполнить его у себя на сервере или взять результаты выполнения скрипта, т.е. уже сформированную страницу?
Если первое, то это нереально, а если второе, то как сказал catov.

Спустя 1 минута, 58 секунд (11.03.2010 - 00:01) catov написал(а):
Nezabivaemiy если у него в topbanner.php хтмл-код например, в чем чушь?

Спустя 4 минуты, 16 секунд (11.03.2010 - 00:06) Adil написал(а):
catov а если не html?

Спустя 8 минут, 43 секунды (11.03.2010 - 00:14) catov написал(а):
Цитата (Nezabivaemiy @ 10.03.2010 - 23:06)
catov а если не html?

тогда в php.ini директива allow_url_fopen должна быть "1" и include должен работать

Спустя 3 минуты, 23 секунды (11.03.2010 - 00:18) Adil написал(а):
что за файл php.ini? расширение должно быть .php!

Спустя 2 минуты, 46 секунд (11.03.2010 - 00:20) catov написал(а):
Nezabivaemiy шутишь? smile.gif

Спустя 46 секунд (11.03.2010 - 00:21) Adil написал(а):
меняю тему wink.gif

Спустя 21 минута, 23 секунды (11.03.2010 - 00:43) krasilich написал(а):
sergeiss
Цитата
Если первое, то это нереально


eval(file_get_contents($url));


Разве не прокатит?

Спустя 18 минут, 25 секунд (11.03.2010 - 01:01) Adil написал(а):
see_man он вернет результат работы скрипта а не сами исходники

Спустя 54 минуты, 34 секунды (11.03.2010 - 01:56) krasilich написал(а):
Nezabivaemiy
а традиционный include что делает?
Выполняет php файл и вставляет результат его выполнения в вызывающий скрипт.

Спустя 16 минут (11.03.2010 - 02:12) Adil написал(а):
see_man

допустим файл test.php содержит:
<?php
$var = "Удаленная переменная"; // о как звучит! =)
print $var;
?>


Если мы сделаем
<?php
include "http://somesite.com/test.php";
print "<br />".$var;
?>

то выведет:
Удаленная переменная
Удаленная переменная


А если сделать:
<?php
file_get_contents("http://somesite.com/test.php");
print "<br />".$var;
?>

то выведет:
Удаленная переменная
Эмммм.. а что это за переменная $var ?


Спустя 5 часов, 55 минут, 23 секунды (11.03.2010 - 08:07) Семён написал(а):
Nezabivaemiy - трудно да? объяснять народу dry.gif
---

Спустя 43 минуты, 38 секунд (11.03.2010 - 08:51) Nikitian написал(а):
Nezabivaemiy
Вообщет так:

eval(file_get_contents("http://somesite.com/test.php"));

И всё, что было объявлено в подключаемом скрипте будет доступно в глобальной области видимости подключающего скрипта.

Спустя 36 минут, 46 секунд (11.03.2010 - 09:27) Michael написал(а):
Мне что-то подсказывает, что file_get_contents так открывает только файлы при указании относительного пути, а не через http.

Спустя 10 минут, 14 секунд (11.03.2010 - 09:38) Nikitian написал(а):
И через http может, если ему не запрещать.

Спустя 15 минут, 2 секунды (11.03.2010 - 09:53) Michael написал(а):
Цитата (Nikitian @ 11.03.2010 - 08:38)
И через http может, если ему не запрещать.

А что за настройка?

В любом случае - это будет подключение не совсем php файла, а просто файла с кодом php и ничем другим. (<?php, ?> - нельзя же для eval).

У меня сейчас:
allow_url_fopen = On
allow_url_include = Off

Спустя 4 минуты, 47 секунд (11.03.2010 - 09:57) Nikitian написал(а):
Оке, тогда извращённый вариант smile.gif

file_put_contents('/tmp/remotescript.php',file_get_contents('http://откуда-то там'));
if(file_exists('/tmp/remotescript.php') && is_file('/tmp/remotescript.php'))
include('/tmp/remotescript.php');

Конечно, если код отдаётся неинтерпретированным, иначе придётся коннектиться по ftp, чтобы забрать код.

Спустя 6 минут, 20 секунд (11.03.2010 - 10:04) sergeiss написал(а):
Я не понял, вообще, о чем спор идет?

Если на удаленном сервере всё правильно настроено, нету никаких дыр, то хрен он когда отдаст текст ПХП скрипта! Иначе было бы слишком просто залезть на любой сайт.

И хоть что используй: хоть include, хоть file_get_contents, все равно получим только результат выполнения скрипта на удаленном сервере. Вот какой-нибудь TXT-файл можно будет подключить, если удаленный сервер вообще отдаст его (если нет ограничений никаких). Но не ПХП скрипт.

Спустя 1 час, 35 минут, 21 секунда (11.03.2010 - 11:39) rolling написал(а):
всем спасибо за предложенные варианты.
как сейчас я понимаю, я не до конца изложил ситуацию:
bannertop.php может содержать как php-скрипт, так и просто html, так и код баннерной системы (java-script).

То есть вариант
eval(file_get_contents("http://somesite.com/bannertop.php"));

не работает.

Сейчас попробую поиграться с настройками php.ini и доложу ситуацию

Спустя 20 минут, 2 секунды (11.03.2010 - 11:59) sergeiss написал(а):
Цитата (rolling @ 11.03.2010 - 12:39)
Сейчас попробую поиграться с настройками php.ini и доложу ситуацию

Ты можешь "поиграться" у себя на сервере, а тут весь вопрос в том, что тебе выдаст другой сервер!

Спустя 14 часов, 5 минут, 40 секунд (12.03.2010 - 02:05) MatrixGod написал(а):
rolling
все очень просто!
Цитата
Если первое, то это нереально, а если второе, то как сказал catov.

ты не можешь получить пхп-код файла находящегося на другом серваке. точка.
если бы это было бы возможно, в 3 секунды можно было бы взломать любой сайт.
и в полторы секунды узнать юзер и пасс к базе данных и т.д. и т.п.

ну а если тебе нужен готовый результат, юзай file_get_contents().

Спустя 26 минут, 43 секунды (12.03.2010 - 02:32) dr_Lev написал(а):
Цитата
ты не можешь получить пхп-код файла находящегося на другом серваке

Если есть админ. доступ к другому сурверу, то можно сменить расширение нужного файла например на .html или .txt и тогда получишь весь код через file_get_contents() и через eval() его выполнить.

Можно также написать скрипт для удаленного сервера, опять же, если есть админ. доступ к серверу:
getfile.php

$filename=$_GET['filename'];
if (file_exists($filename)){
echo file_get_contents($filename);
}
Вызывать так
eval(file_get_contents('http://my.site.ru/getfile.php?filename=phpscript.php'));
Только с защитой нужно потрудиться
Быстрый ответ:

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