我有一个网站,为两方,买方和卖方提供服务。所以一旦我对用户类型进行了认证,我就会加载相应的模块。见下面的逻辑:
If $loggedinusertype = Buyer;
include(/buyer_module.php);
else
include(/seller_module.php);
现在我存储这些模块的方式就是我存储contact.php文件的方式。如果我转到domain.com/seller_module.php,可以访问这些模块。现在,我想知道如何以这样的方式存储这些模块,即没有人可以直接访问它,并且只能在include组件中使用。我有200个这样的模块......
答案 0 :(得分:2)
您可以将它们存储在普通网络目录之外的区域。
说你的网站目录是/ home / yoursite / www
您可以将您的包含文件放在/ home / yoursite / some-other-directory中,没有人可以直接从您的网站访问它们。
答案 1 :(得分:2)
我有两条关于如何做到这一点的建议。
只需将所有模块存储在Web根目录之外,这样就无法从浏览器访问它们。
如果上述操作不可行,请在主应用程序或包含各个模块的脚本中定义常量。在各个模块中,检查是否已定义常量。如果没有,那么你可以假设有人试图在浏览器中访问它,如果是,那么你的脚本就包含了该文件。
2的例子:
<?php
define('SOME_CONSTANT', 1);
// ...
include 'buyer_module.php';
<?php
if (!defined('SOME_CONSTANT')) exit;