странная ошибка с open_basedir

NeoLynx

Новичок
странная ошибка с open_basedir

Доброе время суток, может кто сталкивался или хоть подскажет куда копать:

$_SERVER['DOCUMENT_ROOT'] равен /home/145223/http

есть код:

file($_SERVER['DOCUMENT_ROOT']."/test.php");
file("/test.php");

первый вызов файла test.php работает нормально

Второй приводит к ошибке:
Warning: file() [function.file]: open_basedir restriction in effect. File(/test.php) is not within the allowed path(s): (.:/home/145223) in /home/145223/http/open.php on line 10
Warning: file(/test.php) [function.file]: failed to open stream: Not owner in /home/145223/http/open.php on line 10

open_basedir по phpinfo равен .:/home/145223 и no value
из-за чего такое может быть?
 

sakon

П..и.н..ок
из за того, что файл test.php находится в директории /http
 

Фанат

oncle terrible
Команда форума
что же в ней странного?

-~{}~ 08.11.06 19:13:

sakon
садись, два
 

NeoLynx

Новичок
Так, Фанат пришел... чувствую мне ща достанется :)

Странно то, что путь /test.php правилен, т.е. путь от корня, пробовал я и без / и http дописывать, разницы никакой, либо надо полностью писать, либо никак :(

Чувствую что проблема в настройках, точнее в open_basedir, но в чем именно понять не могу...
 

NeoLynx

Новичок
phprus
вот тебе цитаты:
--------------
В юникс-системах и на веб сайтах корень обозначается косой чертой - "/".
Это важно. Это не просто палочка, а самостоятельный АДРЕС, путь.
-------------
вот это и не работает, как я понимаю / это путь от корня в нашем случае от http, хотя я чего только не пробывал дописывать, но только при указании полного пути начинает работать.

-----------------------------
Если файл находится в том же каталоге, с которым работает программа - она его найдет, добавив текущий путь к имени файла.
примеры относительных путей:
file.php (фал лежит в той же папке)
------------------------------
без / в той же папке пишет аналогичную ошибку
 

Фанат

oncle terrible
Команда форума
как я понимаю / это путь от корня в нашем случае от http
какой ты умный - это что-то!
без / в той же папке пишет аналогичную ошибку
на сказочника где учился?

-~{}~ 08.11.06 20:00:

я одного не могу понять.
где логика?
ПРОСТАЯ, ЖИТЕЙСКАЯ.
Не супер-познания в программировании. не выученный наизусть мануал по пхп. а простая способность отличить красный мячик от зелёного.

чем должен думать человек, который, вроде бы, видит путь
/home/145223/http/ и тут же рядом пишет
/test.php, ожидая, что система будет его искать в /home/145223/http/
Ну неужели даже на секунду не задумался - как система отличит (если она будет думать, как он!)
/home от
/test.php?!
Как она узнает, что первое надо искать в корне диска, а ко второму надо прибавлять путь до http?

-~{}~ 08.11.06 20:06:

ну блин я не знаю.
вроде бы ,человек сам видит, что путь
/home/145223/http/test.php - работает
ну почему же он пытается вместо этого рабочего пути, обратиться к
/test.php ?!

вместо того, чтобы зайти в дом, этаж, квартиру, комнату, и сесть на стул, он пытается сесть на тот же стул прямо на улице!
и ещё удивляется - куда мебель украли!
 

NeoLynx

Новичок
логично... действительно, как сам не подумал... но вот не тестовый скрипт, а кусок из кода:
$file = file($_SERVER['DOCUMENT_ROOT']."/blocks/".$blockfile."");
работает, а
$file = file("blocks/".$blockfile."");
уже нет...
 

NeoLynx

Новичок
Фанат
Извиняюсь, накладки с инетом вчера были.
Ничего не вывел, вообще ничего.

moxnatiy
я фигею какие все умные... если ты такой умный покажи пальцем почему не работает.
С первым разъяснением фаната я полностью согласен, ступил, но тут-то все логично... по идее...
 

NeoLynx

Новичок
вот и я думаю, что в этом дело, хотя версия 4.4.4, а что такое?
 

Фанат

oncle terrible
Команда форума
Table 4.1. A few "magical" PHP constants
__FILE__ The full path and filename of the file. If used inside an include, the name of the included file is returned. Since PHP 4.0.2, always contains an absolute path whereas in older versions it contained relative path under some circumstances.

вот я думаю, кто из вас говорит неправду?
 

NeoLynx

Новичок
мне кажется что проблема не в коде...
Написал тестовый файл с уже умышленной ошибкой:

<?
$file = file($_SERVER['DOCUMENT_ROOT']."/blocks/block-Search.php");
$file = file("blocks/block-Search.php");
$file = file("/blocks/block-Search.php");
?>

Результат:

Warning: file() [function.file]: open_basedir restriction in effect. File(blocks/block-Search.php) is not within the allowed path(s): (.:/home/183821) in /home/183821/http/open.php on line 3

Warning: file(blocks/block-Search.php) [function.file]: failed to open stream: Not owner in /home/183821/http/open.php on line 3

Warning: file() [function.file]: open_basedir restriction in effect. File(/blocks/block-Search.php) is not within the allowed path(s): (.:/home/183821) in /home/183821/http/open.php on line 4

Warning: file(/blocks/block-Search.php) [function.file]: failed to open stream: Not owner in /home/183821/http/open.php on line 4

Получается, что не верны оба варианта?

-~{}~ 09.11.06 19:02:

вот и я не знаю :(
 

Фанат

oncle terrible
Команда форума
тебе надо убрать пункт 1 и пункт три.
первый как заведомо верный, второй - как заведомо неверный.
и разбиораться только со вторым.
 
Сверху