Forum Webscript.Ru
Программирование => PHP => Тема начата: chaosstorm от 16 Августа 2003, 19:40:15
-
У меня на компе установлен Apache и PHP. Набираю http://localhost. Всё работает. Стоит где-то применить переменную окружения HTTP_HOST, например в:
include ("http://$HTTP_HOST/data/config.php")
Как в браузере выдаётся ошибки.
Пробую на сервере - всё нормально, а локально не получается. Есть ли какой-нибудь выход?
P.S. Я новичок, так что сильно не ругайте, лучше объясните.
-
попробую не ругать.
include служит для того, чтобы включать в состав скрипта другой скрипт. Его ИСХОДНЫЙ КОД.
А код лежит в файле.
А файл - это то, что ты смотришь проводником или нортон коммандером на диске ЦЭ или ДЭ.
а не то, что ты набираешь в командной строке браузера.
то, что ты набираешь в командной строке браузера, писать в include НЕЛЬЗЯ!
в инклюде надо писать путь к ФAЙЛУ
вида include(\'c:/www/data/config.php\');
тогда твой скрипт включит в себя конфиг и обработает то, что в нем написано.
а не обратится с запросом, как браузер, к своему серверу, запросит конфиг, сервер конфиг ИСПОЛНИТ, и вернет то, что ты в этом конфиге выводишь. Ничего не выводишь? Ну так ничего и не вернет!
чтобы сделать включение файлов универсальным, испольpeется переменная $DOCUMENT_ROOT
и вот ее и надо писать вместо $HTTP_HOST!!!
и безо всякого http://!!!
-
я вот только удивляюсь - откуда новички берут такую галиматью - инклюд по НТТР?
Сами доходят, или читают где?
-
Пробую на сервере - всё нормально, а локально не получается. Есть ли какой-нибудь выход?
ого!
вот только удивляюсь - откуда новички берут такую галиматью - инклюд по НТТР?
угумс!
-
я все понимаю, не флейма ради, но почему это в include нельзя писать "http://", или тут вопрос конкретно про винды?
http://ru.php.net/manual/ru/ref.filesystem.php#ini.allow-url-fopen
зачем обманывать людей....
-
Путь считается от корневого каталога сервера т.е. локально и хттп там просто не надо, а инклудить код в удалённых файлах не получиться (под винды) т.к. http://ua.php.net/manual/ru/function.include.php и там посмотреть на первое "внимание"...
-
archy:
я все понимаю
:-))))))))))))))))))
ты себе льстишь
сделай файл
config.php
---
$a="blabla";
?>
---
и файл
index.php
---
//include("config.php");
//include("http://".$HTTP_HOST."config.php");
echo $a;
?>
---
и запусти его с разными инклюдами.
и когда ты поймешь, почему один тебе выводит, а другой - нет, то вот только после этого ты и сможешь писать, что "все понимаешь"
-
А $DOCUMENT_ROOT будет работать на Apache и PHP установленном локально, а не на сервере?
-
chaosstorm
будет
-
А вот у меня есть много страниц, расположенных в рахных катлогах какой код с include мне нужен(с использованием $DOCUMENT_ROOT - чтобы был универсальным), чтобы на всех их загружался скрипт расположенный в каталоге DATA корневого каталога?
-
include ("$DOCUMENT_ROOT\\DATA\\yourfile.php");
только правильно пропиши корневик
-
RomikChef
ясен болт, что второй вариант ничего не выведет, но инклюдить файлы через http:// можно, другой вопрос какие и для чего! :)
-
Вроде всё сделал. Выводит такую ошибку:
-----------------
Notice: Undefined variable: DOCUMENT_ROOT in e:\\www\\home\\localhost\\www\\index.php on line 3
Warning: main(\\DATA\\kernel.php): failed to open stream: No such file or directory in e:\\www\\home\\localhost\\www\\index.php on line 3
Fatal error: main(): Failed opening required \'\\DATA\\kernel.php\' (include_path=\'.;c:\\php4\\pear\') in e:\\www\\home\\localhost\\www\\index.php on line 3
----------------------
-
Попробуй использовать $_SERVER[\'DOCUMENT_ROOT\'].
-
Теперь выводит:
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in e:\\www\\home\\localhost\\www\\index.php on line 3
А где можно проверить и правильно прописать корневик
-
archy
Да все знают, что так МОЖНО.
но так же, все, в отличие от тебя знают, что реального смысла в этом нет. А есть опасность и геморрой.
И все, кроме тебя знают, что влез ты совсем не в тему.
Надеюсь, что ты удовлетворил свое эго, показал всем, какой ты умный и начитанный, и больше от тебя в этой теме замечаний не будет.
chaosstorm
include ($_SERVER[\'DOCUMENT_ROOT\']."/DATA/yourfile.php");
-
Запусти такой скрипт:
phpinfo(); ?>
и увидишь все что тебе надо.