Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何预防,;amp#41; 在PHP中被插入数据库?_Php - Fatal编程技术网

如何预防,;amp#41; 在PHP中被插入数据库?

如何预防,;amp#41; 在PHP中被插入数据库?,php,Php,我正在编写一个PHP/MySQL脚本,它将数据插入数据库,如下所示 Caesar (courtesy post) 我知道这是一个基本问题,但如何防止特殊字符这样做呢?看起来你不仅仅是一次对内容进行HTML转义,实际上是两次转义。你应该做的第一件事是找出你的内容为什么会以这种方式结束,而不是试图将其解码成一种未经转换的格式。您应该始终按照要使用数据的格式进行转义,在插入时使用SQL转义函数进行转义,在HTML中显示数据时使用htmlspecialc

我正在编写一个PHP/MySQL脚本,它将数据插入数据库,如下所示

Caesar (courtesy post)

我知道这是一个基本问题,但如何防止特殊字符这样做呢?

看起来你不仅仅是一次对内容进行HTML转义,实际上是两次转义。你应该做的第一件事是找出你的内容为什么会以这种方式结束,而不是试图将其解码成一种未经转换的格式。您应该始终按照要使用数据的格式进行转义,在插入时使用SQL转义函数进行转义,在HTML中显示数据时使用htmlspecialchars(或类似函数)进行转义(并注意使用的字符编码)


如果此格式的数据来自其他来源,请使用
html\u entity\u decode
再次规范化文本。但这似乎很奇怪。

也许使用urldecode()或str_replace()?html_entity_decode()和urldecode()应该可以工作。是的,我刚刚在客户现有的代码库上启动了一个项目,注意到这个问题,我将重新编写它并使用PDO,希望我不会有这个问题,然后我发现数据是这样从API中获取的