6

我正在使用一个简单的预制授权工具来保护我的网站。该工具要求将这行代码应用到每个 .php 页面的顶部。Auth.php 位于根级别。

<?php ${(require_once('Auth.php'))}->protectme(); ?>

我需要能够将这行代码添加到每个文件中,包括子文件夹中的文件。但我不确定如何应用php 中 require_once 中所示的方法,以确保它始终与protectme()一起绝对链接;功能。

任何启蒙都会受到赞赏。

干杯。

4

7 回答 7

6

将变量设置为绝对路径。$_SERVER['DOCUMENT_ROOT'] 是一个 PHP 全局变量,用于存储服务器、根路径。您只需将其余的路径信息插入到脚本中。例如,如果您的网站存在于 /var/www/ 并且您的脚本存在于 /var/www/scripts 您将执行以下操作。

$path = $_SERVER['DOCUMENT_ROOT'] . '/scripts/Auth.php';
require_once($path);
于 2012-03-15T19:30:20.003 回答
2

您可以使用相对路径来访问它。

上一级:../Auth.php

上两层:../../Auth.php

等等

于 2012-03-15T19:25:48.417 回答
2

您应该更改 php.ini 以将包含路径更改为该(所有其他)包含文件的路径。然后,您可以在每个页面上都包含它们而无需路径,而不管它们自己的位置如何。

更多细节

于 2012-03-15T19:27:07.903 回答
1

除了已经说过的所有内容之外,我建议集中所有常见功能。创建一个文件,如 common.php ,其中包含您应用程序所需的所有包含,然后从您的所有脚本中包含该文件。

此外,进行相对包含的一个好方法是将dirname()函数与__FILE__魔术常数结合使用。例如:

require_once dirname(__FILE__) . '/../lib/common.php';
于 2012-03-15T19:45:07.517 回答
1

将根目录添加到您的include_path- PHP 将为您完成剩下的工作。没有复杂的变量、常量或其他任何东西。

于 2012-03-15T19:27:07.793 回答
0

如果您无权访问 php.ini,我之前使用过类似的东西

include $_SERVER['DOCUMENT_ROOT']."/"."include_me.php";
于 2012-03-15T19:28:53.890 回答
0

由于它是站点范围的更改,因此最简单的方法是首先将其目录添加到php.ini.

如果您无法更改php.ini,还有一些其他选项可将其添加到包含路径

于 2012-03-15T19:29:03.923 回答