由于路径问题,我更改了我的php站点,使每页至少有一次以下语句:
include($_SERVER['DOCUMENT_ROOT'] . "/path/file.php");
使用这种方法,我是否应该有任何顾虑(主要是安全问题)?
(在我刚刚使用之前:include("/path/file.php");
)
由于PHP只在服务器上解析,因此使用$_SERVER['DOCUMENT_ROOT']
永远不会传递给客户端,也不会产生安全问题。
但是,与所有$_SERVER
变量一样,$_SERVER['DOCUMENT_ROOT']
仅由Web服务器提供,在命令行环境中运行这些脚本将导致未定义的错误。
我从来没有听说过在使用它时有任何问题,但我更喜欢这样做:
require_once __DIR__ . "/path/to/file/from/current/filephp";
我这样做是因为我们并不总是知道是否会有文档根,但我们知道当前文件确实有当前目录。