Hi David,

Hehe... Thanks in advice. Anyway what I am looking for is making
those stuff back to what they looks like when they come, that is,  the
$input in your script...

However, may I have some questions about your sample ? =)

> my @variables = split(/[\&\;]/, $input);
; has no problem, why you would like to escape( \ )it ?

>     next if ($variable !~ /\=/);
= also no problem , why you would like to escape it too ?
Besides, if you 'next' it if that $variable is not a name=value pair,
so is that mean this var will throw away ?

>     $name =~ tr/+/ /;
>     $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

Hmmm... what is this purpose ? $name is probrably going to be a
var's name, how come it goes with a blank ? and with an assumption
that the $name is coming as a URI escaped string ?

>     ...... Keep in mind, you may have multiple
>     # values for the same name.

Just hard to imagine how come a request coming with same name.
Aren't we supposing the later come value with same name will overwrite
the first one ?

Maybe I am still new to Perl... so I'm try to write my script to handle a
form request
like this ? Would you and the list comment on me ? ( except telling me to
use CGI,
because I won't use it unless I have to deal with multipart form =))

my %data = undef;
my $input = undef;

($ENV{REQUEST_METHOD} eq "POST") ?
{ read (STDIN, $input, $ENV{CONTENT_LENGTH)} :
{ $input = $ENV{QUERY_STRING}} ;

my @vars = split (/\&/, $input);

for (@vars)
{ my ($name, $value) = split (/=/, $_);
    $value=~ tr/+/ /;
    $value=~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $data{$name} = $value;
}

Rgds,
Connie


> --------------------------------------------------------------------------
--
> my @variables = split(/[\&\;]/, $input);
> foreach $variable (@variables) {
>     next if ($variable !~ /\=/);
>
>     my ($name, $value) = split(/\=/, $variable);
>
>     $name =~ tr/+/ /;
>     $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>     $value =~ tr/+/ /;
>     $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
>
>     # assignment to some form of a variable structure that you will be
>     # using out side this loop.  Keep in mind, you may have multiple
>     # values for the same name.
> }
> --------------------------------------------------------------------------
--
>
> Regards,
> David
>
>
>
> ----- Original Message -----
> From: "Connie Chan" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> Sent: Wednesday, July 10, 2002 4:21 PM
> Subject: What is this string type? How to play with?
>
>
> Hi all,
>
> With get method from form, we always see that the
> $ENV{QUERY_STRING} like this :
> &message=%20%2F%15+...&.......
>
> btw, what is the name of that string in types of ? Escape ? Unicode ?
>
> With simple tr/// and s///, I can get back what exact the input
> is, but, how can I make a the input back to the.... above format ?
> Totally have no idea...
>
> Rgds,
> Connie
>
>
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


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

Reply via email to