Thread CGI.pm veraltet - Eigene CGI in min Ausführung
(48 answers)
Opened by Gustl at 2018-08-24 10:30
Der Enctype application/x-www-form-urlencoded ist nicht nur auf GET beschränkt. Beim Parsen dessen beachte auch das + Zeichen wegen der Abwärtskompatibilität.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # Public und unabhängig verwendbar # application/x-www-form-urlencoded sub qparse{ my $self = shift; my $rawdata = shift; my %param = (); # Punkte in Parameternamen erlauben my @pie = split /[;&]/, $rawdata; foreach my $p(@pie){ my ($pname, $val) = split(/=/, $p, 2); next unless $pname; next unless defined $val; $val =~ s/\+/ /g; $val =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg; push @{$param{$pname}}, $val; } return \%param; } Und lass Dir mal die Logik durch den Kopf gehen woher die Parameter kommen. Wenn es einen HTTP Header Content-Length gibt kommen die aus STDIN. Wobei es einen QUERY_STRING unabhänig davon geben kann. Was das Setzen von Response Headers betrifft, guck Dir mal HTTP::Headers an. Siehe auch http://rolfrost.de/parser.html Nochn Tipp: Strukturierte Parameter: http://rolfrost.de/formin.html?insert=1;person.nam... Sollte ein moderner Parser auch können ;) MfG Last edited: 2018-08-25 08:54:27 +0200 (CEST) |