ID: 14797
Comment by: [EMAIL PROTECTED]
Old Reported By: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Scripting Engine problem
Operating System: Windows 98 SE
PHP Version: 4.1.0
New Comment:
We're getting hit by this too. Funny how because the local dev box is
windows xp we can't use include_path for a unix main server! :(.
Anyway, I tried the idea of using C:\apache/htdocs as the DocumentRoot,
and Apache stopped reading .htaccess files completely, rendering the
workaround useless. This is a major issue for us, I'm having to scream
for a local unix dev box...
Previous Comments:
------------------------------------------------------------------------
[2002-01-17 11:11:47] [EMAIL PROTECTED]
How about
include(getenv("DRIVELETTER")."/foo/test.php");
and setting this environment variable locally (chances are it isn't set
on the real webserver).
Cheerio, Marc.
------------------------------------------------------------------------
[2002-01-17 10:56:50] [EMAIL PROTECTED]
OK, I think I has to use this workaround:
if (strpos($SERVER_SOFTWARE, "Win")) { // Windows - Is there a better
way to detect this?
$NB_INCLUDE_PATH_PREFIX = substr($DOCUMENT_ROOT, 0, 2); // The
drive letter - Is there a better way to detect this?
} else { // NOT Windows
$NB_INCLUDE_PATH_PREFIX = "";
}
include ($NB_INCLUDE_PATH_PREFIX . "/foo/test.php");
But I'm not really happy...
------------------------------------------------------------------------
[2002-01-17 10:35:01] [EMAIL PROTECTED]
Yes, but I do not want to edit anything. I want to upload the files
and then it has to work.
Perhaps you can use something like this:
if (strpos($SERVER_SOFTWARE, "Win")) {
echo "<font color=\"#FF0000\">WINDOWS</font>";
} else {
echo "<font color=\"#008000\">Uhh, good...</font>";
}
But it's only a dirty workaround.
------------------------------------------------------------------------
[2002-01-17 10:19:11] [EMAIL PROTECTED]
I use NT, but that doesn't really matter. What works for me is the
following:
If in httpd.conf, the DocumentRoot is d:/foo/htdocs, then
in php.ini, I set include_path to d:/foo/htdocs as well.
In every script that uses include, specify the relative path from
d:/foo/htdocs (never from the current file!), _without_ a leading /,
e.g. if your include file is d:/foo/htdocs/inc/bla.p, then use
include("inc/bla.p");
You could combine this with tricks like defining a constant
ABS_INCL_PATH, setting this to d:/foo/htdocs and then using
include(ABS_INCL_PATH."/inc/bla.p");
This way you can also create more constants, like
THIS_PROJECT_ABS_INCL_PATH and GENERAL_TOOLBOX_ABS_INCL_PATH.
Switching to a *nix environment is just a matter of redefining your
constants.
Hope this helps, Marc.
------------------------------------------------------------------------
[2002-01-17 10:02:58] [EMAIL PROTECTED]
Hello,
I tried:
DocumentRoot "d:/foo/htdocs"
DocumentRoot "d:/foo/htdocs/"
DocumentRoot "d:\foo/htdocs"
DocumentRoot "d:\foo/htdocs/"
I used 'php.ini-dist' with include_path set to ".".
Nevertheless, I can't include files with an absolute path. Statements
with a relative path work properly.
Regards,
Martin
------------------------------------------------------------------------
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/?id=14797
Edit this bug report at http://bugs.php.net/?id=14797&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]