![]() |
![]() |
Хлам 16.03.2004 - 08:50 |
Возникла вот такая вот проблемка. Подключаю удаленный файл (указываю http:// и дальше), а в подключаемом файле не видна переменная, которая определена в подключающем файле. Щас, не торопитесь, пример: //index.php <? $x = "Бла-бла"; inсludе("http://localhost/temp/conf.php"); ?> //conf.php echo "Переменная". $x; На выходе имеем просто Переменная. Это так и задумано или какая тонкость все-таки присутствует? Или даже по другому вопрос, как использовать работу удаленного пхп-скрипта, с какими-то параметрами (что-то типа inсludе("x.php?a=1&b=2")) |
Mips 1 - 16.03.2004 - 09:01 |
чё хитришь-то? зачем тебе это? скопируй себе conf.php и юзай на здоровье |
Хлам 2 - 16.03.2004 - 09:23 | не все так просто. Долго объяснять зачем все это, но если есть решение у данной проблемы - то это было бы просто архизамечательно. можно, конечно, попробовать с помощью js подключить файлик удаленный, с параметрами, но от композиции js-php, что-то меня блевать тянет |
Terminator 3 - 16.03.2004 - 09:45 |
inсludе("http://localhost/temp/conf.php"); Думаю, что подключается не сам файл а результат его интерпретации |
buster 4 - 16.03.2004 - 10:06 | Terminator, хорошо объяснил. |
Хлам 5 - 16.03.2004 - 10:09 | хорошо-то может и хорошо, но насущность проблемы нисколько не уменьшилась. Вот и думайте, хорошо, все-таки, или так себе |
Megas 6 - 16.03.2004 - 10:18 |
Но терминатор прав. А то что это получается я у себя в какомнибудь pass.php пропизываю пароли на доступ к чему угодно а тут взяли и так просто их сперли. А вобще переименуй свой conf.php в чтонибудь типа conf.inc и юзай удаленно в таком случае он не будет выполнятся. |
Terminator 7 - 16.03.2004 - 10:18 |
Дело в том, что файлы с расширением php интерпретируется удаленным сервером как html, вот он и интерпретируется (это прописывается в параметрах) проще всего переименовать файл и вызывать inсludе("http://localhost/temp/conf.txt"); |
cnyx 8 - 16.03.2004 - 10:22 | В *.тхт нельзя, так как если хранить на серваке, то он содержимое этого *.тхт файла выдаст. Можно будет в браузере просмотреть. Надо *.inc расширение делать. |
Хлам 9 - 16.03.2004 - 10:23 | Знаете, не пробовал, но ощущение, что и в самом деле это и есть панацея. Посему, нижайший всем поклон, уважаемые, мы хорошо поработали :) |
Terminator 10 - 16.03.2004 - 10:25 |
[8] >>В *.тхт нельзя, так как если хранить на серваке, то он содержимое этого *.тхт файла выдаст. А надо что? |
Mips 11 - 16.03.2004 - 10:30 |
Знаем мы вас, начинающих хакеров :) Пароли вы и переменные разные таким образом посмотреть пытаетесь. Есть конечно один способ... надо чтобы на том сервере не выполнялся код пхп, иначе ты будешь получать результат работы пхп-скрипта |
cnyx 12 - 16.03.2004 - 10:33 | Блин, Mips правильно говорит, если это файл удаленный и расширение php в mime-types привязано, то будут выдаваться результаты работы скрипта. А если, к примеру, там будут пароли и логины к базе данных, и чтобы хранить их в одном месте, а для скрипта на другом серваке их инклюдом включать, то надо чтобы было расширение .inc |
Сиськин 13 - 16.03.2004 - 11:18 |
to >В *.тхт нельзя, так как если хранить на серваке, то он содержимое этого *.тхт файла выдаст. ############################################ А попробуй хранить данные в conf.php так--- <?php Данные как в txt ?> И никто ни посмотрит и... ########################################### Вообще-то это фигня если ты можешь прочитать этот файл просто так и и другой может...так что то, что хочешь ты нелогично даже... Забей на это... Подругому делай.... P.S А что в файле ? Пароли или общедоступные данные? |
hotspa 14 - 21.03.2004 - 14:58 |
эх, программеры....... когда подключаешь файл с помощью inсludе или require надо писать относительный путь к файлу, а не абсолютный, тогда все будет работать. |
джан 15 - 22.03.2004 - 13:58 | А я вот храню всё секретное на серваке у хостера на ступеньку ниже моего сайта(public_html), и никто кроме меня не достанет. |
Mips 16 - 22.03.2004 - 17:17 | hotspa, да куда уж нам... Прочитай сабж ещё раз. И, особенно, второе предложение, только очень внимательно. Джан, тоже самое ;) |
DIVЕR 17 - 23.03.2004 - 13:48 |
НУ, тогда уж делать сокетами и с базовой аутентификацией =) Это на случай, если надо выполнять код с другого сервера, а также исключить возможность просмотра этого кода другими личностями. Либо, если обращение к другому серверу (где хранится исходник PHP) будет происходить всё время с одного и того же адреса, то можно по идее разрешать вывод PHP-исходника только клиенту с этим самым адресом (клиенту - тому, кто делает inсludе('http://.....smth.php') ). Также хочу отметить для почти всех =) что inсludе и require - это НЕ функции! Это языковые конструкции! Т.е. они делают вот что: перед передачей исходника компилятору они заменяют свой вызов на результат того, что они подключают (это если в двух словах), т.е. работают на более низком уровне, чем, скажем, mysql_query(...). |
DIVЕR 18 - 23.03.2004 - 13:50 |
> передачей исходника компилятору Или всё же только интерпретатору?.. :))) |