C14L: Formularparameter mit dem CGI-Modul

Beitrag lesen

Hallo SelfForum,

Hi Mojito!

wenn ich mittels dem CGI-Modul die einzelnen Formularfelder in meinem Skript einlese, lege ich alle Werte zuerst in einer Variable ab:
my $sid = $CGI->param('sid');

Zwar keine direkte Antwort, aber mit

----------------------------
sub ReadParse {
(*in) = @_ if @_;
my ($i, $loc, $key, $val);
if ($ENV{'REQUEST_METHOD'} eq "GET"){ $in = $ENV{'QUERY_STRING'} }
elsif ($ENV{'REQUEST_METHOD'} eq "POST"){ read(STDIN,$in,$ENV{'CONTENT_LENGTH'}) }
@in = split(/&/,$in);
foreach $i (0 .. $#in){
$in[$i] =~ s/+/ /g;
($key, $val) = split(/=/,$in[$i],2);
$key =~ s/%(..)/pack("c",hex($1))/ge;
$val =~ s/%0D%0A/\n/g;
$val =~ s/%(..)/pack("c",hex($1))/ge;
$val =~ s/<!--(.|\n)*-->//g;
$val =~ s/\t/ /g;
$in{$key} .= " " if (defined($in{$key}));
$in{$key} .= $val;
}
}
----------------------------

rufst du einfach &ReadParse; auf, und hast alle GET und POST vars im %in Hash.

Gruß
C14L