求救啊,就像这个csdn,我不管发什么内容的帖子,都是正确无误的显示,
肯定有人能够帮我啊

解决方案 »

  1.   

    我想我要做的是:
    对一切用户提交的文本内容,做如下处理:
    凡是html的特殊东西,比如< >都干掉为&lt; &gt;
    凡是',",(,)都用转义;总之,能将任意文本插入数据库;能显示为普通文本。 一切功能性的
    字符全部作为普通字符。请大家帮忙啊。这应该是php的一个基本东西啊
      

  2.   

    搞了一个函数,希望大家补充。//去除字符串中的功能性字符,包括html中的<,>(用&lt;&gt;代替),
    //',",\,用转义字符代替。
    //基本要求:能够把结果正确插入数据库,也能正确导出。
    //能够作为纯文本插在html中
    function getTextFromString($str)
    {
    if (!get_magic_quotes_gpc()) $str = addslashes($str);
    //代替html的< >为&lt; $gt;
    $str=str_replace("<","&lt;",$str);
    $str=str_replace(">","&gt;",$str);
    return $str;
    }
      

  3.   

    用$str = $conn->qstr($str)
    处理一下,应该是字符串中的功能性字符,导致的错误(就像楼上说的)
      

  4.   

    function safe_convert($d) {
      $d = str_replace("\t","",$d);
      $d = str_replace("<","&lt;",$d);
      $d = str_replace(">","&gt;",$d);
      $d = str_replace("\r","<br>",$d);
      $d = str_replace("\n","",$d);
      $d = str_replace("|","│",$d);
      $d = str_replace("  "," &nbsp;",$d);
      return $d;
    }
    $d为你所指的contents
      

  5.   

    如果只是想输入什么就在页面里显示什么的话
    $str=str_replace("<","&lt;",$str);
    就足够了,而只经过这一个,就可以直接放到数据库里了
    不用addslashes处理
      

  6.   

    Mistruster(弱智d):如果不用addslashed的话,是有可能不能插到数据库的
    因为php.ini中不一定开放了特殊字符的自动转义功能。
      

  7.   

    用这个函数处理一下,应该可以了。function safe_convert($d) {
    $d = str_replace("\t","",$d);
    $d = str_replace("<","&lt;",$d);
    $d = str_replace(">","&gt;",$d);
    $d = str_replace("\r","<br>",$d);
    $d = str_replace("\n","",$d);
    $d = str_replace("|","│",$d);
    $d = str_replace("  "," &nbsp;",$d);
    return $d;
    }