Php getting argument using $_GET

rekha's Avatar
Contributor
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
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
You submitted the thread as article and I have moved it to forums for discussion.
0
pete_bisby's Avatar, Join Date: Nov 2007
Go4Expert Member
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()
0
pradeep's Avatar, Join Date: Apr 2005
Team Leader
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