Php 除了使用$#u SERVER[';DOCUMENT#u root';],还有更好的方法返回到目录根吗?
我正在尝试学习一种更好的返回根目录的方法。我听说使用$\u服务器不是最安全的方法。我想知道是否有更好的办法。 因此,我可以在url example.com/exp/my.php上获得类似的内容 这是我得到的Php 除了使用$#u SERVER[';DOCUMENT#u root';],还有更好的方法返回到目录根吗?,php,document-root,Php,Document Root,我正在尝试学习一种更好的返回根目录的方法。我听说使用$\u服务器不是最安全的方法。我想知道是否有更好的办法。 因此,我可以在url example.com/exp/my.php上获得类似的内容 这是我得到的 include ($_SERVER['DOCUMENT_ROOT'].'/cpages/cmain/func/init.php'); include($_SERVER['DOCUMENT_ROOT'].'/cpages/toppart.php'); include($_SERVER['DOC
include ($_SERVER['DOCUMENT_ROOT'].'/cpages/cmain/func/init.php');
include($_SERVER['DOCUMENT_ROOT'].'/cpages/toppart.php');
include($_SERVER['DOCUMENT_ROOT'].'/cpages/boxes/image.php');
include($_SERVER['DOCUMENT_ROOT'].'/cpages/bottonpart.php');
我把它改成
define ('DOCUMENT_ROOT', dirname(__FILE__));
include (DOCUMENT_ROOT.'/cpages/cmain/func/init.php');
include(DOCUMENT_ROOT.'/cpages/toppart.php');
include(DOCUMENT_ROOT.'/cpages/boxes/image.php');
include(DOCUMENT_ROOT.'/cpages/bottonpart.php');
但现在它给了我一个错误
Warning: include(C:\xampp\htdocs\backbone\image/cpages/cmain/func/init.php)
而
($\u SERVER['DOCUMENT\u ROOT']
没有告诉我错误是他们解决问题的一种方法?问题是你不能依赖$\u服务器数组中的任何东西,因为你可能会得到各种各样的值
因此,您需要以下规则:
DOCUMENT\u ROOT
帮助预完成配置(见下文)DOCUMENT\u ROOT
是正确的,如果您移动了服务器并且需要,那么就编写它如果预编译配置变量,如何提供默认的
文档\u ROOT
CONTEXT\u DOCUMENT\u ROOT
DOCUMENT\u ROOT
几乎总是安全的,但是有几个地方可能会出错——您提供的链接就是这种情况。如果Apache使用mod\u alias或mod user\u dir。在这些情况下,您需要使用CONTEXT\u DOCUMENT\u ROOT
,这更安全。但请注意hat Apache只添加了一个月左右的CONTEXT\u DOCUMENT\u ROOT
,因此除非您有最新的安装,否则您需要依赖DOCUMENT\u ROOT
DOCUMENT\u ROOT
-见上文PATH\u TRANSLATED
(小于PHP\u SELF
)构建到当前工作目录的路径SCRIPT\u FILE\u NAME
(小于PHP\u SELF
)构建到当前工作目录的路径\uuuu DIR\uuuu
用于当前工作目录然后,当你有这些详细信息时,检查你知道该目录中存在的文件-如果存在,你可能找到了正确的路径。如果没有,试试下一个。为什么
['DOCUMENT\u ROOT']
会不安全?请看这个问题:@JonathonReinhart不确定,但最好找一个你知道的更安全的方法