Re: Apache2::Request appears to not capture the full POST:ed value

André Warnier <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
Linus Lund wrote:
> I have encountered a problem that I have been unable to solve using
> documentation/google. I'm running mod_perl 2 / (strawberry) perl
> 5.10.1 / Apache 2.2.20 on a Windows XP machine where I need to collect
> data POSTed from a hardware (the Box) that I have no control over. The
> Box is suppose to POST a semi colon separated list of data using a
> field called value. I'm using Apache2::Request to parse the POST, but
> it only captures the first part of the field (up until the first semi
> colon).
> 
> My perl script looks like this;
> sub handler {
>     my $r=shift;
>     my $req = Apache2::Request->new($r);
>     $input = $req->param('value');
>     warn "INPUT is $input";
>     return Apache2::Const::OK;
> }
> 
> And this is what I see in my logs;
> [Sun Oct 09 22:08:20 2011] [notice] mod_dumpio:  dumpio_in
> (data-HEAP): value=f1;2011-10-09;21:25:40;14;0;;0;0;3;1
> [....]
> INPUT is f1 at [...]
> 
> My thoughts on the problem is that it relates to URL encoding, as when
> I send a direct query to the script it only fetches the whole part
> when I encode the semi-colons. I have however not found a way to e.g.
> mod_rewrite the POST content.
> Any thoughts that could aid me?
> THanks
> 

I believe that at some point, a bare semi-colon was/is considered as an alternative to 
"&", to separate post parameters.
So with the query string above, you probably have one parameter named "value" with a value 
of "f1", then another parameter named "2011-10-09" with value null, then a parameter named 
"21" with value null, etc...

There might be an option to Apache::Request to avoid this.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.