繁体   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