簡體   English   中英

textarea中的HTML解碼

[英]HTML Decoding within textarea

我在構建自己的網站管理工具時遇到了麻煩,它可以讓我編輯網站的文章。 我正在使用google-code-prettify,因為我的文章是有關C ++編程的,然后使用<pre class="prettyprint"> </pre>標記指定我將要開始編寫C ++代碼。 問題是我寫的時候說

#include <iostream>

然后將其插入到我的mySQL數據庫中,它將正確添加帶有<>的插入文本,但是當我請求信息並將其顯示在文章查看頁面中時。 HTML認為我正在嘗試添加HTML標記,因此它將中斷頁面。 因此,當使用&lt; &gt; &lt; &gt; 標記將其正確添加到我的數據庫中,並且文章查看器頁面將正確讀取

#include <iostream>

但是,如果我想編輯該文章,它將閱讀&lt;&gt; 為<>。 在另一個插入中,哪一個將使我回到原來的問題,即將<>插入數據庫並使其不在我的查看器中。 如何阻止HTML更改&lt;&gt; 進入<>,但<pre class"prettyprint"></pre>是它位於我的文<pre class"prettyprint"></pre>中。 我有它的工作它將在哪里使用jquery轉換文本區域中的所有內容。

$("#contbox").each(
  function () {
    $(this).text($(this).html()).html();
 }
);

其中#contbox是我的文本區域的ID,但是我不知道如何將其限制為僅在pre標簽內,

提前致謝

最佳做法是將文件存儲為未編碼的字符串,並且僅在顯示時進行編碼。 這樣做的最大原因是,相同的數據可能在需要不同編碼(或根本不需要編碼)的多個位置顯示/使用。 如果您的網站允許用戶輸入HTML格式的文本,則應將其完全按照輸入的格式存儲在數據庫中,並在需要時將其顯示給最終用戶時調用適當的編碼。

您需要在服務器端調用適當的編碼。 這樣可以防止惡意代碼在您的javascript運行並編碼數據之前執行,這還意味着如果禁用了javascript,您的用戶仍會看到有效的文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM