Forum Webscript.Ru
Программирование => PHP => Тема начата: HUNTER от 07 Декабря 2003, 17:48:00
-
При вставке на страницу инклуда типа
include("http://$_SERVER[HTTP_HOST]/forum/ssi.php?a=news&show=10"); ?>
или
include("http://www.server.com/forum/ssi.php?a=news&show=10"); ?>
php в ответ ругается:
Warning: main() [function.main]: php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /usr/home/www/public_html/index.php on line 17
Есть идеи?
-
не подключены необходимые расширения
-
есть.
идея такая.
команда include служит для включения в PHP скрипт файлов, написаных на PHP.
ключевые слова я выделил.
Главное ключевое слово - ФАЙЛ. инклюд включает ФАЙЛЫ. А файлы бывают только на диске.
Второе ключевое слово - РНР. Инклюдить надо КОД РНР. И только.
Если ты хочешь вставить какой-то ТЕКСТ, то для этого существуют другие команды. readfile например.
По поводу же ошибки - это очевидно.
Не может найти сервер запись ДНС для хоста, который ты запрашиваешь.
-
Просто на локалхосте это работает. а вот на хостинге нет, и мне не нужно вставлять кусок текста, мне нужно вставить именно сам скрипт и сполнить его со значением переменой в адресе. можно ли как нить по другому поступить если нужно вставить php файл с переменными задаваемыми в URL строке типа
ssi.php?a=news&show=10
Заранее пасиб!
-
HUNTER, скжи мне.
ты когда-нибудь видел "файл с переменными"?
У тебя на диске много файлов. Коунтерстрайк, старкрафт, еще много полезных программ. Ты видел там хоть один файл , чтобы ему передавались так переменные?
Не видел.
потому, что файлам так переменные не передаются.
Потому, что файлы - на диске. А у тебя - урл. В браузере. Урл запрашивает у сервера ТЕКСТ. И получает ТЕКСТ. Ты бы хотя бы из любопытства, хоть бы раз в жизни заглянул в исходный текст полученной от РНР скрипта страницы, и убедился - там НИ ОДНОЙ РНР команды НЕТ. Там только текст. Текст с тегами.
если ты вставляешь так, как вставляешь, то ты вставляешь не скрипт, а текст.
Я понимаю, это очень трудно понять. Но не поняв, нельзя ни одной строчки на РНР писать.
Если ты не понимаешь в теории, я тебе по-простому скажу.
НЕЛЬЗЯ!!!!
КОМАНДЕ INCLUDE!!!!
В КАЧЕСТВЕ АРГУМЕНТА!!!!
ПЕРЕДАВАТЬ ЧТО-ТО, НАЧИНАЮЩЕЕСЯ НА http://HTTP://
А ПЕРЕДАВАТЬ НАДО ТОЛЬКО ФАЙЛЫ!!!
а А ФАЙЛЫ ЛЕЖАТ НА ДИСКЕ!!!
а НЕ В ИНТЕРНЕТЕ!!!
Потому, что команде include надо передавать в качестве параметра файл с РНР кодом. А по http:// ты получишь РНР код либо от идиота, либо от хакера, и в этом случае идиотом будешь ты.
и если ты хочешь вставить РЕЗУЛЬТАТ выполнения скрипта, это значит, что ты хочешь вставить ТЕКСТ.
А если ты хочешь вставить не такст, а код, то инклюдь файл.
напиши в инклюде путь к файлу на диске а перед этим определи переменные, которые ты хочешь передать этому скрипту. и все.
Я так понимаю, что это - ЕДИНСТВЕННО правильный путь, судя потому, что хост у тебя свой.
-
А если уж никак не получается способами, которые описал Ромик, взгляни вот на это - [p]virtual[/p]
-
RomikChef я прекрасно понимаю суть PHP, но млин каким боком я смогу с хоста стянуть файл? Если он не у меня на сервере лежит?
-
RomikChef я прекрасно понимаю суть PHP, но дык каким же тогда еще способом можно заинклудить PHP файл лежащий не на моем хосте??
я может не совсем правильно задал впрос :( вначале
н оведь даже в мануале есть такое:
Example 11-5. include() through HTTP
// Works.
include \'http://www.example.com/file.php?foo=1&bar=2\';
?>
-
С какого ХОСТА?
В переменной $_SERVER[HTTP_HOST] у тебя лежит адрес твоего собственного сервера! Теперь ты говоришь, что файл у тебя не на сервере лежит.
То есть, ты собрался тырить чужие новости и вставлять в свой сайт. Я правильно тебя понял?
-
В реальной жизни заинклудить пхп файл, лежащий не на своем хосте, ПРАКТИЧЕСКИ НЕВОЗМОЖНО.
Это тебе просто. Для того, чтобы ты понял, наконец, что такое РНР, и как оно работает. А то у тебя с этим большие проблемы.
По сути же твоего вопроса я тебе ответил в самом верху.
-
еще по сути твоего вопроса.
Вот, читай самый первый пункт.
http://xpoint.ru/forums/programming/PHP/faq.xhtml#44
На будущее.
-
Пасиб за помощь! ничего я тырыть вообще то не собирался... разобрался сам..... ThE0ReTiC огромный thanks и правда в PHP запчастей не хватало :)
-
RomikChef
а как же тогда по твоему работают такие системы как http://www.web-promoter.ru ?
или http://fastlink.msk.ru/
или http://towerlinks.ru/
и еще много им подобных?
-
ThE0ReTiC
а не мог бы ты и мне поведать то что рассказал HUNTERу? каких запчастей не хватает? просто для общего развития интересно
-
Эти системы работают на идиотах.
-
А как тогда инклюдить htm файла, которые сами разбирают URL, как например http://kdg.htmlweb.ru/photo/index.htm?15