> -----Original Message-----
> From: Alin Simionoiu [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, September 30, 2001 7:04 PM
> To: Thomas Eibner
> Cc: Issac Goldstand; [EMAIL PROTECTED]
> Subject: Re: Keeping POST information between request phases
> 
> 
> I tried instance, but is not working is you want to access let's say,
> POST data in a authentication handler, doing same data validation or
> whatever you want to do, and also access the same POST data 
> at response
> phase.

there must be a problem with your setup then - this is _exactly_ why
instance() was created.  It came out of discussions about
Apache::RequestNotes, which solves this exact issue.  Matt and Jim decided
that the functionality of Apache::RequestNotes probably belonged in
Apache::Request proper, hence instance().

> 
> And this is because, as it is explained in guide, POST data are
> retrieved directly from the socket.So once you read that, is gone.
> 
> The only way to keep this around that I know about is to internally
> transform POST in a GET.

no.  Apache::RequestNotes and instance() are far better solutions.  with
those you only pass around a reference to the POST data, which is cleaner.
furthermore, Apache::Request only parses POST once you call param(), not
when you call instance() or new(), which is an extra savings.

> 
> For sure this is not the best solution, specially if you have 
> large POST
> body, because you can exceed GET maximum length.

that's why there is Apache::Request :)

HTH

--Geoff

> 
> 
> 
> On Mon, 2001-10-01 at 10:35, Thomas Eibner wrote:
> > On Sun, Sep 30, 2001 at 03:23:51PM -0700, Alin Simionoiu wrote:
> > > Apache::Request->instance($r) will not work for POST reqests.
> > > At list will not do what you want.
> > 
> > Apache::Request->instance works very well with POST requests.
> > 
> > >From the documentation:
> > 
> >   instance
> > 
> >   The instance() class method allows Apache::Request to
> >   be a singleton.  This means that whenever you call
> >   Apache::Request->instance() within a single request
> >   you always get the same Apache::Request object back.
> >   This solves the problem with creating the
> >   Apache::Request object twice within the same request -
> >   the symptoms being that the second Apache::Request
> >   object will not contain the form parameters because
> >   they have already been read and parsed.
> > 
> >   my $apr = Apache::Request->instance($r, DISABLE_UPLOADS => 1);
> > 
> >   Note that "instance()" call will take the same parame-
> >   ters as the above call to "new()", however the parame-
> >   ters will only have an effect the first time
> >   "instance()" is called within a single request. Extra
> >   parameters will be ignored on subsequent calls to
> >   "instance()" within the same request.
> > 
> > > Read this for more information:
> > > 
> > > 
http://perl.apache.org/guide/snippets.html#Reusing_Data_from_POST_request
> 
> Above instance method was made to avoid having to do workarounds like
> that in the guide.
> 
> -- 
>   Thomas Eibner <http://thomas.eibner.dk/> DnsZone <http://dnszone.org/>
>   mod_pointer <http://stderr.net/mod_pointer> 
> 

Reply via email to