Re: Cannot retrieve empty keys from request using Apache2::Request.param

"Randolf Richardson" <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Organization Inter-Corporate Computer & Network Services
Message-ID <[email protected]>
> 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/
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.