2011-05-15 83 views
1

PHP:view.php不打印出緩衝的內容

<h1>hello world</h1> 

PHP:index.php文件

require('view.php'); 

如果這兩個文件都在根mysite.com

,如果我訪問mysite.com/index.php我應該得到'hello world'

如果我訪問mysite.com/view.php我應該沒有顯示任何內容。

我一直在尋找一些方法的.htaccess,但任何其他建議歡迎:)

結論:希望用戶不能夠看的見的純文本,並只允許requiredget_file_contents()到閱讀文件。所以只能在服務器內讀取文件。

回答

3

來處理這種情況的最好辦法是讓你包括那些從來不打算Web根目錄,在那裏他們可以永遠在外面被訪問的文件通過瀏覽器訪問。

即你的文件結構將是:

www/index.php 
includes/view.php 

您可以設置PHP的include_path到包括includes/目錄,以便您的包括不需要在他們有明確的路徑,太。

+1

你可能會在這裏的東西哈哈,可能正是我所需要的:)我會給它一個:) – Val 2011-05-15 16:33:11

2

請勿打印您的輸出。使一些變量(例如:$tmp)與輸出數據,並將其打印在index.php

+0

$ TMP ='

hello world?

';你是這個意思嗎 ? – Val 2011-05-15 16:27:30

+0

是的,類似的東西。 – 2011-05-15 16:29:43

+0

哇,不要以爲你會對此產生諷刺嗎?大聲笑,thnx試圖tho – Val 2011-05-15 16:34:43

0

存在的.htaccess的東西,你可以做

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
Options -Indexes 
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule .* - [L] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 

RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 
</IfModule> 

這個心不是會是你想要什麼,但我想,如果你把這個與ceejayoz的答案,它應該工作