你在客户端提交的时候就进行验证:
<script language=javascript>
function coder(str)
{
   var s = "";
   if (str.length == 0) return "";
   for (var i=0; i<str.length; i++)
   {
      switch (str.substr(i,1))
      {
          case "<"  : s += "&lt;";   break;
          case ">"  : s += "&gt;";   break;
          case "&"  : s += "&amp;";  break;
          case " "  : s += "&nbsp;"; break;
          case "\"" : s += "&quot;"; break;
          case "\n" : s += "<br>";   break;
          default   : s += str.substr(i,1); break;
      }
   }
   return s;
}
</script>
这样提交上来的值就是完全转换了HTML代码,且又保持了输入格式.

解决方案 »

  1.   

    htmlspecialchars
    将特殊字元转成 HTML 格式。语法: string htmlspecialchars(string string);传回值: 字串函式种类: 资料处理
     
     
    内容说明 
    本函式将特殊字元转成 HTML 的字串格式 ( &....; )。最常用到的场合可能就是处理客户留言的留言版了。
    & (和) 转成 &amp; 
    " (双引号) 转成 &quot; 
    < (小于) 转成 &lt; 
    > (大于) 转成 &gt; 
    此函式只转换上面的特殊字元,并不会全部转换成 HTML 所定的 ASCII 转换。 
     
     
    使用范例 
    这是 [email protected] (27-Jan-1999) 所提供的范例<FORM ACTION=bla>
    <H2>Restaurant Description<H2>
    Name of restaurant:
    <INPUT TYPE=text NAME="restname" VALUE="<?
         echo HTMLSpecialChars($restname); ?>"> 
    <!-- 变数 $restname 是酱子的 $restname="\"The White Horse\""; -->
    <BR>
    输入描述 (若您会 HTML,可直接使用): <BR>
    <TEXTAREA NAME="descript"><?
       echo HTMLSpecialChars($descript);
    ?></TEXTAREA>
    <INPUT TYPE=submit>
    </FORM> 
      

  2.   

    如果只是换行的话:
    $content=nl2br(strip_tags($content));