ID:               16830
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Analyzed
 Bug Type:         Filesystem function related
-Operating System: Windows 2000 SP2
+Operating System: ANY
-PHP Version:      4.2.0
+PHP Version:      4.3.0-dev
 New Comment:

Duh. You're right, it's a bug. 

<?php

$filename="";

$bb = is_file($filename);
var_dump($bb);

$aa = file_exists($filename);
var_dump($aa);

?>

Outputs:

int(0)
bool(true)


--Jani



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

[2002-04-27 00:27:58] [EMAIL PROTECTED]

c:\winnt\system32\php4ts.dll matches the php4ts.dll from the php 4.2.0
package. All other PHP files are in php's own directory. When I install
a new version of PHP, I always delete the whole old PHP directory and
create a new one to prevent keeping rests from old versions. I also
always use the new php.ini-dist and modify it again instead of keeping
the old php.ini.

Additionally, in the last PHP version I had installed (4.1.2),
file_exists() DID work! It just stopped working with PHP 4.2.0, so I
doubt that error could be from forgetting to overwrite old DLLs with
new ones.

What does the script I posted before say for _you_, Jani?

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

[2002-04-26 22:11:06] [EMAIL PROTECTED]

Just in case..are you absolutely sure you have updated
all dlls related to PHP in your system? (I assume you had
some older PHP there before)

e.g. php4ts.dll is quite important to be new. Try searching
your filesystem for it. You might have many of them there.

--Jani


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

[2002-04-26 12:47:20] [EMAIL PROTECTED]

Sander, please tell me the Bug ID for it.

I did search the Bugs DB for open bugs with "file_exists".
The bug I'm talking about was reported as bug for PHP 4.1.0 ( Bug ID:
15218 ) and it has actually been fixed in 4.1.2, but now it appeared
again in PHP 4.2.0 !!
So this is no duplicate bugreport, I think.

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

[2002-04-26 11:59:39] [EMAIL PROTECTED]

Plese, SEARCH the bugdb. There is a report about this. (sorry Jani ;)

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

[2002-04-25 16:39:58] [EMAIL PROTECTED]

file_exists("") returns TRUE instead of FALSE

As per request, here are more details...

This:
<?

$filename="";

if (is_file($filename))
{
print "is_file sais, the file $filename <b>does exist</b>.<br>";
}
else
{
print "is_file sais, the file $filename <b>did not exist</b>.<br>";
}


if (file_exists($filename))
{
print "file_exists sais, the file $filename <b>does exist</b>.<br>";
}
else
{
print "file_exists sais, the file $filename <b>did not
exist</b>.<br>";
}

?>

will return:
is_file sais, the file did not exist.
file_exists sais, the file does exist.


Again, in other words:
If you give file_exists() an empty string as argument ( file_exists("")
), it will return TRUE (saying the file existed, but it does not,
because "" is no file.)

is_file() correctly returns FALSE if you give it an empty string as
argument and so should file_exists do, as it did in PHP 4.1.2


Further information:
I used to check my upload-scripts for uploaded files using
$file=$_FILES['datei']['tmp_name'];
if (file_exists($file)) { savefile($file); }
but I cannot use this anymore because when a user does not upload a
file, $filename becomes an empty string and file_exists returns TRUE,
so my function savefile($file) wants to save a non-uploaded file.

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/16830

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

Reply via email to