我在网址中传递一个加密的字符串然后使用php $ _GET来检索它,但我遇到了一些问题,让我先写一下网址以使其更有意义
http://localhost/marketplace/test.php?sortid=Cd2&V0reSzN$NBh^tjcF!%3CfsAAhIU%28%3C
如果您注意到我在字符串中间有一个&符号,那么当我回显$ _GET时,它会在&符号后打破该值Ex
echo $_GET['sortid'];
我得到的结果是Cd2并且在&符号之后没有读取任何内容,我能弄明白的问题是php会在'&'之后将所有内容读作不同的参数使用$ _GET时签名
但我不知道如何解决这个问题
由于
答案 0 :(得分:1)
这种情况正在发生,因为&符号在查询字符串中具有特殊含义。您正在经历的行为完全正常且预期。
如果你想传递包含特殊字符的GET参数,你应该使用urlencode或者像base64编码那样正确编码它们。
答案 1 :(得分:0)
通过URL创建,用%26替换&符,它就可以了。 或者,再次使用base64对编码的字符串进行编码,然后就没有符号。