v2.40 release
[perl/plp/.git] / plpfields.pm
1 #!/usr/bin/perl
2 # shebang only for color coding, just ignore it m'kay?
3 use strict;
4 use vars qw(%get %post %fields %cookie %INTERNAL);
5
6 $INTERNAL{getsub} = sub {
7     my %get;
8     if ($ENV{QUERY_STRING} ne ''){
9         for (split /&/, $ENV{QUERY_STRING}) {
10             my @keyval = split /=/;
11             DecodeURI(@keyval);
12             $get{$keyval[0]} = $keyval[1];
13         }
14     }
15     return \%get;
16 };
17
18 $INTERNAL{postsub} = sub {
19     my %post;
20     $INTERNAL{post} = <STDIN>;
21     if (defined($INTERNAL{post}) && $INTERNAL{post} ne '' &&
22         ($ENV{CONTENT_TYPE} eq '' || $ENV{CONTENT_TYPE} eq 'application/x-www-form-urlencoded')){
23         for (split /&/, $INTERNAL{post}) {
24             my @keyval = split /=/;
25             DecodeURI(@keyval);
26             $post{$keyval[0]} = $keyval[1];
27         }
28     }
29     return \%post;
30 };
31
32 $INTERNAL{fieldssub} = sub {
33     $get{PLPdummy}, $post{PLPdummy}; # Trigger creation
34     return {%get, %post}
35 };
36
37 tie %get, 'PLP::Delay', 'main::get', $INTERNAL{getsub};
38 tie %post, 'PLP::Delay', 'main::post', $INTERNAL{postsub};
39 tie %fields, 'PLP::Delay', 'main::fields', $INTERNAL{fieldssub};
40
41 #%fields = (%get, %post);
42
43 if (defined($ENV{HTTP_COOKIE}) && $ENV{HTTP_COOKIE} ne ''){
44     for (split /; ?/, $ENV{HTTP_COOKIE}) {
45         my @keyval = split /=/;
46         $cookie{$keyval[0]} ||= $keyval[1];
47     }
48 }
49
50 1;