ID:               35691
 Comment by:       erik dot waibel at cubic dot com
 Reported By:      ejwaibel at gmail dot com
 Status:           Feedback
 Bug Type:         *Directory/Filesystem functions
 Operating System: Windows
 PHP Version:      5.1.1
 New Comment:

This is what I get when running the code with an existing drive (such
as C:)

Files in current directory...
Array ( [0] => TCdetails.php [1] => TCgetdata.php [2] =>
TCgetversion.php [3] => TCmanual.php [4] => TCpreview.php [5] =>
TCprocess.php [6] => TCsearch.php [7] => changes.php [8] =>
checklist.php [9] => details.php [10] => footer.php [11] => getarq.php
[12] => getdata.php [13] => help.php [14] => hints.php [15] =>
import.php [16] => login.php [17] => manual.php [18] => modules.php
[19] => password.php [20] => phpinfo.php [21] => process.php [22] =>
search.php [23] => srnform_windows.php [24] => stscr.php [25] =>
user.php ) 
string(35) "d:\scmtools\test\ctssrn-enhancement" CWD: 
bool(true) Change dir: 
string(3) "C:\" CWD: 
Files in CWD...
Array ( [0] => AUTOEXEC.BAT [1] => CONFIG.SYS [2] => Documents and
Settings [3] => IO.SYS [4] => Inetpub [5] => MSDOS.SYS [6] =>
NTDETECT.COM [7] => PHP [8] => Perl [9] => Program Files [10] =>
RECYCLER [11] => System Volume Information [12] => WINDOWS [13] =>
boot.ini [14] => dsn [15] => dsn.dir [16] => dsn.pag [17] => mvfslogs
[18] => ntldr [19] => pagefile.sys [20] => temp.log [21] => wmpub ) 

This is what I get when I change to the drive that is being 'subst':

Files in current directory...
Array ( [0] => TCdetails.php [1] => TCgetdata.php [2] =>
TCgetversion.php [3] => TCmanual.php [4] => TCpreview.php [5] =>
TCprocess.php [6] => TCsearch.php [7] => changes.php [8] =>
checklist.php [9] => details.php [10] => footer.php [11] => getarq.php
[12] => getdata.php [13] => help.php [14] => hints.php [15] =>
import.php [16] => login.php [17] => manual.php [18] => modules.php
[19] => password.php [20] => phpinfo.php [21] => process.php [22] =>
search.php [23] => srnform_windows.php [24] => stscr.php [25] =>
user.php ) 
string(35) "d:\scmtools\test\ctssrn-enhancement" CWD: 
bool(false) Change dir: 
string(35) "d:\scmtools\test\ctssrn-enhancement" CWD: 
Files in CWD...
Array ( [0] => TCdetails.php [1] => TCgetdata.php [2] =>
TCgetversion.php [3] => TCmanual.php [4] => TCpreview.php [5] =>
TCprocess.php [6] => TCsearch.php [7] => cc-get-modules.exe [8] =>
cc-import.exe [9] => changes.php [10] => checklist.php [11] =>
details.php [12] => error_log.log [13] => footer.php [14] => getarq.php
[15] => getdata.php [16] => help.php [17] => hints.php [18] =>
import.php [19] => login.php [20] => manual.php [21] => modules.php
[22] => password.php [23] => phpinfo.php [24] => process.php [25] =>
search.php [26] => srnform_windows.php [27] => stscr.php [28] =>
user.php )


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

[2005-12-19 00:14:44] [EMAIL PROTECTED]

I've also tested with networked drives and it works fine.
can you please test with a simple script like:
<?php

// list the files in this directory
print_r(glob('*.php'));
var_dump(getcwd());

// change to another drive (replace with something existent)
var_dump(chdir('Z:'));
var_dump(getcwd());
print_r(glob('*'));

?>

Please include all error messages printed by PHP.

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

[2005-12-16 16:41:50] erik dot waibel at cubic dot com

I updated my PHP version to the Windows .zip file that you included,
but that still did not work.  We are using a Windows NT 5.2 build 3790
machine (it's a Windows NT server).  I actually just checked and it
seems like I can change to the "C:" drive, but what I forgot to mention
earlier, here is another piece of my code that is used to "subst" the Q:
drive for a directory that exists on another drive.

$subst = exec("subst $substDrive M:\\$sessionView", $substOutput);
                                $currentDir = getcwd();
                                $changeTo = "$substDrive\\sdadmin";
                                chdir("$changeTo") || die("Can't change 
location to: $changeTo.");

The reason I'm doing this is because of our Source Control program
"ClearCase" that we use.  Can you let me know if there is another way I
should do this?

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

[2005-12-16 14:06:53] [EMAIL PROTECTED]

Please try using this CVS snapshot:

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

Sorry, but I can't reproduce this behaviour. I'm able to chdir()
between drives with PHP 5.1.2 from snaps.php.net and with PHP 6 built
by me.
I've also tested on two different machines with windows XP.

And what is your windows version?

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

[2005-12-15 21:09:52] ejwaibel at gmail dot com

Description:
------------
The chdir() command works correctly when changing to a given dir in the
SAME drive, however, I believe that it should be capable of changing to
another drive letter and then directory in that drive letter.  I know
that Windows can do that using "cd /D <path>".

Reproduce code:
---------------
$currentDir = getcwd();
echo "currentDir: $currentDir<br/>";
chdir("Q:\\sdadmin") || die(sendMessage("Can't change to
'$substDrive\\sdadmin'", true));        
echo getcwd();

Expected result:
----------------
I would have expected to change from "D:\scmtools\oss\" to
"Q:\sdadmin".

Actual result:
--------------
The chdir() function returns false and I show an error message.


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


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

Reply via email to