PHP包括其他PHP文件问题

PHP包括其他PHP文件问题,php,Php,我有一个包含许多php文件的网页,我想知道如何阻止用户单独查看php包含?一种流行的方法是在包含文件中定义一个常量: define ("INCLUDE_OK", true); 然后检查每个子系统,包括: if (!defined("INCLUDE_OK")) die ("This file can't be executed directly"); 或者,正如@mikerobi在他现在删除的答案中所说的,将include文件存储在web根目录之外的文件夹中 您可以在主页上设置一个变量,并对包

我有一个包含许多php文件的网页,我想知道如何阻止用户单独查看php包含?

一种流行的方法是在包含文件中定义一个常量:

define ("INCLUDE_OK", true);
然后检查每个子系统,包括:

if (!defined("INCLUDE_OK")) die ("This file can't be executed directly");

或者,正如@mikerobi在他现在删除的答案中所说的,将include文件存储在web根目录之外的文件夹中

您可以在主页上设置一个变量,并对包含的页面进行简单检查。如果未设置变量,则不显示页面。它不漂亮,但它会起作用


在主文件中,执行以下操作:

<?php
    define('AAA',true);
?>

在所有包含文件中,在veyr顶部写下:

<?php
    defined('AAA') or die('Access denied.');
?>


或者,您可以使用htaccess文件。

除非在includes php文件中调用函数,否则includes php文件不应执行任何操作,并且您应该确保扩展名也是php,或者使用php编译的其他扩展名(如includes.php)。例如,如果您有includes.inc,某些服务器将只显示该文件的源代码,这首先会造成安全漏洞。如果您遵循这些规则,您甚至不必检查其他变量等。

如果PHP文件根本不应该由用户调用,那么它们甚至不应该位于文档根目录中。例如,如果您的文档根是/var/www/html,我将创建一个/var/www/include目录并将它们放在那里。用户在物理上不可能调用它们,用户应该使用的PHP页面可以引用它们为。/include/myinclude.PHP

您可以澄清您的问题吗?您可以解释更多吗?包括();具有用户访问权限的多个页面?我有一个名为includes的文件,其中包含许多php脚本。如何将文件存储在web根目录之外的文件夹中?@blah与包含web根目录之外的文件的方式相同。例如,
include(“../folder/name.php”)@Pekka我的意思是说如何将文件存储在web根目录之外的文件夹中?@blah这取决于您的服务器设置。你现在用什么上传文件?在共享主机包上,这有时是不可能的,因为FTP“根”目录与web根目录相同。我知道我在本地主机上,但我可能会使用类似go daddy的东西
<?php
    defined('AAA') or die('Access denied.');
?>