1. Problem Description:[...]
I have trouble getting iniformation from CGI-forms sent by HTTP/POST. To reproduce the problem; use the testpackage I've written and included in section 5 of this mail. I've also included what I've found relevant from my mod_perl/Apache-setup in section 4.
My observation is that there is no problem using GET to transfer form-data, but no data at all is avaliable through $q->param when using POST.
I have tested this with different versions of mod_perl (1.99_09, snapshot from cvs this sunday and finally 1.99_10 released yesterday) and CGI.pm (2.93, 3.00) - as for now I run mod_perl 1.99_10 and CGI.pm 3.0.
If there is something in my setup that causes this, please point me in the right direction or maybe towards the right documentation. - It is not totally neccessary for me to use CGI.pm, the most important is to receive the data ;)
----BEGIN sample from commonapache2.conf ----- <IfModule mod_perl.c> PerlOptions +GlobalRequest PerlModule CGItest <Location /CGItest> SetHandler modperl PerlResponseHandler CGItest </Location> </IfModule> ----END sample from commonapache2.conf -----
Thanks for a very good bug report, Christian.
The problem is very simple. with 'Sethandler modperl' STDIN is not tied/perlio'ed so CGI.pm sees no POSTed data.
http://perl.apache.org/docs/2.0/user/config/config.html#C_SetHandler_
The solution is to use 'SetHandler perl-script'. I guess we may need to provide a new PerlOptions to enable tied STDIN/STDOUT on demand.
If you have a bit of spare time, another solution is to fix CGI.pm to use $r->read(STDIN...) instead of read(STDIN...) if $r is available. Should be a trivial patch. And then submit it to Lincoln (and may be CC the modperl list so we can approve it for Lincoln to have a better incentive to include your patch ;)
besides, since you use 'CGI->new($r)', i.e., passing $r to CGI.pm you don't need PerlOptions +GlobalRequest. Though it's unrelated to your problem.
Once Apache::Request 2.0 will be finished (you can already give it a try as it should work, see: http://httpd.apache.org/apreq/) you won't need any of the above and it'll just work with 'Sethandler modperl'.
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]