ID:               36251
 Updated by:       [EMAIL PROTECTED]
 Reported By:      john at castlecomm dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         Unknown/Other Function
 Operating System: Unix/Linux
 PHP Version:      4.4.2
 New Comment:

Please do not submit the same bug more than once. An existing
bug report already describes this very problem. Even if you feel
that your issue is somewhat different, the resolution is likely
to be the same. 

Thank you for your interest in PHP.

Duplicate of #36249


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

[2006-02-01 20:57:56] john at castlecomm dot com

Description:
------------
Tony,

    I tried to reply to the original ticket but your system is not
remembering my password, 's00per' correctly.  I am certain I used that,
because I pasted it in from notepad after saving it in a file with no
newlines.

    Thank you for your help, but if your answer is correct, then my
scripts should have worked.

You said:

"Files for including are first looked in include_path relative to the 
current working directory and then in include_path relative to the
directory 
of current script."

The current working directory and script in my example was

(PROTECTED)

I appended to the include_path ./ws

This means that the include_once '../inc/incfile.php' which happened
inside 
of ws/wsfile.php should have been looked at from the perspective of 
(PROTECTED)/ws at least once but it wasn't.

Did you look at the examples I provided you?

--Original Message--

Including a file using a relative path after INI SETTING the
include_path
does not work.

Setting the include_path works, but but PHP does not use it correctly.

This is a major flaw in the include logic.

A full detailed example is listed under the "Reproduce code" section.



Reproduce code:
---------------
[john@(PROTECTED) error]$ cat mainfile.php 
<?
$include_path = ini_get('include_path');

$include_path .= ':./ws:'; //this doesn't even work with an absolute
path

ini_set('include_path', $include_path);

include 'ws/wsfile.php';

print "Hi!  I'm mainfile!\n";
?>
[john@(PROTECTED) error]$ cat ws/wsfile.php 
<?
include_once '../inc/incfile.php';

print "Hi!  I'm wsfile!\n";
?>
[john@(PROTECTED) error]$ cat inc/incfile.php 
<?
print "Hi!  I'm incfile!\n";
?>
[john@(PROTECTED) error]$ php mainfile.php 

Warning: main(../inc/incfile.php): failed to open stream: No such file
or
directory in /(PROTECTED)/john/error/ws/wsfile.php on line 2

Warning: main(): Failed opening '../inc/incfile.php' for inclusion
(include_path='.:/usr/local/lib/php:./ws:') in
/(PROTECTED)/john/error/ws/wsfile.php on line 2
Hi!  I'm wsfile!
Hi!  I'm mainfile!

Expected result:
----------------
Tony,

    Thank you for your help, but if your answer is correct, then my
scripts should have worked.

You said:

"Files for including are first looked in include_path relative to the 
current working directory and then in include_path relative to the
directory 
of current script."

The current working directory and script in my example was

(PROTECTED)

I appended to the include_path ./ws

This means that the include_once '../inc/incfile.php' which happened
inside 
of ws/wsfile.php should have been looked at from the perspective of 
(PROTECTED)/ws at least once but it wasn't.

Did you look at the examples I provided you?

--Original Expected Result--

The INI SET works, but include_once, as well as the others, do not
work
correctly.  It can't find the relatively included file...even though
the
INI include_path is set.

The code should work because the include path has been set properly. 
Even
the error output shows the right include path, but the include_once
directive just fails.

Actual result:
--------------
[john@(PROTECTED) error]$ php mainfile.php 

Warning: main(../inc/incfile.php): failed to open stream: No such file
or
directory in /(PROTECTED)/john/error/ws/wsfile.php on line 2

Warning: main(): Failed opening '../inc/incfile.php' for inclusion
(include_path='.:/usr/local/lib/php:./ws:') in
/(PROTECTED)/john/error/ws/wsfile.php on line 2
Hi!  I'm wsfile!
Hi!  I'm mainfile!


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


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

Reply via email to