2014-01-18 79 views
0

以任何方式检测PHP文件是否由浏览器本身浏览而不是由include包含?检测PHP是否未被include打开

我使用PHP来处理一些代码,然后将它写入另一个包含此PHP的页面(使用PHP include())。我不希望它被它本身浏览,我想只有当它包含它被访问(再次使用的PHP包括())

我想实现这样的事情:

if (browser is not opened by include){ 
    header("Location: /forbidden"); 
    die(); 
} 
else {//do nothing} 

现在,我有可能实现我想要的吗?

回答

2

把它放在你的web根目录之外。它不能被网络浏览器访问等。

另一种解决方案是在引导程序或配置文件(无论使用什么)中声明一个常量,然后在包含中检查它。如果它不存在,则包含调用die()

0

按照我推荐的顺序来达到预期的效果,首先是最好的。

将它们放在Web根目录之外的文件夹中。

OR

创建.htaccess否认,除了服务器的IP访问该文件夹。

Options -Indexes 
<Files *.php> 
Order Deny,Allow 
Deny from all 
Allow from servers ip 
Allow from servers ip if more than one 
#Allow from your ip if you want to 
</Files> 

OR

创建父PHP文件的变量,如果没有设置它重定向他们。