PHP - 使用 $_SERVER['DOCUMENT_ROOT'] 是否有任何问题。 "pathname" 在每个需要包含另一个文件的页面上?
PHP - Is there any concern with using $_SERVER['DOCUMENT_ROOT'] . "pathname" on every page that needs to include another file?
由于路径问题,我更改了我的 php 网站,在每个页面上至少有一次以下声明:
include($_SERVER['DOCUMENT_ROOT'] . "/path/file.php");
使用这种方法我应该有什么顾虑(主要是安全性)吗?
(在我刚刚使用之前:include("/path/file.php");
)
由于 PHP 仅在服务器上解析,因此使用 $_SERVER['DOCUMENT_ROOT']
永远不会传递给客户端,也不会产生安全问题。
但是,与所有 $_SERVER
变量一样,$_SERVER['DOCUMENT_ROOT']
只能由您的网络服务器使用,运行 这些脚本在命令行环境中会导致未定义的错误。
我从来没有听说过使用它时有任何问题,但我更喜欢这样做:
require_once __DIR__ . "/path/to/file/from/current/filephp";
我这样做是因为我们并不总是知道是否会有文档根目录,但我们知道当前文件确实有一个当前目录。
由于路径问题,我更改了我的 php 网站,在每个页面上至少有一次以下声明:
include($_SERVER['DOCUMENT_ROOT'] . "/path/file.php");
使用这种方法我应该有什么顾虑(主要是安全性)吗?
(在我刚刚使用之前:include("/path/file.php");
)
由于 PHP 仅在服务器上解析,因此使用 $_SERVER['DOCUMENT_ROOT']
永远不会传递给客户端,也不会产生安全问题。
但是,与所有 $_SERVER
变量一样,$_SERVER['DOCUMENT_ROOT']
只能由您的网络服务器使用,运行 这些脚本在命令行环境中会导致未定义的错误。
我从来没有听说过使用它时有任何问题,但我更喜欢这样做:
require_once __DIR__ . "/path/to/file/from/current/filephp";
我这样做是因为我们并不总是知道是否会有文档根目录,但我们知道当前文件确实有一个当前目录。