2011-07-27 89 views
0

我做了一個小的腳本允許用戶建立自己網頁或聯絡形式在我的網站主題編輯由用戶

但一些朋友告訴我,他們希望增加一些JS腳本!

,所以我想允許用戶編輯header.php文件

的文件內容 - 例如

<head> 
<title>Mysite | user_name</title> 
</head> 

現在我有想法

我將採取從一份真實的文件(header.php)

並允許用戶編輯它

可編輯的版本將

<title>{Mysite} | {user_name}</title> 

,然後,我將使用(str_replace函數功能),以取代{} mysite的通過我的網站標題varibal

我的問題是!

如果用戶發佈了PHP代碼

例如

<head> 
<title>{Mysite} | {user_name}</title> 
<? include /// or echo 'error' or what ever ! ?> 
//and some things others 
</head> 

PHP代碼是否行得通呢?或將被忽略並僅用作html?

如果有安全又好的另一種方式,請告訴我!

謝謝

+0

這取決於你如何加載/讀取的模板。 oyu沒有顯示它 – KingCrunch

回答

0

如果header.php文件,用戶可以修改,包括(使用requireinclude從你的PHP代碼,那麼,它包含的PHP代碼就會被執行。

在你的情況,我寧願:

  • 使用文件名一樣header.tpl,以表明此文件不包含PHP代碼,但確實是某種模板。
  • 我不會用inclure/require獲得該模板文件的內容,但一個簡單的file_get_contents()
+0

謝謝pascal我永遠不會包含或需要由用戶編輯的文件! ,我將使用數據庫,輸入^ _^ –

0

如果由於某種原因,你仍想使用.php,而不是東西的模板那麼危險,那麼你應該過濾用戶輸入反正所以他們不利用它。

也許你可以用strip_tags()功能來開始和allowable_tags說法有

+0

非常感謝着,當然是有用的answere < - 對不起,我的語言 –