Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-使用$#u SERVER[';DOCUMENT#u ROOT';]有什么问题吗&引用;“路径名”;在每个需要包含另一个文件的页面上?_Php_File_Path_Include - Fatal编程技术网

PHP-使用$#u SERVER[';DOCUMENT#u ROOT';]有什么问题吗&引用;“路径名”;在每个需要包含另一个文件的页面上?

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

由于路径问题,我将我的php站点更改为在每个页面上至少有一次以下语句:

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我正是因为这个原因才从相对路径切换过来的。。。它变得太复杂了,我不断地出错。(我不是职业选手)