我的PHP文件中出现以下错误。
Warning: include(../config/config.php) [function.include]: failed to open stream: No
such file or directory in C:\xampp\htdocs\my-proj\functions\function.php on line 2
让我来描述我的文件夹结构
现在,如果我使用绝对路径,那么它在signup.php中给出相同的错误,如果我使用相对路径,那么它在index.php中给出了这个错误
任何帮助将不胜感激。
答案 0 :(得分:4)
使用
include("$_SERVER[DOCUMENT_ROOT]/config/config.php");
答案 1 :(得分:3)
文件路径相对于调用的脚本。如果您的应用程序被index.php
的http请求调用,则include()
路径需要相对于该路径 - 即使include语句本身位于functions.php脚本中。
一个常见的解决方法是使所有路径相对于文档根目录是绝对的:
include("$_SERVER[DOCUMENT_ROOT]/config/config.php");
// Note: leaving out array keys only valid in double quote string context.
这可以在index.php和functions.php中使用。
答案 2 :(得分:0)
如果要包含相对于当前正在执行的文件的文件,请使用include __DIR__."/../config/config.php";
。如果您使用的是早于5.3.0的PHP版本(不应该),请替换{ {1}} __DIR__
。
dirname(__FILE__)
,并且要求您的项目与DOCUMENT_ROOT相关,而不是允许用户将其放置在任何位置。如果phpMyAdmin使用了这个变量,你将被迫容纳它而不是只是将它放在你想要的任何地方。这是另一回事,它是一个变量,因此也存在潜在的安全问题。
如果需要config.php,我建议改为使用$_SERVER['DOCUMENT_ROOT']
,否则使用require
以便在不存在时避免发出警告,并在无法读取时出错(我假设如果存在,则打算使用它。