我正在处理激活链接。它看起来像这样。
localhost/actvte/validate.php?type=activate&geo=define&
value=227755RYQBENU5G8WE7RFPO6CD6Z#MJ1H1FA@G#IZWZ53903
&target=loaded&resrc=G6MYMI2R67727229911380184297841084713071U8VUYIGR
&master=user@gmail.com
但是当我使用$ _get ['value']时,我只得到“227755RYQBENU5G8WE7RFPO6CD6Z”。此后整个链接变得无用。如果我这样做
echo $_get['target']; or echo $_get['master'];
它说undefined variable
'target
'或'master
'。
所以我该如何处理这个大链接。
答案 0 :(得分:4)
在将其放入GET之前,您应该在字符串中使用PHP中的urlencode()
函数。这样,您的字符串变为227755RYQBENU5G8WE7RFPO6CD6Z%23MJ1H1FA%40G%23IZWZ53903
而不是227755RYQBENU5G8WE7RFPO6CD6Z#MJ1H1FA@G#IZWZ53903
,因为查询字符串中不能使用特殊字符。
例如,哈希甚至不会被浏览器发送到服务器,因此背后的一切都无法与您联系。
请查看RFC 3986以获取有关URI语法的更多信息(包括哈希)。
答案 1 :(得分:2)
不使用或正确编码片段标识符(#)。
答案 2 :(得分:1)
您不应在URL中使用#,而是以某种方式编码,或使用其他字符。
答案 3 :(得分:1)
URL中的第一个#
表示片段标识符的开头。如果您想将其作为数据而不是URL的分隔符组件发送,则需要将其表示为%23
。