Matti Maekitalo: Umleitung auf eine andere Seite

Beitrag lesen

use Mosche;

my $key = '';
my $val = '';
my %in = ();
my $in = '';
if ( $ENV{REQUEST_METHOD} eq 'POST'){
read(STDIN, $in, $ENV{CONTENT_LENGTH});
}else{
$in = $ENV{QUERY_STRING};#GET lesen
}

for(split/&/,$in){##Input nach Paaren splitten key=val
($key , $val) = split/=/;#splitten nach key=val
$key =~ y/+/ /;# + durch Space ersetzen
$key =~ s/%(..)/pack("c",hex($1))/ge;#Sonderzeichen decodieren
$val =~ y/+/ /;# + durch Space ersetzen
$val =~ s/%(..)/pack("c",hex($1))/ge;

$in{$key} .= $val;
}

_Bitte_ verzichte auf diesen Code, und benutze CGI.pm:

use CGI;
my $q = new CGI;

Parameter bekommst du dann mit $q->param('dein_key');

Wenn du weiterhin dein %in behalten willst, benutze folgendes:

my %in;
  $in{$_} = $q->param($_) foreach $q->param();

Ich möchte darauf hinweisen, dass dieser Code es dir erlaubt, auf den gesamten _Schmus_ da oben zu verzichten, er ist aber nicht sehr performant, da jedesmal deine gesamten Parameter ausgelesen werden, obwohl du vielleicht nicht alle brauchst. Es ist aber mit _Sicherheit_ besser als dein Code.

use Tschoe qw(Matti);