Есть необходимость в тексте включать файл, который находится на другом домене. Вариант
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.
Если первое, то это нереально, а если второе, то как сказал 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 шутишь?

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

Спустя 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 файл и вставляет результат его выполнения в вызывающий скрипт.
а традиционный include что делает?
Выполняет php файл и вставляет результат его выполнения в вызывающий скрипт.
Спустя 16 минут (11.03.2010 - 02:12) Adil написал(а):
see_man
допустим файл test.php содержит:
Если мы сделаем
то выведет:
А если сделать:
то выведет:
допустим файл 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 - трудно да? объяснять народу
---

---
Спустя 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 написал(а):
Оке, тогда извращённый вариант 
Конечно, если код отдаётся неинтерпретированным, иначе придётся коннектиться по ftp, чтобы забрать код.

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-файл можно будет подключить, если удаленный сервер вообще отдаст его (если нет ограничений никаких). Но не ПХП скрипт.
Если на удаленном сервере всё правильно настроено, нету никаких дыр, то хрен он когда отдаст текст ПХП скрипта! Иначе было бы слишком просто залезть на любой сайт.
И хоть что используй: хоть include, хоть file_get_contents, все равно получим только результат выполнения скрипта на удаленном сервере. Вот какой-нибудь TXT-файл можно будет подключить, если удаленный сервер вообще отдаст его (если нет ограничений никаких). Но не ПХП скрипт.
Спустя 1 час, 35 минут, 21 секунда (11.03.2010 - 11:39) rolling написал(а):
всем спасибо за предложенные варианты.
как сейчас я понимаю, я не до конца изложил ситуацию:
bannertop.php может содержать как php-скрипт, так и просто html, так и код баннерной системы (java-script).
То есть вариант
не работает.
Сейчас попробую поиграться с настройками php.ini и доложу ситуацию
как сейчас я понимаю, я не до конца изложил ситуацию:
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'));Только с защитой нужно потрудиться