ID: 49620
Updated by: pajoye@php.net
Reported By: philipp at servicemail24 dot de
Status: Assigned
Bug Type: *Directory/Filesystem functions
Operating System: win32 only - Windows XP SP2
PHP Version: 5.3.0
Assigned To: pajoye
New Comment:
Please try
http://windows.php.net/downloads/qa/test/php-5.3.2-dev-nts-Win32-VC9-x86-200909221530.zip
I have tested it successfully using various shares (and other ACL
related issues).
Previous Comments:
------------------------------------------------------------------------
[2009-09-22 10:11:47] jani@php.net
Why did you add a comment? The link sent to you does not take you to
the "Add comment page" but to the "edit your submission". Next time when
someone asks for feedback, use the proper method in replying.
------------------------------------------------------------------------
[2009-09-22 08:58:03] philipp at servicemail24 dot de
php-5.3.2-dev-nts-Win32-VC9-x86 has the same problem.
I run this script using CLI (cmd.exe Terminal running php.exe)
------------------------------------------------------------------------
[2009-09-22 08:43:37] pajoye@php.net
Under which SAPI do you run it? CLI, FCGI or apache?
Can you try again using
http://windows.php.net/downloads/qa/test/php-5.3.2-dev-nts-Win32-VC9-x86.zip
please?
------------------------------------------------------------------------
[2009-09-22 07:52:52] philipp at servicemail24 dot de
Description:
------------
PHP 5.3.0 and 5.3.1RC1 has a bug in the is_readable and is_writeable
function if you execute a script with normal windows user rights.
The same test script works fine using PHP 5.2.x. Providing admin rights
for the user solves the problem but this is not a long term solution for
us.
All tested PHP releases are VC6 TS
PHP 5.2.10 -> OK
PHP 5.2.11 -> OK
PHP 5.3.0 -> FAILED
PHP 5.3.1RC1 -> FAILED
Reproduce code:
---------------
$folders = array( '\\\\10.1.1.1\\share',
'\\\\srv\\share',
'd:/temp'
);
foreach($folders as $folder) {
if(@!is_readable($folder)) {
echo('FAILED is_readable: ' . $folder . "\n");
} else {
echo "OK is_readable: " . $folder . "\n";
}
if(@!is_writeable($folder)) {
echo('FAILED is_writeable: ' . $folder . "\n");
} else {
echo "OK is_writeable: " . $folder . "\n";
}
$filename = $folder . '\\test.txt';
if(@!file_put_contents($filename, 'php test')) {
echo('FAILED file_put_contents: ' . $filename . "\n");
} else {
echo "OK file_put_contents: " . $filename . "\n";
}
}
Expected result:
----------------
OK is_readable: \\10.1.1.1\share
OK is_writeable: \\10.1.1.1\share
OK file_put_contents: \\10.1.1.1\share\test.txt
OK is_readable: \\srv\share
OK is_writeable: \\srv\share
OK file_put_contents: \\srv\share\test.txt
OK is_readable: d:/temp
OK is_writeable: d:/temp
OK file_put_contents: d:/temp\test.txt
Actual result:
--------------
FAILED is_readable: \\10.1.1.1\share
FAILED is_writeable: \\10.1.1.1\share
OK file_put_contents: \\10.1.1.1\share\test.txt
FAILED is_readable: \\srv\share
FAILED is_writeable: \\srv\share
OK file_put_contents: \\srv\share\test.txt
OK is_readable: d:/temp
OK is_writeable: d:/temp
OK file_put_contents: d:/temp\test.txt
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=49620&edit=1