Edit report at http://bugs.php.net/bug.php?id=44901&edit=1
ID: 44901 Comment by: softwareelves at gmail dot com Reported by: jake at yahoo-inc dot com Summary: open_basedir as prefix complains on attempts to access non-existant files Status: Verified Type: Bug Package: Safe Mode/open_basedir Operating System: * PHP Version: 5.*, 6CVS (2009-03-16) Block user comment: N Private report: N New Comment: This bug doesn't seem to exist in 5.2.x. I found it's not just a trailing slash but anything after an existing file path. I found an easy way to show this bug: error_reporting( E_ALL | E_STRICT ); var_dump( file_exists( __FILE__ ) ); var_dump( file_exists( __FILE__."/something_that_doesnt_exists" ) ); ini_set( "open_basedir", dirname( __FILE__ ) ); var_dump( file_exists( __FILE__ ) ); var_dump( file_exists( __FILE__."/something_that_doesnt_exists" ) ); Previous Comments: ------------------------------------------------------------------------ [2008-05-03 00:41:11] jake at yahoo-inc dot com Description: ------------ When using open_basedir as a prefix, attempting to access files or directories which match the prefix but are not present on the filesystem raise open_basedir restriction warnings. Reproduce code: --------------- // create files or directories on the file system "/foo1", "/foo2" // add "/foo" (not "/foo/") to the open basedir restriction, then: var_dump(file_exists('/foo1')); var_dump(file_exists('/foo2')); var_dump(file_exists('/foo3')); Expected result: ---------------- this is the output returned: bool(true) bool(true) bool(false) which is expected, however, the "false" returned by the third call is disingenuous... it is false because the call is being blocked by open_basedir, and the following warning is triggered: [Fri May 2 17:33:05 2008] [error] PHP Warning: file_exists(): open_basedir restriction in effect. File(/foo3) is not within the allowed path(s) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=44901&edit=1