mp2, STDIN/POST is clobbered by CGI->new($r);

mp2, STDIN/POST is clobbered by CGI->new($r);

am 30.08.2008 00:35:13 von Ashley Pond V

Hello everybody.

I've got an access handler that is checking some arguments before
passing the request off with DECLINED or redirecting back to login/home.

The first version broke PHP forms that used POST by using this idiom
to check for arguments:

my $cgi = CGI->new($r);

CGI, I am guessing, reads STDIN for the POST args, emptying it
(eof'ing it?). So, when an authenticated request is DECLINED and PHP
is next in line, there is nothing to read and the $_POST is empty.

I realized I only needed to check GET args for the session info so
munging $r->args is fine for my situation. Problem solved but now I'm
curious.

How could you read the POST body without clobbering it to hand off to
some PHP, or whatever is next in line? My CGI version in this
environment is 3.15.

Thanks!
-Ashley

Re: mp2, STDIN/POST is clobbered by CGI->new($r);

am 02.09.2008 21:34:57 von Perrin Harkins

On Fri, Aug 29, 2008 at 6:35 PM, Ashley Pond V wrote:
> How could you read the POST body without clobbering it to hand off to some
> PHP, or whatever is next in line?

I don't think you can. Usually people use something like libapreq to
get around this, since it can just keep the parsed data and let you
use it across multiple phases, but that only works when everyone is
calling libapreq for their data.

- Perrin