Thread CGI.pm veraltet - Eigene CGI in min Ausführung (48 answers)
Opened by Gustl at 2018-08-24 10:30

rosti
 2018-08-25 07:33
#188831 #188831
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
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)

View full thread CGI.pm veraltet - Eigene CGI in min Ausführung