checkin v3.10
[perl/plp/.git] / PLP / Fields.pm
index a14f03826d3fd44d67fe516692352aaef1496253..7b563cbf023d453abdf8adc0fb8b3396a6456cd0 100644 (file)
@@ -10,13 +10,21 @@ PLP::Script. Also generates %cookie immediately.
 
     PLP::Fields::doit();
 
+This module is part of the PLP internals. Don't use it yourself.
+
 =cut
 
 sub doit {
     tie %PLP::Script::get, 'PLP::Tie::Delay', 'PLP::Script::get', sub {
        my %get;
-       if ($ENV{QUERY_STRING} ne ''){
-           for (split /[&;]/, $ENV{QUERY_STRING}) {
+       my $get;
+       if ($ENV{MOD_PERL}) {
+           $get = Apache->request->args;
+       } else {
+           $get = $ENV{QUERY_STRING}
+       }
+       if ($get ne ''){
+           for (split /[&;]/, $get) {
                my @keyval = split /=/, $_, 2;
                PLP::Functions::DecodeURI(@keyval);
                $get{$keyval[0]} = $keyval[1] unless $keyval[0] =~ /^\@/;
@@ -28,7 +36,12 @@ sub doit {
 
     tie %PLP::Script::post, 'PLP::Tie::Delay', 'PLP::Script::post', sub {
        my %post;
-       our $post = <STDIN>;
+       my $post;
+       if ($ENV{MOD_PERL}) {
+           $post = Apache->request->content;
+       } else {
+           read(*STDIN, $post, $ENV{CONTENT_LENGTH});
+       }
        if (defined($post) && $post ne '' &&
            ($ENV{CONTENT_TYPE} eq '' || $ENV{CONTENT_TYPE} eq 'application/x-www-form-urlencoded')){
            for (split /&/, $post) {