123'; ソース コードを確認するときに出力しました。 、データベースに保存された後、ソースコードが表示されると、実際には <pr になります。"/> 123'; ソース コードを確認するときに出力しました。 、データベースに保存された後、ソースコードが表示されると、実際には <pr になります。">

ホームページ  >  記事  >  バックエンド開発  >  くそー、本当にわかりません、バグですか?何をするか

くそー、本当にわかりません、バグですか?何をするか

WBOY
WBOYオリジナル
2016-06-13 13:42:56746ブラウズ

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

$str='

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

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

诡异的是

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

<pre><span style="color:red">123</span></pre>

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

难道bug??

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

------解决方案--------------------

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

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

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。