2014-01-18 102 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文件的變量,如果沒有設置它重定向他們。