2014-05-01 13 views
0

我正在努力實現鍛鍊的動態網站。所有內容都存儲在數據庫中: 我將html代碼(FORMS)作爲數據庫內容包含在內,但是當我嘗試插入php代碼作爲數據庫內容時,什麼也沒有發生。內容的字段類型是TEXT。 我tryed不同的方式:如何在MySQL數據庫中插入「<?php include(」Login.php「);?>」?

INSERT INTO TableContent(Name_Content, Content, ID_Menu) values ("Amministration Area", "<?php include('LogIn.php')", 5); 
INSERT INTO TableContent(Name_Content, Content, ID_Menu) values ("Amministration Area", "<?php include(\"LogIn.php\")", 5); 

在該網頁上我看到Amministrazion區,但不是login.php中一樣。 我以爲我在Login.php頁面代碼中犯了一個錯誤,所以我在簡單的回聲(「嗨」)中改變了它;但無論如何都沒有出現。我只看到文本管理區域。 我該如何解決它?

+3

將php代碼插入數據庫並不是一個好習慣。後來它會很難管理 – user3470953

+0

謝謝,你是對的我會遵循這個建議 – user3591982

回答

2

這只是文字!數據庫中的文本。只需將文本插入數據庫並從中讀取數據即可。您必須實際獲得執行將文本作爲PHP代碼。這不會自動發生,謝天謝地!在PHP中,以代碼的形式執行任意字符串的方法是使用eval。但這總體上是一個非常糟糕的主意。將所有PHP代碼存儲在數據庫中並不會使事情變得簡單,相反,如果您執行任意代碼,則會使所有事情都變得更加困難,並且更容易被利用。我建議你停止這樣做,並返回到.php文件中的PHP代碼,而不是數據庫。

+0

謝謝,你是對的,我會遵循你的意見,PHP代碼在.php文件! – user3591982

1

PHP參見<?php include("LogIn.php");?作爲字符串,當您查看文件的源代碼時,您可能會看到它。它不顯示在屏幕上,因爲它以<開頭。

要執行代碼而不是將其作爲字符串處理,可以使用eval()函數。

但是,您不希望數據庫的每一行都被視爲PHP代碼,因此您可能需要添加一個額外的列來定義行,即字符串,php代碼。或者您在儲存您的包裹時製作一張額外的桌子。

+0

感謝它的工作! – user3591982

相關問題