ID:               38989
 Comment by:       RQuadling at GMail dot com
 Reported By:      info at xboot dot de
 Status:           Critical
 Bug Type:         Filesystem function related
 Operating System: Windows 2003 SP1
 PHP Version:      5CVS-2006-09-29 (snap)
 New Comment:

With the CLI version, if you are in the root of the drive when the
script is run then the file is found.

<?php 
// C:\boot.ini
echo file_get_contents('/boot.ini');
// D:\system.pas
echo file_get_contents('/system.pas');
?>

If in C:\, then boot.ini is found. If in my C:\BATCH directory then it
is not.

According to System Internals FileMon.exe, filtering
boot.ini;system.pas results in ...

14:56:56        php.exe:2004    IRP_MJ_DIRECTORY_CONTROL        C:\BATCH\       
NO SUCH
FILE    FileBothDirectoryInformation: boot.ini  
14:56:56        php.exe:2004    IRP_MJ_CREATE   C:\BATCH\boot.ini       NOT
FOUND   Options: Open  Access: All      
14:56:56        php.exe:2004    IRP_MJ_DIRECTORY_CONTROL        C:\BATCH\       
NO SUCH
FILE    FileBothDirectoryInformation: system.pas        
14:56:56        php.exe:2004    IRP_MJ_CREATE   C:\BATCH\system.pas     NOT
FOUND   Options: Open  Access: All      

This removes the issue as relating to ISAPI only (i.e. it is not the
webserver getting in the way).

Using php -n at the cli removes any issue with ini file settings.


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

[2006-09-29 08:33:32] info at xboot dot de

PHP runs as ISAPI

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

[2006-09-29 07:45:59] info at xboot dot de

Description:
------------
System:
Win 2003 SP1
IIS 6
PHP 5.2.0RC5-dev (29.09.2006)

File operations with slash at the beginning (absolute path) don't work.
It doesn't matter which kind of function i use. include(), fopen(),
SPL-functions, ... don't work if i pass a filename with a slash at the
beginning. If i add the drive letter it works correct.

The same script works fine with PHP 5.1.2.

Reproduce code:
---------------
<?php

echo $_SERVER['PHP_SELF'] . '<br />';

$handle = fopen($_SERVER['PHP_SELF'], "r");

// this is the same file, but it works:
// $handle = fopen("D:\Intranet\path.php", "r");

echo $handle;

?>

Expected result:
----------------
Result with PHP 5.1.2:

/intranet/path.php
Resource id #2

Actual result:
--------------
Result with PHP Version 5.2.0RC5-dev (29.09.2006):

/intranet/path.php

Warning: fopen(/intranet/path.php) [function.fopen]: failed to open
stream: No such file or directory in D:\Intranet\path.php on line 5



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


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

Reply via email to