ID: 36290 Updated by: [EMAIL PROTECTED] Reported By: info at silisoftware dot com -Status: No Feedback +Status: Closed Bug Type: Filesystem function related Operating System: Windows XP Pro SP2 PHP Version: 4.4.2 New Comment:
Fixed in 5.3.x Previous Comments: ------------------------------------------------------------------------ [2006-06-23 11:47:11] hanskrentel at yahoo dot de I just checked this out on PHP Version 5.1.2 and the behavior for me is the same, so this was not fixed. reproduced with: $tempname = tempnam('', 'foo'); echo $tempname.'<br>'; echo realpath($tempname).'<br>'; output in my case: \foo5E0.tmp d:\foo5E0.tmp d:\ is not my tempdir anyway this function behaves inconsisten per default as discribben in the current online documentaion: >>Creates a file with a unique filename in the specified directory. If the directory does not exist, tempnam() may generate a file in the system's temporary directory, and return the name of that.<< http://www.php.net/manual/en/function.tempnam.php so the behavior is correct per definition but useless and i guess not intended. ------------------------------------------------------------------------ [2006-02-13 01:00:04] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2006-02-05 10:31:29] [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 ------------------------------------------------------------------------ [2006-02-05 02:19:00] info at silisoftware dot com Description: ------------ tempnam() returns a temp filename, and creates the file. However, it creates it on the wrong drive. For example: $tempname = tempnam('', 'foo'); echo $tempname.'<br>'; echo realpath($tempname).'<br>'; This outputs: \foo49.tmp e:\foo49.tmp Notice the returned filename has no drive letter. The file is created (to prevent race condition) in C:\ but realpath() resolves that to E:\ (the last drive letter of physical harddrives in this system). For reference: getenv('TMP') == 'C:\WINDOWS\TEMP' getenv('TMPDIR') == '' Reproduce code: --------------- $tempname = tempnam('', 'foo'); echo $tempname.'<br>'; echo realpath($tempname).'<br>'; Expected result: ---------------- c:\foo49.tmp c:\foo49.tmp Actual result: -------------- \foo49.tmp e:\foo49.tmp ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36290&edit=1