Cheatah: CGI-Übergabeparameter

Beitrag lesen

Hi,

um Parameter sowohl aus POST- als auch aus GET-Operationen auslesen zu können, hilft folgende Routine:

sub GetQuery {
   local (*qs) = @_ if @_;
   if ($ENV{'REQUEST_METHOD'} eq "GET") { $qs = $ENV{'QUERY_STRING'}; }
   elsif ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$qs,$ENV{'CONTENT_LENGTH'}); }
   @qs = split(/&/,$qs);
   foreach $i (0 .. $#qs) {
      $qs[$i] =~ s/+/ /g;
      $qs[$i] =~ s/%(..)/pack("c",hex($1))/ge;
      ($name,$value) = split(/=/,$qs[$i],2);
      if ($qs{$name} ne "") { $qs{$name} = "$qs{$name}:$value"; }
      else { $qs{$name} = $value; }
   }
   return 1;
}

Aufruf (am besten am Anfang des Scripts) mit &GetQuery(*data); Danach greifst Du auf die übergebenen Parameter zu mit $data{'ParameterName'}, also wenn Du "script.pl?PARA=wasauchimmer" übergeben hast, steht danach in $data{'PARA'} der String 'wasauchimmer'. Statt "data" kannst Du natürlich jeden beliebigen Namen benutzen.

Cheatah