之前开发的 FOFA 搜索小工具,开发完了测试能查数据就没管了,今天自己用的时候突然发现存在一个BUG
我输入了2个搜索条件,但是搜索出来的结果却是一堆,这是不可能的事情,于是一番排查
打印查询变量发现语法遇到 & 符号后就直接跳过,忽略了后面,这就导致查询其实一直是单条件,第一个条件在查询,难怪结果那么多。。。
本来我以为把 POST 接受到的语法直接 URL 编码即可,结果发现并没有任何作用,不明白是什么情况
百度查了半天资料也是无果,后面自己浏览器 F12 慢慢测试发现 前端如果直接提交 %26 也就是URL编码后的 & 符号,那就没问题的。。。
既然如此,后端无法URL编码,那就前端,所以找到 js AJAX 提交按钮的代码,添加一个替换即可:
添加以后再测试,发现完美解决这个问题,
写个文章记录一下,做个笔记。
最后,为什么 urlencode($_POST[''])
无法将 & 编码为 %26 呢?