2010-01-16 186 views
4

我想要一個textarea,我可以直接編輯HTML代碼。提交表單後,如果textarea(帶有html標籤)應該保存到MySQL數據庫中。我使用PHP來接收日期並將其保存到數據庫。我的問題是,HTML代碼沒有正確發送到PHP。我沒有收到HTML代碼,只是文字。我怎麼能解決這個問題?通過表格發送HTML代碼到PHP通過表格

我的表是這樣的:

<form method="post" enctype="multipart/form-data" action="form.php"> 
    <textarea name="html_code"> 
     <a href="link">testlink</a> 
    </textarea> 
    <input type=submit value="submit"/> 
</form> 

的form.php的現在應該能夠顯示textarea的內容

echo $_POST['html_code']; 

顯示:testlink

我想:<a href="link">testlink</a>

回答

4

謝謝大家的回答。我發現了這個問題。這是Joomla。當我通過getVar得到字符串時,Joomla刪除了HTML標籤。我不得不使用掩碼選項JREQUEST_ALLOWRAW來解決問題。

JRequest::getVar('html_code', '', 'post' , 'STRING', JREQUEST_ALLOWRAW); 
+2

嗨,多米尼克,其重要的是在你的回答中指定你正在使用Joomla等,這樣人們可以意識到這個可疑的問題。 – 2010-07-11 15:30:38

+0

@託比艾倫是的,你是對的。我只是沒有想到這個問題是Joomla相關的。 – dominik 2012-03-22 16:54:44

1

您是否將它回顯到HTML p年齡?因爲代碼將被解析爲一個實際的鏈接。

查看輸出頁面的來源。

+0

如果我查看HTML頁面的源代碼我只看到「TestLink的」 – dominik 2010-01-16 15:49:58

1

您正在使用錯誤的編碼類型。

而不是「multipart/form-data」,它應該是「text/plain」。

您不必像Doug所說的那樣對數據進行編碼;但是當你提交表單時它會被編碼,所以在使用之前不要忘記解碼。

+0

我不認爲編碼的問題。 PHP自動檢測編碼並解碼需要的內容。 – Felix 2010-01-16 16:17:31

1

你的形式應該是:

<form method="post" enctype="multipart/form-data" action="form.php"> 
    <textarea name="html_code"> 
     &lt;a href=&quot;link&quot;&gt;testlink&lt;/a&gt; 
    </textarea> 
    <input type=submit value="submit"/> 
</form> 

(不,它不是搞砸他們被稱爲HTML entities。)

您可以使用htmlentities()在PHP來實現這一目標。