我在使用我构建的网站管理工具时遇到问题,它允许我为我的网站编辑文章。我正在使用google-code-prettify,因为我的文章是关于C ++编程的,然后我使用<pre class="prettyprint"> </pre>
标签来指定我即将开始编写C ++代码。问题在于,当我写信时,
#include <iostream>
然后将其插入我的mySQL数据库,它将正确添加插入文本&lt;&gt;
但是当我请求信息并将其显示在文章查看页面中时。它将打破页面,因为HTML认为我正在尝试添加HTML标记。因此,当使用< >
标签时,它会正确地将这些添加到我的数据库中,文章查看器页面将正确读取
#include <iostream>
但如果我想要修改文章,它会将<>
视为&lt;&gt ;.哪个在另一个插页上会让我回到插入&lt;&gt;的原始问题进入数据库并让它们不在我的查看器中。如何阻止HTML将<>
更改为&lt;&gt;,但前提是它位于我的textarea中的<pre class"prettyprint"></pre>
内。我已经让它工作了,它将使用jquery转换文本区域中的所有内容。
$("#contbox").each(
function () {
$(this).text($(this).html()).html();
}
);
其中#contbox是我的textarea的id,但我无法弄清楚如何将其限制在pre标签内,
提前致谢
答案 0 :(得分:1)
最佳做法是将文件存储为未编码的字符串,并仅在需要显示时进行编码。最大的原因是可能在需要不同编码的多个地方显示/使用相同的数据(或根本不显示)。如果您的网站允许用户输入HTML格式的文本,您应该将其完全按照输入的方式存储在数据库中,并在需要时将其显示给最终用户调用适当的编码。
您需要在服务器端调用适当的编码。这样可以防止在您的javascript运行和编码数据之前执行恶意代码,这也意味着如果用户禁用了javascript,您的用户仍会看到有效的文本。