PHP-使用$#u SERVER[';DOCUMENT#u ROOT';]有什么问题吗&引用;“路径名”;在每个需要包含另一个文件的页面上?
由于路径问题,我将我的php站点更改为在每个页面上至少有一次以下语句:PHP-使用$#u SERVER[';DOCUMENT#u ROOT';]有什么问题吗&引用;“路径名”;在每个需要包含另一个文件的页面上?,php,file,path,include,Php,File,Path,Include,由于路径问题,我将我的php站点更改为在每个页面上至少有一次以下语句: include($_SERVER['DOCUMENT_ROOT'] . "/path/file.php"); 使用这种方法是否有任何问题(主要是安全性) (在我刚刚使用之前:include(“/path/file.php”);)由于php是在服务器上专门解析的,使用$\u server['DOCUMENT\u ROOT']将永远不会传递给客户端,也不会产生安全问题 但是,与所有$\u SERVER变量一样,$\u SERV
include($_SERVER['DOCUMENT_ROOT'] . "/path/file.php");
使用这种方法是否有任何问题(主要是安全性)
(在我刚刚使用之前:
include(“/path/file.php”);
)由于php是在服务器上专门解析的,使用$\u server['DOCUMENT\u ROOT']
将永远不会传递给客户端,也不会产生安全问题
但是,与所有
$\u SERVER
变量一样,$\u SERVER['DOCUMENT\u ROOT']
仅由您的Web服务器提供,并且在命令行环境中运行这些脚本将导致未定义的错误。我从未听说过使用该变量时有任何问题,但我更喜欢这样做:
require_once __DIR__ . "/path/to/file/from/current/filephp";
我这样做是因为我们并不总是知道是否会有文档根目录,但我们知道当前文件确实有一个当前目录。我所看到的唯一区别是,与第二个示例中使用绝对完整路径相比,将具有文档根目录的站点移动到另一个服务器目录更容易。另一方面,如果要从命令行运行它,则不会设置DOCUMENT_ROOT。DOCUMENT_ROOT返回Web服务器根文件夹之外的位置。就我所知,这不应该在安全方面引起任何问题。是的,从安全角度来看,它们是平等的。使用第一个迁移更容易。第三种方法是使用相对路径,如
include('../path/file.php')代码>,虽然当包含一个包含另一个文件的文件时会变得很棘手…你们也可以定义一个常量。谢谢你们。我假设用户能够看到完整路径的唯一时间(如果这很重要的话)是设置输出错误@HasseBjörk我正是因为这个原因才从相对路径切换过来的。。。它变得太复杂了,我不断地出错。(我不是职业选手)