保护我的html div

时间:2011-09-14 22:21:55

标签: html

  

可能重复:
  show html code inside box like yahoo html messages

首先,我很抱歉主持人..我已经提出了这个问题,并且没有答案!

我有html表格

允许用户发布html代码然后我通过我的php显示它

这是我的PHP代码

<?php

 $html = '<div id="my_box" style="border:1px #000 solid">'; //my own div!
 $_POST['user_html'] = '</div><p>Any thing</p>'; //html code of visitor! , i want display it inside my own div above
 $html .= $_POST['user_html'];
 $html .= '</div>'; //close my own div!
 echo $html;

?>

如果您尝试使用此代码,您会发现用户html代码显示在我自己的div框之外

因为他的代码以</div>&lt; - 他关闭了我的div!

开头

那么,我如何修复它并显示他的代码而不影响我自己的div?

我需要像iframe这样的东西!

- 注1

上面的故事只是为了让你明白......我并不疯狂让项目做这个愚蠢的工作!

- 注2

php代码只是为了让你明白..我的项目是基于HTML我希望用java或html修复它..不是php


另一个例子

Yahoo,Gmail html消息

他们在html框中显示html消息

我已经厌倦了搜索,,,

2 个答案:

答案 0 :(得分:0)

您需要转义用户输入的内容。因此它显示为</div><p>Any thing</p>并且不被解释。

答案 1 :(得分:0)

您可能想要使用htmlentities()功能:

$html = '<div id="my_box" style="border:1px #000 solid">'; //my own div!
$_POST['user_html'] = '</div><p>Any thing</p>'; //html code of visitor! , i want display it inside my own div above
$html .= htmlentities($_POST['user_html']);
$html .= '</div>'; //close my own div!
echo $html;

编辑:实际上,只有在您想要显示原始HTML时才能使用。如果您希望将其呈现为HTML,那么您将不得不以某种方式使用iframe。对不起,我不知道你是怎么做的(好吧,我这样做,但它很长很复杂,其他人可能会帮助更好)。