ID:               49456
 Updated by:       sjo...@php.net
 Reported By:      michele dot manzato at gmail dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         Scripting Engine problem
 Operating System: Ubuntu/Hardy
 PHP Version:      5.2.11RC1
 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Note that this behavior is the same as in a shell:
cd b/c
ls ..

It shows the contents of /tmp, not the contents of /tmp/b. This works
as it should.


Previous Comments:
------------------------------------------------------------------------

[2009-09-03 14:36:40] michele dot manzato at gmail dot com

Description:
------------
PHP script current working directory being converted to the real path
cause error in relative files inclusion (see also bug #46814).

As one can see in the reproduce code the script's getcwd() says
'/tmp/a' although the script was run from '/tmp/b/c'. As a result the
require() instruction fails because it can't find any '/inc.php'.
'/tmp/b/inc.php' would have been found if the original symlinked path
was preserved.

Reproduce code:
---------------
~$ cd /tmp
/tmp$ mkdir a
/tmp$ mkdir b
/tmp$ echo '<?php echo getcwd(); require "../inc.php";?>' > a/test.php
/tmp$ echo '<?php echo "ok\n";?>' > b/inc.php
/tmp$ ln -s /tmp/a b/c
/tmp$ cd b/c/
/tmp/b/c$ php -f test.php





Expected result:
----------------
ok

Actual result:
--------------
/tmp/a
Warning: require(../inc.php): failed to open stream: No such file or
directory in /tmp/a/test.php on line 1

Fatal error: require(): Failed opening required '../inc.php'
(include_path='.:/usr/share/php:/usr/share/pear') in /tmp/a/test.php on
line 1



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=49456&edit=1

Reply via email to