如何预防,;amp#41; 在PHP中被插入数据库?
我正在编写一个PHP/MySQL脚本,它将数据插入数据库,如下所示如何预防,;amp#41; 在PHP中被插入数据库?,php,Php,我正在编写一个PHP/MySQL脚本,它将数据插入数据库,如下所示 Caesar (courtesy post) 我知道这是一个基本问题,但如何防止特殊字符这样做呢?看起来你不仅仅是一次对内容进行HTML转义,实际上是两次转义。你应该做的第一件事是找出你的内容为什么会以这种方式结束,而不是试图将其解码成一种未经转换的格式。您应该始终按照要使用数据的格式进行转义,在插入时使用SQL转义函数进行转义,在HTML中显示数据时使用htmlspecialc
Caesar (courtesy post)
我知道这是一个基本问题,但如何防止特殊字符这样做呢?看起来你不仅仅是一次对内容进行HTML转义,实际上是两次转义。你应该做的第一件事是找出你的内容为什么会以这种方式结束,而不是试图将其解码成一种未经转换的格式。您应该始终按照要使用数据的格式进行转义,在插入时使用SQL转义函数进行转义,在HTML中显示数据时使用htmlspecialchars(或类似函数)进行转义(并注意使用的字符编码)
如果此格式的数据来自其他来源,请使用
html\u entity\u decode
再次规范化文本。但这似乎很奇怪。也许使用urldecode()或str_replace()?html_entity_decode()和urldecode()应该可以工作。是的,我刚刚在客户现有的代码库上启动了一个项目,注意到这个问题,我将重新编写它并使用PDO,希望我不会有这个问题,然后我发现数据是这样从API中获取的