Also, Maybe you may want to try using CGI.pm to get query strings. ============== use strict; use CGI;
my $cgiObject = new CGI; my @params = $cgiObject->params(); foreach my $paramKey (@params){ print "Param: $paramKey = " . $cgiObject->param($paramKey); } ====================== That may help you out quite a bit. Drieux, You are so hard core dude!;) --- drieux <[EMAIL PROTECTED]> wrote: > > On Sunday, Jun 8, 2003, at 15:38 US/Pacific, steve > ryan wrote: > [..] > > The problem is - > > > > 1. My "+" symbols are not being replaced (i.e. the > spaces in the form) > > 2. My HEX/Ascii conversion isn't working (i.e. i > am getting things > > like %2C) > [..] > > steve, > > First off, I do so try to avoid using "\n" and "\r" > when > dealing with HTML stuff, since it is never a sure > deal that > everyone will agree with what those mean - so I use > the boring > > our $CRLF = "\015\012"; # "\r\n" is not portable > > after playing around, I think what you may have > missed is the > fact that the 'string' that got handed back to you > was already > urlencoded, and needed to be 'unpacked' first before > you go > and deal with specific characters in it. > > So help me out here, I think of the query string as > a long bunch > of charcters say something like: > > > fancy+name=this%3Dlong+%26thing%3A+what+is+strange%3B&var=some+stuff+and > > %2C+other&hill=dick+%2B+jane&bob=frodo%40shire > > which I want to unpack into 'useful' information - > say a hash of stuff > like: > > var => some stuff and, other > fancy name => this=long &thing: what is strange; > hill => dick + jane > bob => [EMAIL PROTECTED] > > As such your '$value' is the value side of the query > string? once you > have unpacked the 'var=value' pairs out of the query > string???? Or are > you trying to work against the whole of the > QueryString itself? > > Which was a mistake I made the first time out the > shoot, and found it > best to break the query string up into it's > constituent parts and > then decrypt it. > > I ripped off, and then twiddled the following from > someone: > > #------------------------ > # Our idea is to pass in a hash > # $ref->{key} = $val that would > # normally be formed as > # ?key=val > sub url_packer($) > { > my ($ref) = @_; > my $url; > while ( my ($k, $v) = each %$ref) > { > $v ='' unless defined($v); > $k =~ s/([^ \w])/"%" . > uc(sprintf("%2.2x",ord($1)))/eg; > $v =~ s/([^ \w])/"%" . > uc(sprintf("%2.2x",ord($1)))/eg; > $v =~ s/ /+/g; > $k =~ s/ /+/g; > $url .= (defined($url))? > "&$k=$v" : "$k=$v"; > } > > $url; > > } # end of url_packer > > #------------------------ > # > sub unpack_query_string($) > { > my ($qstring) = @_; > > return unless $qstring; > > my $queryHash; > > chomp($qstring); > my @args = split(/&/, $qstring); > > foreach my $thing ( @args) { > my ($k, $v) = split(/=/, $thing); > next unless(defined($v) && $v ne ''); > # double coverage here, requires var=val structure > $k =~ s/\+/ /g; $k =~ > s/%(..)/pack("c",hex($1))/ge; > $v =~ s/\+/ /g; $v =~ > s/%(..)/pack("c",hex($1))/ge; > $v =~ s/\s+$//; > $v =~ s/^\s+//; > $queryHash->{$k} = $v; > } > > $queryHash; > > } # end of unpack_query_string > > > Purists will of course note that the > unpack_query_string does not > work and play well with 'multiple select' types of > options - but I > have another variant that deals with that.... > > > > ciao > drieux > > --- > > > -- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > ===== -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GIT d s+:++ a C++ UL++ US+ P+++ L++ W+++ w PS PE t++ b+ G e r+++ z++++ ------END GEEK CODE BLOCK------ __________________________________ Do you Yahoo!? Yahoo! Calendar - Free online calendar with sync to Outlook(TM). http://calendar.yahoo.com -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]