Bookmarks

Yahoo Gmail Google Facebook Delicious Twitter Reddit Stumpleupon Myspace Digg

Search queries

sqldatasource dal, wwwxxxenden, convert raid5 to raid 10 mdadm, apache force chunked, nrao wwwxxx, xxxxxdup, procmail change subject header, wwwXxx not20, Wwwxxx.doks sas, linux raid resync after reboot

Links

XODOX
Impressum

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

Posted on 2011-10-09 22:31:07 by Linus Lund

I have encountered a problem that I have been unable to solve using
documentation/google.=A0I'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 {
=A0 =A0 my $r=3Dshift;
=A0 =A0 my $req =3D Apache2::Request->new($r);
=A0 =A0 $input =3D $req->param('value');
=A0 =A0 warn "INPUT is $input";
=A0 =A0 return Apache2::Const::OK;
}

And this is what I see in my logs;
[Sun Oct 09 22:08:20 2011] [notice] mod_dumpio: =A0dumpio_in
(data-HEAP): value=3Df1;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

Report this message

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

Posted on 2011-10-10 23:11:19 by aw

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.

Report this message

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

Posted on 2011-10-11 00:43:17 by Jeff McCarrell

Andre is correct. Semi-colon is a valid query string separator,
in addition to ampersand &.
HTTP 1.x being so widely deployed, it is very hard to change the spec.
So supporting semi-colon is a W3C recommendation.

C.f. http://en.wikipedia.org/wiki/Query_string

-- jeff

On 10/10/11 2:11 PM, "Andr=E9 Warnier" <aw@ice-sa.com> wrote:

>I believe that at some point, a bare semi-colon was/is considered as an
>alternative to
>"&", to separate post parameters.
>

Report this message