输入画面:
<textarea name="araQualification" cols="60" rows="5" style="ime-mode: active;" class="active"></textarea>
在确认画面,nl2br()可以实现输入文本框的换行,但是为了防止恶意输入html用了htmlspecialchars,结果是<br />被显示出来而且不能自动换行了。如果想实现多行文本的换行问题又能防止恶意输入html,该怎么解决呢?谢谢确认画面的代码:
<?php 
  $Qualification=nl2br($_POST["araQualification"]));
if(trim($Qualification=="")) 
{ $Qualification=" ";
} echo htmlspecialchars($Qualification,ENT_NOQUOTES);
?>发邮件画面

解决方案 »

  1.   

    向下面这样使用后,确实回车换行好用了,可是在这输入框里输入html代码的话,html代码就有效了。比如我输了<input type="text" name="2" value="fda"> 
    在确认画面该当项目栏里显示出了一个文本框。这样的话就没有实现防止恶意的html的注入。<?php  
    $Qualification=nl2br($_POST["araQualification"]));
    if(trim($Qualification==""))  
    { $Qualification=" ";}
    echo htmlspecialchars_decode(htmlspecialchars($Qualification,ENT_NOQUOTES));
      

  2.   

    这个问题我也遇到过这样的问题,用TexArea很麻烦的,给楼主提个建议,你用Div做一个TexArea效果是一样的,不过很多问题都能解决,楼主可以试一下。