X-Git-Url: http://git.shiar.net/perl/plp/.git/blobdiff_plain/b5e0ee87251670be18b2f2fc128a4be0b25ebfb8..b7b9dad9e33b14e2364f6f69edc9bce5bdbd0cb2:/lib/PLP/Fields.pm diff --git a/lib/PLP/Fields.pm b/lib/PLP/Fields.pm index 7f07c4e..52040e3 100644 --- a/lib/PLP/Fields.pm +++ b/lib/PLP/Fields.pm @@ -1,6 +1,9 @@ package PLP::Fields; use strict; +use warnings; + +our $VERSION = '1.00'; # Has only one function: doit(), which ties the hashes %get, %post, %fields # and %header in PLP::Script. Also generates %cookie immediately. @@ -9,7 +12,7 @@ sub doit { # %get my $get = \%PLP::Script::get; - if (length $ENV{QUERY_STRING}){ + if (defined $ENV{QUERY_STRING} and length $ENV{QUERY_STRING}){ for (split /[&;]/, $ENV{QUERY_STRING}) { my @keyval = split /=/, $_, 2; PLP::Functions::DecodeURI(@keyval); @@ -22,13 +25,10 @@ sub doit { tie %PLP::Script::post, 'PLP::Tie::Delay', 'PLP::Script::post', sub { my %post; - my $post; - - return \%post if $ENV{CONTENT_TYPE} !~ - m!^(?:application/x-www-form-urlencoded|$)!; - - $post = $PLP::read->($ENV{CONTENT_LENGTH}) if $ENV{CONTENT_LENGTH}; + return \%post unless $ENV{CONTENT_TYPE} and $ENV{CONTENT_LENGTH} and + $ENV{CONTENT_TYPE} =~ m!^(?:application/x-www-form-urlencoded|$)!; + my $post = $PLP::read->($ENV{CONTENT_LENGTH}); return \%post unless defined $post and length $post; for (split /&/, $post) { @@ -114,6 +114,10 @@ when sending the headers is the one you used first. The following are equal: $header{Content_Type} $headers{CONTENT_type} +If a value contains newlines, the header is repeated for each line: + + $header{Allow} = "HEAD\nGET"; # equivalent to HEAD,GET + =back =head1 AUTHOR