日期:2014-05-17  浏览次数:20557 次

见鬼了,,真的是百思不得其解,难道是bug???
一段语句

$str='<pre><span style="color:red">123</span></pre>';

在临插入数据库的时候我打印出来,,观看源代码就是这样的,

诡异的是

存入数据库后,,在显示出来,源代码居然变成

&lt;pre&gt;<span style="color:red">123</span>&lt;/pre&gt;

而数据库里存的也是这个,,真是邪门了。。。。

难道bug??

------解决方案--------------------
我打印出sql语句都没问题
-----------------------
确定浏览器源代码里看这行输出<pre>也没转化?
------解决方案--------------------

看数据库数据是否正常。
不正常检查:
echo $sql 之后 INSERT之前有没实体化了。

正常:
即是实体化输出了。
------解决方案--------------------
转义字符的问题吧。

使用addslashes函数将数据插入到数据库中,读取时使用stripslashes函数还原为正常的数据。
------解决方案--------------------
TP入库自动处理了的吧
------解决方案--------------------
同意楼上的,是为了防止SQL注入式攻击。上次的加那个转义没有用的。不过好像把标签的"<"和">"(。&lt;pre&gt;)替换为"&\lt","&\gt"。这样既可以正确显示代码,又不会使代码被执行
------解决方案--------------------
你用thinkphp ,thinkphp的插入都把标签给转换了