使用$ _get时的大链接

i am processing a activation link.which looks like this.

localhost/actvte/validate.php?type=activate&geo=define&
value=227755RYQBENU5G8WE7RFPO6CD6Z#MJ1H1FA@G#IZWZ53903
&target=loaded&resrc=G6MYMI2R67727229911380184297841084713071U8VUYIGR
&master=user@gmail.com

but when i use $_get['value'] i get o/p only "227755RYQBENU5G8WE7RFPO6CD6Z".after this whole link becomes useless.if i do

  echo $_get['target']; or echo $_get['master'];

it says undefined variable 'target' or 'master'.

so how can i process this large link.

What you should do is use the urlencode() function in PHP on the string before putting it in the GET. This way your string becomes 227755RYQBENU5G8WE7RFPO6CD6Z%23MJ1H1FA%40G%23IZWZ53903 and not 227755RYQBENU5G8WE7RFPO6CD6Z#MJ1H1FA@G#IZWZ53903 as special characters cannot be used in the query string.

Hashes for example will never even be send by the browser to the server, so everything behind that will not reach you.

Please look at RFC 3986 for more information about the URI syntaxing (including hashes).

By not using or properly encoding the fragment identifier (#).

You should not use # in the URL but encode it some way, or use another character.

The first # in a URL indicates the start of the fragment identifier. If you want to send it as data rather then a separator component of a URL then you need to express it as %23.