Php getting argument using $_GET

Contributor
30Oct2008,12:40   #1
rekha's Avatar
Hi,

I have a php page where i am getting argument from another page.The argument contains values similar to "Repair & Maintenance".If i retrieve that argument using $_GET method i am getting only "Repair" as the value.I need the value to be "Repair & Maintenance".How can i get this.

Regards
Rekha
Go4Expert Founder
30Oct2008,13:24   #2
shabbir's Avatar
You submitted the thread as article and I have moved it to forums for discussion.
Go4Expert Member
17Nov2008,00:13   #3
pete_bisby's Avatar
The ampersand is causing the break in the URL - PHP populates the $_GET array from the URL. Everything to the right of the question mark goes to the $_GET array, with each pair of key/values.
E.g.
http://someurl.com?field1=value1&field2=value2
$_GET["field1"] = "value1"
$_GET["field2"] = "value2"

Now because you have an ampersand in the URL, PHP thinks it is a new variable, which is the reason why the second half is disappearning.

The solution: encode the URL correctly - look at htmlentities(), htmlspecialchars() or urlencode()
Team Leader
17Nov2008,10:54   #4
pradeep's Avatar
Use urlencode

Code: PHP
$url = "http://www.go4expert.com/index.php?value=".urlencode('Repair & Maintenance');
//http://www.go4expert.com/index.php?value=Repair%20%26%20Maintenance