php中GET/POST方法+号等特殊字符处理

自己在项目开发中写了个自用接口,用GET方法传参(用户名和密码)。最近收到用户反馈:密码为特殊字符时会出错。我一开始想是不是php的mysql_real_escape_string函数将特殊字符转义了,但用户说自己密码只有“+”号这个特殊字符,而“+”号不属于该函数转义的范围之内。

为了弄明白这个问题我就在本地测试了一下,果然发现有bug。

测试代码:

测试的url为http://localhost/test/?a=123!@#&b=123结果报错了:

#号后面的参数被屏蔽了

可以看出“#”号后面的参数被屏蔽了,这很正常,因为“#”号后面的数据不会发送到HTTP请求中。 Continue Reading…