0

我有一个表单,您可以在其中插入一些存储到数据库中的文本。然后检索记录并将其包含在 html 页面中。

用户希望在文本中包含一个 href 链接并能够在 html 页面中使用该链接。我现在拥有的是:

  • 您通过包括 Stackoverflow.com 的文本区域将文本输入数据库
  • 在数据库中,链接存储正确(我在字段上使用 bindValue)
  • 如果您打开 html 页面,您会看到链接为文本:您仍会看到 Stackoverflow.com 而不是 Stackoverflow.com 可点击

我知道对于你们中的许多人来说,这可能是一个简单的问题,但对我来说,这是我第一次处理这种请求,我需要一个关于实现结果的最佳方法的想法。

这是我页面的打印屏幕:与存储在数据库中的文本完全相同: 印刷丝网

非常感谢

4

3 回答 3

0

这是 php 为您提供的保护功能!你应该手动处理它,并且只针对 a 标签。

当您的用户可以放置任何文本(包括 html、css、js)时,他/她会对您的页面造成很大的伤害。

解决这个问题的最简单和最好的方法是不要将 a 标签放在我们的文本中,而是像 bb code (google) 这样的东西,然后在你从数据库中获取它时立即用真实标签替换它。

于 2013-09-18T07:25:05.183 回答
0

在网页上打印输出时使用以下功能

  htmlspecialchars_decode($text);

其中 $text 是包含描述文本的变量。

在此处阅读有关它的更多信息

于 2013-09-18T07:49:21.120 回答
0

这就是我为链接所做的,

<?php 
 $text = "http://stackoverflow.com";
 echo preg_replace('@((http?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@', '<a href="$1" target="_blank">$1</a>', $text);
?>
于 2013-09-18T07:10:56.860 回答