Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用$\u get时的大链接_Php_Get - Fatal编程技术网

Php 使用$\u get时的大链接

Php 使用$\u get时的大链接,php,get,Php,Get,我正在处理一个激活链接。看起来像这样 localhost/actvte/validate.php?type=activate&geo=define& value=227755RYQBENU5G8WE7RFPO6CD6Z#MJ1H1FA@G#IZWZ53903 &target=loaded&resrc=G6MYMI2R67727229911380184297841084713071U8VUYIGR &master=user@gmail.com 但是当我使用

我正在处理一个激活链接。看起来像这样

localhost/actvte/validate.php?type=activate&geo=define&
value=227755RYQBENU5G8WE7RFPO6CD6Z#MJ1H1FA@G#IZWZ53903
&target=loaded&resrc=G6MYMI2R67727229911380184297841084713071U8VUYIGR
&master=user@gmail.com
但是当我使用$_get['value']时,我只得到227755RYQBENU5G8WE7RFPO6CD6Z的o/p。在整个链接变得无用之后。如果我这样做

  echo $_get['target']; or echo $_get['master'];
它表示未定义的变量“target”或“master”


因此,我如何处理这个大链接。

不使用或正确编码片段标识符。

您不应该在URL中使用,而应该以某种方式对其进行编码,或者使用另一个字符。

您应该做的是在将字符串放入GET之前在PHP中对其使用urlencode函数。这样,字符串就变成227755RYQBENU5G8WE7RFPO6CD6Z%23MJ1H1FA%40G%23IZWZ53903,而不是227755RYQBENU5G8WE7RFPO6CD6ZMJ1H1FA@GIZWZ53903因为特殊字符不能在查询字符串中使用

例如,哈希值甚至永远不会通过浏览器发送到服务器,因此后面的所有内容都不会到达您的手中


有关URI语法(包括哈希)的更多信息,请参阅。

URL中的第一个表示片段标识符的开始。如果要将其作为数据而不是URL的分隔符组件发送,则需要将其表示为%23。

仅当在应用程序中获得它时,只需执行urldecode即可。@sid-假设使用了正确的转义,即准备好的语句和绑定的变量,它将存储您放入其中的任何内容。@Boy-No。它将通过$\u GET进入应用程序,在那里它已经被解码。在上面使用urldecode会双重解码,可能会破坏数据。公平地说,我没有测试出来,所以你可能是对的昆汀。