> Tommaso Torti wrote:
> > Hi all,
> >
> > i'm using mod_perl in order to retrieve all keys from a POST request with:
> >
> > my $request = Apache2::Request->new($r);
> > my $data = $request->param();
> >
> > When i receive something like
> > key1=value1&key2=&key3=value3
> > $data contains all 3 keys
> >
> > but with
> > key1=value1&key2&key3=value3
> > $data contains only 2 keys: key1 and key2&key3
> >
> > Is there a way to retrieve all the 3 keys like the first case? Any
> > suggestions?
> > Thank you,
>
> As far as I know, there isn't a way, because the browser will not send any
> data for an
> input field that is empty in the <form>.
>
> If you want to do that, then you would need some javascript inside the form,
> which fills
> the empty fields with some "dummy" sequence (like "--empty--"), before
> posting the form.
> Then your module/script would need to catch such fields, and consider them as
> empty.
Interesting. I suppose one could use the GET method to verify
whether $request->param() shoots blanks or undefs.
Filling in fields seems like a lot of work though, and using
JavaScript to fill in those fields with dummy data won't be
compatible with anything. A better approach would be to just include
a hidden input element with the same name at some point after the
user's input field:
<input type=hidden name=key2 value=--empty-->
But, I'd rather use this approach instead, if possible:
<input type=hidden name=key2 value="">
The beauty of this solution is that calling $request->param() in
scalar context returns the first value, but if the POST method really
isn't passing along blanks then the hidden input element's value will
be in first place instead.
However, I strongly suspect that this really is not the right
solution.
Randolf Richardson - [email protected]
Inter-Corporate Computer & Network Services, Inc.
Beautiful British Columbia, Canada
http://www.inter-corporate.com/