> -----Original Message-----
> From: Larry Steinberg [mailto:[EMAIL PROTECTED]]
> Sent: Friday, August 02, 2002 11:38 AM
> To: [EMAIL PROTECTED]
> Subject: grab another param from url
> 
> 
> Hi,
> 
> I have a subroutine that grabs a parameter (city) from the url for use in
> the script (which produces a report with the value of that 
> parameter). I now
> want to grab another parameter (state) and append it to the previous and
> have it also appear in the report. Preferably it would look like this:
> "Boston, MA" (without the quotes). Here's the code:
> 
> sub parseUrl {
> 
>     $nPara = $tPara = "";
> 
>     ($nPara) = ( $line =~ /[\?&]N=([^&\s]+)/i );
>     if ($nPara ne "") { $nPara = unpack_clean($nPara); }
> 
>     ($tPara) = ( $line =~ /[\?&]T=([^&\s]+)/i );    #gets city parameter
> (T=)
>     if ($tPara ne "") { $tPara = unpack_clean($tPara); }
> 
>     if ($tPara ne "" && $err eq "cit") {
> # print "$tPara\n";
>  if (exists $userCit{$tPara}) { $userCit{$tPara}++; }
>  else { $userCit{$tPara}=1; $countCit++;}
>     }
> 
> How do I add the state parameter (S=)?
> 
> Thanks!
> 
> -Larry

How about somthing like this:

if ($ENV{'QUERY_STRING'}) {
my $temp = $ENV{'QUERY_STRING'};
my @pairs = split(/;/, $temp);  # or whatever you have to split on
my %request;

foreach my $in(@pairs)  {
        my ($name,$value) = split(/=/,$in);
        $value =~ tr/+/ /;
        $value =~ s/%(..)/pack("C",hex($1))/ge;
        $request{$name} = $value;
}
# Do what you want with each one such as
# if (defined $request{'S'}) ...
}
}

So a URL could come in like so:

http://whatever.com/cgi-bin/script.cgi?a=whatever;b=somthing;c=this

Now you have values for a, b and c...
But I am sure there are a lot of better ways to do it.
CGI.pm can handle parsing of a URL and I believe would be safer
than this type of thing.


Barry
 

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to