警告:非常過時的問題與一個可怕的想法。存儲代碼,無論是PHP,JavaScript還是HTML,都不是一個好主意。在此僅留作文檔用途如何從數據庫執行php?
我有點尷尬的問題。
通常情況下,將東西放在數據庫中時,將以原樣保存。 因此,如果保存的東西是:
<?php echo "hi!"; ?>
這將只是作爲輸出「你好!」當被調用時。
但是,在我的情況下,我將純文本保存到數據庫中。我沒有進行任何驗證來檢查這些代碼,並且我已經關閉了魔術引號以防止這些內容被轉義。
當從數據庫中獲取數據並將數據放入頁面(如果完全加載,所以PHP應該執行時,頁面之前的課程),這在源代碼中顯示爲?php標記,因此不可見(至少在Safari上),因爲它是一個不知名的輸出標籤。數據塊由一種'Joomla-ish'模板代碼組成。 HTML標籤,樣式(CSS),JavaScript塊和PHP都可以在那裏。像CSS,JS等東西的作品,但服務器端代碼不。
任何想法如何讓這個工作或爲什麼它不工作?數據庫位於mySQL和MyISAM中作爲存儲引擎。我保存的領域是一個長文。我使用的是php5(在w3c網站上聲明使用魔術引號並不是很好的做法,因爲它會在php6中被刪除,因爲除了解決一些問題外,它會帶來很多安全風險)。
我試過使用eval(),但有一個小問題。 eval()函數asumes這是php,但通常不會。它將主要是HTML和一些PHP塊。
我在想那件事。 – Samuel 2009-08-22 19:56:30
確實:**警告團隊!極度危險!**。將PHP模板代碼放在數據庫中是非常不尋常的,除非你有一個出人意料的理由來做這件事,並且非常小心你的字符串轉義,這很有可能最終導致服務器被入侵。 – bobince 2009-08-22 20:31:49