Re: PHP "GET" Error?

[email protected] (Shawn McKenzie)
Newsgroups php.general
Message-ID <[email protected]>
Shawn McKenzie wrote:
> Alice Wei wrote:
>> Hi, 
>>
>>     I have done something wrong here, because when I have my variables declared in my PHP:
>>
>>    $people_from = $_GET['people_from'];
>>    $state_colors= $_GET['state_colors'];
>>
>>   I get this url: http://localhost/generic.php?people_from=Adair, OK-Alfalfa, OK-Atoka, OK-Beaver, OK-Beckham, OK-Blaine, OK-Bryan, OK-Caddo, OK-Canadian, OK-Carter, OK-Cherokee, OK-Choctaw, OK-Cimarron, OK-Cleveland, OK-Coal, OK&state_colors=#FFFFCC-#FFFFCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC
>>
>>  The result? I don't get any colors on the screen as I have here in the url. 
>> However, if I do:
>>    
>> $people_from = "Adair, OK-Alfalfa, OK-Atoka, OK-Beaver, OK-Beckham, OK-Blaine, OK-Bryan, OK-Caddo, OK-Canadian, OK-Carter, OK-Cherokee, OK-Choctaw, OK-Cimarron, OK-Cleveland, OK-Coal, OK";
>> $state_colors= "#FFFFCC-#FFFFCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC-#FFCCCC";
>>
>> I get the correct result. In total, there are 77 entries (I only put 15 here). Is there a length limit for what I pass to the url? If not, how come there are no colors showing up in my image as I desired according to my url?
>>
>> Thanks for your help.
>>
>> Alice
>>  		 	   		  
>> _________________________________________________________________
>> Hotmail: Free, trusted and rich email service.
>> http://clk.atdmt.com/GBL/go/201469228/direct/01/
> 
> There are characters in the URL that have a meaning within a URL itself
> (such as #).  Use urlencode() before putting the data in the URL.
> 

FWIW, how I would probably handle this is to have an array of
$people_from and an array of $state_colors and then serialize() them and
run through urlencode().  Then you have an array on the next page.  Much
easier to work with:

$people_from = array('K-Alfalfa', 'OK-Atoka'); //etc...
$state_colors = array('#FFFFCC', '#FFFFCC'); //etc...

Then the link would be:

$url =
'generic.php?people_from='.urlencode(serialize($people_from)).'&state_colors'.urlencode(serialize($state_colors));

You then have a $_GET['people_from'] and $_GET['state_colors'] array on
the next page.

-- 
Thanks!
-Shawn
http://www.spidean.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.