2011-11-20 69 views
-2

我在URL中传递加密字符串,然后使用php $ _GET来检索它,但我遇到一些问题,请让我先写URL以使其更加容易感

http://localhost/marketplace/test.php?sortid=Cd2&V0reSzN$NBh^tjcF!%3CfsAAhIU%28%3C 

,如果你会发现我有这样,当我呼应了$ _GET它符号标志后打破值ex

echo $_GET['sortid']; 

,结果字符串中间的符号迹象我得到的是Cd2,并且在&符号之后没有读取任何东西,这个问题MI能弄清楚的是,在使用$ _GET

PHP将读取的一切,后“&”标志不同的参数,但我对如何解决由URL创建这个

感谢

+5

http://php.net/urlencode – hakre

+3

这不是**问题**。你应该明白为什么PHP(而不仅仅是)有这种行为。 –

回答

0

不知道,用%26替换&符号,它会起作用。 或者,再次用base64编码您的编码字符串,然后您没有&符号。

+0

感谢belgther –

1

发生这种情况的原因是&符号在查询字符串中有特殊含义。你正在经历的行为是完全正常的和预期的。

如果你想传递包含特殊字符的GET参数,你应该使用urlencode或者像base64编码之类的东西对它们进行正确的编码。

+0

感谢兄弟我现在正确地编码em ...我确定&符号有一些特殊的含义,试图找到一种方式,但我相信我应该采取更好的方法,然后解决这个问题 –

+0

不客气。如果您发现问题的答案有帮助,请注意并/或接受它们。 –