ID:               16231
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Feedback
 Bug Type:         Scripting Engine problem
 Operating System: HP-UX 11.0
 PHP Version:      4.1.2
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php4-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-latest.zip




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

[2002-05-04 00:27:44] [EMAIL PROTECTED]

Had some feedback from Scott Kearney from Harvard Uni:-

He also experienced this on an OSF/1 platform. One of his colleagues
traced this to a directory permissions issue.

It appears that if a higher level directory has execute permission but
not read permission, this problem appears.

Changing the higher level directories to permission 555 fixed this.
This is a good workaround but I don't want to compromise my system
security to get an application to work ;-)

Thanks to Scott and his colleagues for their input.

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

[2002-03-23 09:12:54] [EMAIL PROTECTED]

Summary:
when using include, __FILE__ prepends / to relative paths

History:
Received errors from imp3.0 saying could not find included file. Error
message reported strange path names. See Horde bugs #911 and #912.

Sample Code:
a.php =>

<?php 
  echo "Calling  file ", __FILE__; 
  echo "<br>included as lib/a.php reports "; 
  include 'lib/a.php'; 
  echo "<br>included as ./lib/a.php reports "; 
  include './lib/a.php'; 
  echo "<br>included as /www/yacc/tmp/lib/a.php reports "; 
  include '/www/yacc/tmp/lib/a.php'; 
?> 

lib/a.php => 

<?php 
    echo  __FILE__; 
?> 

When I do this, I get 

Calling file /www/yacc/tmp/a.php 
included as lib/a.php reports /lib/a.php 
included as ./lib/a.php reports /lib/a.php 
included as /www/yacc/tmp/lib/a.php reports /www/yacc/tmp/lib/a.php 

Something keeps putting a leading / on relative paths!

Other Tests:

I created a simple C program to print out the __FILE__ value. When is
compile it with HP's ANSI C compiler it works as expected i.e. the
value is as specified in the include. When I compile with GNU CC
compiler (gcc) the value is "sanitised". 
 
See below 

/home/gedl/tmp $ cc -o a a.c ./lib/b.c && echo "The output" && ./a 
a.c: 
./lib/b.c: 
The output 
a.c 
./lib/b.c 
/home/gedl/tmp $ gcc -o a a.c ./lib/b.c && echo "The output" && ./a 
The output 
a.c 
lib/b.c 
/home/gedl/tmp $ 
 
Essentially the same but not exactly. However both compilers give a
valid answer.

I will continue to work on it but if someone has an answer it would be
appreciated.

Cheers

Ged

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


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

Reply via email to