我搞不懂为什么这不管用。
$docRoot = getenv("DOCUMENT_ROOT");
include_once($docRoot."/conn/connection.php");
include_once($docRoot."/auth/user.php");它可以通过wamp在本地运行,但不能在我的实时服务器上运行。我试过这个:
if(!include_once($docRoot."/auth/user.php")){
session_start();
$debug = array();
$debug["docRoot"] = $docRoot;
$debug["inc_path"] = $docRoot."/auth/user.php";
$debug["file_exists"] = file_exists($debug["inc_path"]);
$_SESSION['DEBUG'] = $debug;
// exit
header("Location:debug.php");
exit();
}调试页面只是回显该数组,它显示了正确的绝对路径,并表明该文件确实存在。那么为什么include_once()不起作用呢?服务器( MediaTemple服务器上的DV帐户)根本没有配置,所以我想知道是不是apache或php的设置把我搞糊涂了。
归根结底,我在这里想要的是一种引用文件的方式,如果我移动文件,或者将它包含在另一个文件中,没有什么会中断。有什么想法吗?
发布于 2011-02-14 01:35:53
在调试过程中,您可以尝试使用is_readable($docRoot."/conn/connection.php")。即使文件没有可读权限,file_exists函数也将返回true。
如果你得到一个错误代码,我们也许能够提供更多关于哪里出了问题的信息。
发布于 2011-05-13 23:16:31
启用错误报告虚拟对象。原来另一个文件上的一个includes正在破坏这个页面,我无法追踪到它,直到我打开了错误报告。
顺便说一句,有问题的include文件路径中缺少一个前导斜杠( include("dir/file.ext");),它在我的本地wamp设置和linux服务器上运行。
https://stackoverflow.com/questions/4985625
复制相似问题