ID:               15438
 User updated by:  [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Bogus
+Status:           Open
 Bug Type:         Scripting Engine problem
-Operating System: FreeBSD
+Operating System: FreeBSD/Linux
-PHP Version:      4.1.1
+PHP Version:      4.1.1 and 4.2.3
 New Comment:

I already forgot about this bug, but received the email today that this
was considered bugus.
Well i'm surprised, and tested it a few times more (with a newer php
version), and i'm still convinced that this is a bug.

A few new examples:

<?
if( include("include.txt") == true )
{
   print "File included\n";
}
?>

The code above returns this fatal error:

Warning: Failed opening '1' for inclusion
(include_path='.:/usr/local/lib/php') in
/usr/local/apache/htdocs/test.php on line 2


And now i do it the longer way:
<?
$status = include("include.txt");

if( $status == true )
{
   printf("File included!\n");
}
?>

Works perfectly

And another way that works:

<?
if( true == include("include.txt") )
{
   print "File included\n";
}
?>


The problem really seems what [EMAIL PROTECTED] said, a scripting engine
bug. 

PS. Your reply about me asking a support question here is rather weird
to me, i was just reporting a bug..


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

[2002-10-07 22:17:06] [EMAIL PROTECTED]

Sorry, but the bug system is not the appropriate forum for asking
support questions. Your problem does not imply a bug in PHP itself.
For a list of more appropriate places to ask for help using PHP,
please visit http://www.php.net/support.php

Thank you for your interest in PHP.

You can only check if include/include_once failed or succeeded if the
included file returns a value. This is clearly documented at:
http://www.php.net/manual/en/function.include.php

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

[2002-02-09 06:17:06] [EMAIL PROTECTED]

I'm not sure this is actually a bug. I gather the returned value from
an include is the one you specify in the included file with 'return
$var'
Read more at http://www.php.net/manual/en/function.include.php about
return() in included files.

If you want to evaluate if an include was succesfull you could add:

$var = true;
return $var

at the end of the included file, but this should also do the trick:

((int) @include_once("../lib/test.php")) or die("Don't exist");

which is probably just a check if there's some warning text just like
michael already demonstrated.

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

[2002-02-08 10:51:58] [EMAIL PROTECTED]

Actually you can check if an include failed or not like this, but I
think the parser gets confused if you use the '== false'.
Making this a scripting engine problem.

Derick

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

[2002-02-08 09:48:32] [EMAIL PROTECTED]

RTM! You can't include_once check for succes on include/include_once.
include(_once) is not a function.

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

[2002-02-07 17:21:40] [EMAIL PROTECTED]

When trying to check if include_once succeeded i came up the following
bug (i believe):

if( include_once("test1.php") == false ) {
   print "Failed to include file";
}

Warning: Failed opening '' for inclusion
(include_path='.:/usr/local/lib/php') in /usr/home/michael/www/bug.php
on line 6

Removing '== false' removes the problem.

My configuration is:
FreeBSD 4.5
Apache 1.3.22
PHP 4.1.1

Configure options:  './configure' '--with-mysql' '--with-apxs'


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


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

Reply via email to