我有一个为买卖双方服务的网站。因此,一旦我对用户类型进行了身份验证,我就会加载相应的模块。参见以下逻辑:
If $loggedinusertype = Buyer;
include(/buyer_module.php);
else
include(/seller_module.php);
现在,我存储这些模块的方式就像存储contact.php文件一样。如果我访问domain.com/seller_module.php,就可以访问这些模块。现在,我想知道如何以这样一种方式存储这些模块,即没有人可以直接访问它,只能在include组件中使用。我有200个这样的模块。。。。
您可以将它们存储在正常web目录之外的区域中。
假设您的网络目录是/home/yoursite/www-
你可以将包含文件放在/home/yoursite/其他目录中,没有人能够直接从你的网站访问它们。
关于如何做到这一点,我有两个建议。
-
只需将所有模块存储在web根目录之外,就无法从浏览器访问它们。
-
如果上述方法不可行,请在主应用程序或包含各个模块的脚本中定义一个常量。在各个模块中,检查是否已定义常量。如果没有,那么你可以假设有人试图在浏览器中访问它,如果是的话,那么该文件就包含在你的脚本中。
示例2:
index.php
<?php
define('SOME_CONSTANT', 1);
// ...
include 'buyer_module.php';
buyermodule.php和您不想直接调用的所有其他模块
<?php
if (!defined('SOME_CONSTANT')) exit;