ID: 26224 Updated by: [EMAIL PROTECTED] Reported By: justin dot white at mci dot com -Status: Open +Status: Feedback Bug Type: Filesystem function related Operating System: Windows 2000 PHP Version: 4.3.3 New Comment:
Does it work if you use the is_readable/is_writeable/is_executable functions instead of performing bitmask operations on the output of fileperms() ? Previous Comments: ------------------------------------------------------------------------ [2003-11-12 13:06:04] justin dot white at mci dot com The server in the test setup uses NTFS in all filesystems. ------------------------------------------------------------------------ [2003-11-12 13:04:27] justin dot white at mci dot com Description: ------------ On Linux, PHP 4.3.3 correctly returns file permissions from the filesystem. With Windows 2000 and IIS, PHP in CGI or ISAPI mode does not. The reproduce code assumes that another file (TEST.PHP) already exists in the filesystem. Any other file or directory could be used (although the permissions are returned differently for directories). TEST.PHP can have any permissions, including explicitly DENY "Full Access" for EVERYONE group. Reproduce code: --------------- <?php clearstatcache(); $test = fileperms('c:/inetpub/wwwroot/test.php'); echo '<H1>PERMS = '; $read = ($test & 0x0004) ? 'r' : '-'; $write = ($test & 0x0002) ? 'w' : '-'; $execute = ($test & 0x0001) ? 'x' : '-'; echo $read.$write.$execute.'</H1>'; ?> Expected result: ---------------- For files, returned results should be "<H1>PERMS = r--</H1>' if permissions were set to READ. Returned results should be "<H1>PERMS = rw-</H1>" if permissions were set to READ/WRITE or READ/WRITE/MODIFY. Returned results should be "<H1>PERMS = rwx</H1>" if permissions were set to READ/EXECUTE/WRITE or READ/EXECUTE/WRITE/MODIFY or FULL CONTROL. For directories, returned result should be similar (although permissions on directory are more well-defined). Actual result: -------------- For files, returned results will always be "<H1>PERMS = rw-</H1>'; For directories, returned result will always be "<H1>PERMS = rwx</H1>'; Even attempting this operation on "C:/pagefile.sys" returned "<H1>PERMS = rw-". Curiously, when marking the file as "read-only" in the file properties (not security tab), the returned results are "<H1>PERMS = r--</H1>" for files and "<H1>PERMS = r-x</H1>" for directories. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26224&edit=1