include удаленых хостов

Статус
В этой теме нельзя размещать новые ответы.

Aliass

Новичок
include удаленых хостов

На сервере поставили защиту от удаленых инклайдов, т.е
include ('http://host.ru/'); - не работает, а
include ('host.php'); - работает.

Какие параметры надо указать что бы отключить защиту, что бы работали инклайды через удаленые хосты.
 

Vallar_ultra

Любитель выпить :)
include тоже должен работать.

Ну если совсем беда и не инклюдится ничего, ну напиши свою функцию раз fopen работает. Открываешь удалённый файл, экранируешь кавычки, делаешь eval и всё.
 

Aliass

Новичок
Я бы так и сделал но это на сервере, и желательно что бы работал include, а не обяснять каждому как сделать это через fopen.
 

Vallar_ultra

Любитель выпить :)
Для увеличения функциональности и упрощения кодирования, разработчики php сделали такую особенность в функциях fopen, file, include и прочих. Если имя файла начинается с "http://", сервер выполнит HTTP-запрос, скачает страницу, и запишет в переменную как из обычного файла. Аналогично работают префиксы "ftp://", "php://" (последний предназначен для чтения и записи в stdin, stdout и stderr). Нужно это было для того, чтобы разработчики сайтов не мучались с библиотеками http-запросов и не писали их вручную. Данная опция отключается в настройках php, параметр allow_url_fopen.
http://phpclub.ru/detail/article/2003-09-23
 

Aliass

Новичок
У меня "allow_url_fopen = On", а еще где это может настраиватся, может зенд так постарался, или плюнуть на это и заставить всех юзать fopen.
 

Vallar_ultra

Любитель выпить :)
СТОП! При чём тут Зенд? И кстати почему ты так уверен что include у тебя не работает а fopen при этом пашет как родной?
 

Aliass

Новичок
Я точно! уверен что fopen работает а инклайд нет,
сам проверял.

я уже не знаю где копать весь php.ini перекопал вот и думаю что еще может блокировать это мож и ЗЕНД такой, я думаю что тут дело не в php.ini.
 

Vallar_ultra

Любитель выпить :)
Ну вот что, во-первых посмотри что в возврате тебе отдает инклюд. Во-вторых проверь тупо через браузер что он отдаёт ТАМ. у тебя ВСЕ условия для include выполняются?
 

Aliass

Новичок
include ('http://host.ru/'); - ни чего не отдает, с условиями и с хостом все ок, в коде нет ошибок на 100%, это сервак что то не хочет работать с удалеными инклайдами
 

Vallar_ultra

Любитель выпить :)
поклади на удаленный хост файлик вот с таким содержанием и проинклюдь его:
PHP:
<?
echo '<?';
echo '$x = 5; var_dump(1);';
echo '?>';
?>
Если не покажет "int(1)", вот тогда значит всё плохо, иначе всё хорошо. А вообще почитай про то как работает связка Apache + PHP :)
 

Aliass

Новичок
Сделал так:
<?
echo '<?';
echo '$x = 5; var_dump(1);';
echo '?>';
?>
что через инклайд запущеный, что напримую выводит:
<?$x = 5; var_dump(1);?>
на другом хостинге также, только прикола в этом коде я так и непонял откуда возмется "int(1)"
 

Vallar_ultra

Любитель выпить :)
Так. Стоп! Это уже маразм какой-то.

Скрипт на удалёнке как я тебе дал.

Скрипт на стороне инклюда:
PHP:
include("http://mysite/test.php");
И эта связка даёт ТАКОЙ результат:
<?$x = 5; var_dump(1);?>
???
 

Aliass

Новичок
include("http://mysite/test.php"); - у меня же неработает удаленый инклюд, вот и ничего не выводит.

а если так

000.php:
<?
echo '<?';
echo '$x = 5; var_dump(1);';
echo '?>';
?>

001.php:
<?
include("000.php");
?>

то 001.php и 000.php выводит что и должен <?$x = 5; var_dump(1);?>
а если поставить в 000.php: "<?$x = 5; var_dump(1);?>" то выводит "int(1)"

Сдесь с настройками PHP или еще чего нибудь дело.
 

Aliass

Новичок
Да проверил, на удаленом сервере создал 000.php, на своем 001.php (<? include("http://mysite/000.php"); ?>), и ни чего не показывает.
 

Luerssen

Новичок
short_open_tags выключен, поэтому не компилиться
PHP:
<?php
echo '<?php';
echo '$x = 5; var_dump(1);';
echo '?>';
?>
 

Vallar_ultra

Любитель выпить :)
Вобщем в РНР allow_url_fopen - это тот параметр, который разрешает внешние инклюды.
 

Aliass

Новичок
short_open_tags = On
allow_url_fopen = On
Все есть в php.ini, и перегрузку делал.
удаленый fopen работает, удаленый include нет.
Сдесь глубже гдето спрятано
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху