Forum Webscript.Ru

Программирование => PHP => Тема начата: chaosstorm от 16 Августа 2003, 19:40:15

Название: Переменная окружения HTTP_HOST
Отправлено: chaosstorm от 16 Августа 2003, 19:40:15
У меня на компе установлен Apache и PHP. Набираю http://localhost. Всё работает. Стоит где-то применить переменную окружения HTTP_HOST, например в:
include ("http://$HTTP_HOST/data/config.php")
Как в браузере выдаётся ошибки.
Пробую на сервере - всё нормально, а локально не получается. Есть ли какой-нибудь выход?

P.S. Я новичок, так что сильно не ругайте, лучше объясните.
Название: Переменная окружения HTTP_HOST
Отправлено: Меняздесьдавнонет от 16 Августа 2003, 21:20:14
попробую не ругать.
include служит для того, чтобы включать в состав скрипта другой скрипт. Его ИСХОДНЫЙ КОД.
А код лежит в файле.
А файл - это то, что ты смотришь проводником или нортон коммандером на диске ЦЭ или ДЭ.
а не то, что ты набираешь в командной строке браузера.
то, что ты набираешь в командной строке браузера, писать в include НЕЛЬЗЯ!
в инклюде надо писать путь к ФAЙЛУ
вида include(\'c:/www/data/config.php\');
тогда твой скрипт включит в себя конфиг и обработает то, что в нем написано.
а не обратится с запросом, как браузер, к своему серверу, запросит конфиг, сервер конфиг ИСПОЛНИТ, и вернет то, что ты в этом конфиге выводишь. Ничего не выводишь? Ну так ничего и не вернет!

чтобы сделать включение файлов универсальным, испольpeется переменная $DOCUMENT_ROOT
и вот ее и надо писать вместо $HTTP_HOST!!!
и безо всякого http://!!!
Название: Переменная окружения HTTP_HOST
Отправлено: Меняздесьдавнонет от 16 Августа 2003, 21:21:25
я вот только удивляюсь - откуда новички берут такую галиматью - инклюд по НТТР?
Сами доходят, или читают где?
Название: Переменная окружения HTTP_HOST
Отправлено: nagash от 18 Августа 2003, 05:32:12
Цитировать

Пробую на сервере - всё нормально, а локально не получается. Есть ли какой-нибудь выход?

ого!
Цитировать

 вот только удивляюсь - откуда новички берут такую галиматью - инклюд по НТТР?

угумс!
Название: Переменная окружения HTTP_HOST
Отправлено: archy от 18 Августа 2003, 13:59:30
я все понимаю, не флейма ради, но почему это в include нельзя писать "http://", или тут вопрос конкретно про винды?
http://ru.php.net/manual/ru/ref.filesystem.php#ini.allow-url-fopen
зачем обманывать людей....
Название: Переменная окружения HTTP_HOST
Отправлено: MrGreeN от 18 Августа 2003, 14:17:18
Путь считается от корневого каталога сервера т.е. локально и хттп там просто не надо, а инклудить код в удалённых файлах не получиться (под винды) т.к. http://ua.php.net/manual/ru/function.include.php и там посмотреть на первое "внимание"...
Название: Переменная окружения HTTP_HOST
Отправлено: Меняздесьдавнонет от 18 Августа 2003, 14:42:07
Цитировать
archy:
я все понимаю

:-))))))))))))))))))
ты себе льстишь

сделай файл
config.php
---
$a="blabla";
?>
---
и файл
index.php
---
//include("config.php");
//include("http://".$HTTP_HOST."config.php");
echo $a;
?>
---
и запусти его с разными инклюдами.
и когда ты поймешь, почему один тебе выводит, а другой - нет, то вот только после этого ты и сможешь писать, что "все понимаешь"
Название: Переменная окружения HTTP_HOST
Отправлено: chaosstorm от 19 Августа 2003, 11:31:28
А $DOCUMENT_ROOT будет работать на Apache и PHP установленном локально, а не на сервере?
Название: Переменная окружения HTTP_HOST
Отправлено: ThE0ReTiC от 19 Августа 2003, 11:33:36
chaosstorm
будет
Название: Переменная окружения HTTP_HOST
Отправлено: chaosstorm от 19 Августа 2003, 11:41:50
А вот у меня есть много страниц, расположенных в рахных катлогах какой код с include мне нужен(с использованием $DOCUMENT_ROOT - чтобы был универсальным), чтобы на всех их загружался скрипт расположенный в каталоге DATA корневого каталога?
Название: Переменная окружения HTTP_HOST
Отправлено: MrGreeN от 19 Августа 2003, 12:06:00
include ("$DOCUMENT_ROOT\\DATA\\yourfile.php");
только правильно пропиши корневик
Название: Переменная окружения HTTP_HOST
Отправлено: archy от 19 Августа 2003, 12:17:18
RomikChef
ясен болт, что второй вариант ничего не выведет, но инклюдить файлы через http:// можно, другой вопрос какие и для чего! :)
Название: Переменная окружения HTTP_HOST
Отправлено: chaosstorm от 19 Августа 2003, 12:21:36
Вроде всё сделал. Выводит такую ошибку:
-----------------
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
----------------------
Название: Переменная окружения HTTP_HOST
Отправлено: Bublic от 19 Августа 2003, 13:38:54
Попробуй использовать $_SERVER[\'DOCUMENT_ROOT\'].
Название: Переменная окружения HTTP_HOST
Отправлено: chaosstorm от 19 Августа 2003, 14:46:14
Теперь выводит:

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


А где можно проверить и правильно прописать корневик
Название: Переменная окружения HTTP_HOST
Отправлено: Меняздесьдавнонет от 19 Августа 2003, 15:13:20
archy
Да все знают, что так МОЖНО.
но так же, все, в отличие от тебя знают, что реального смысла в этом нет. А есть опасность и геморрой.
И все, кроме тебя знают, что влез ты совсем не в тему.
Надеюсь, что ты удовлетворил свое эго, показал всем, какой ты умный и начитанный, и больше от тебя в этой теме замечаний не будет.

chaosstorm
include ($_SERVER[\'DOCUMENT_ROOT\']."/DATA/yourfile.php");
Название: Переменная окружения HTTP_HOST
Отправлено: Bublic от 19 Августа 2003, 17:34:06
Запусти такой скрипт:

и  увидишь все что тебе надо.