Re: Nested include/require not working in 5.2
| From: | Wolf | Date: | Tue, 27 Nov 2007 20:49:18 +0000 |
| Subject: | Re: Nested include/require not working in 5.2 | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-265090@lists.php.net to get a copy of this message | ||
---- Mike Yrabedra <lists@323inc.com> wrote:
> on 11/27/07 1:53 PM, Wolf at lonewolf@nc.rr.com wrote:
>
> >
> > ---- Mike Yrabedra <lists@323inc.com> wrote:
> >> on 11/27/07 1:43 PM, Wolf at lonewolf@nc.rr.com wrote:
> >>
> >>>
> >>> ---- Mike Yrabedra <lists@323inc.com> wrote:
> >>>> on 11/27/07 11:46 AM, Jochem Maas at jochem@iamjochem.com wrote:
> >>>>
> >>>>> Mike Yrabedra wrote:
> >>>>>>
> >>>>>> I am not able to use includes or requires in nested files using php
> >>>>>> 5.2.3
> >>>>>> (osx)
> >>>>>>
> >>>>>> Including or Requiring files directly works.
> >>>>>>
> >>>>>> Including files, that also have includes in them, does not.
> >>>>>>
> >>>>>> Say you have this...
> >>>>>>
> >>>>>> -TopDirectory
> >>>>>> --index.php (contains include("includes/top.php"); )
> >>>>>> --includes (folder)
> >>>>>> ---config.php (contains echo "crap"; )
> >>>>>> ---top.php (contains include("config.php"); )
> >>>>>>
> >>>>>> When you load the index.php file you would expect the word
> >>>>>> "crap" to
> >>>>>> show,
> >>>>>> but it does not. I think the getcwd is staying specific to the top
> >>>>>> folder,
> >>>>>> so the path stays the same throughout.
> >>>>>>
> >>>>>> This does not happen in 5.1.6
> >>>>>
> >>>>> nothing changed in php - the CWD has always been the dir in which the
> >>>>> explicitly
> >>>>> called script lives in and it does not change because your inside an
> >>>>> included
> >>>>> file.
> >>>>>
> >>>>> my guess is your include_path no longer includes '.' so php is
> >>>>> not trying
> >>>>> to
> >>>>> find the file
> >>>>> in the directory of the script which is doing the include.
> >>>>>
> >>>>>>
> >>>>>> Is there a fix for this or is it PHP causing the problem?
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>> Here is what I have for include_path...
> >>>>
> >>>> include_path = ".:/usr/local/pear"
> >>>>
> >>>> Everything seems to be in order?
> >>>>
> >>>> --
> >>>> Mike Yrabedra B^)>
> >>>>
> >>>> --
> >>>> PHP General Mailing List (http://www.php.net/)
> >>>> To unsubscribe, visit:
> >>>> http://www.php.net/unsub.php
> >>>
> >>> The first question I have is what does the Error log show?
> >>>
> >>> You should have error reporting turned on so you can see where the script is
> >>> barfing on the coding.
> >>>
> >>> Wolf
> >>
> >>
> >> One more thing, it only does this IF the nested include file is named
> >> 'config.php'.
> >>
> >> No error is thrown because it is pulling the 'config.php' file from
> >> somewhere, I just do not know where.
> >>
> >> If I change the name of the file from 'config.php' to
> >> 'config1.php', then
> >> everything works fine.
> >>
> >> Is there a way to figure out where and why it is pulling this mystery
> >> 'config.php' file from?
> >>
> >> --
> >> Mike Yrabedra B^)>
> >
> > What does the error message log tell you? It should be readily available in
> > it....
> >
> > Wolf
>
>
> The include tag is not throwing any error.
>
> If I call the same file with a read file method, then I get this error....
>
> Warning: readfile(config.php) [function.readfile]: failed to open stream: No
> such file or directory in....
>
> Even though the file calling it is in the same directory as 'config.php'
>
Your include path should be along the lines of:
include_path = ".:/usr/local/pear:/server/path/to/web/includes/folder"
so if your server root is /var/htdocs/www it would look like:
include_path = ".:/var/htdocs/www/includes:/usr/local/pear"
Notice that I changed the order to look local first, then go to the includes folder.
HTH,
Wolf