Re: Help with request data
[prev]
[thread]
[next]
[Date index for 2005/04/22]
On 22 Apr 2005 at 10:30, Geoffrey Young wrote:
> > MP2 RC5
> >
> > I am moving from a MP1 to MP2 server and am having trouble. I have
> > opted to re-write the scripts I had so I could add some more
> > functions.
> >
> > I am struggling tring to find methods to access my form data and
> > other headers. I am currently using
> >
> > my $form_data = $r->the_request()
> >
> > and split the line from there to access the form values.
> >
> > For other headers I am using
> > my $string = $r->as_string;
> > (my $user-agent) = ($string =~ /User-Agent:(.*)\sAccept/);
> >
>
> ugh! :)
>
> > I can get to where I want but I have the feeling I am taking the
> > long way to do it. The cook book I have on mod_perl doesn't cover
> > MP2.
>
> in this case everything is the same
>
> use APR::Table;
> use Apache2::RequestRec;
I got stung on this on my first attempt. I had tried
$agent->$r-headers_in->{'User-Agent'}
without
use APR::Table;
As I said, I'm not very OO literate but the error referred to
APR::table and I hadn't loaded it. I'll load this as standard from
now on.
> my $ua = $r->headers_in->get('User-Agent');
This is more like what I expected :-)
> should do the trick. $r, headers_in(), and get() are all the same in
> mp1. only the class in which they live is different.
>
> see the manpage for Apache2::porting for some help here - if you have
> any mp1 documentation and make the right calls, Apache2::porting will
> help tell you which classes you need to load to make it work.
Will add this though I do want to want re-write so I am hoping to get
more familiar with a strict MP2 approach.
> > Is there no direct replacement for $r->param('field_name') or
> > $headers_in{'User-Agent'}? If not should I just continue as I am or
> > are there better methods for getting at the request?
>
> well, for $r->param you need libapreq2. but $r->content or $r->args
> should be enough if you don't want to install libapreq2.
Sounds useful
> >
> > Apologies in advance if I have missed this in the docs but I can't
> > find anything obvious in the Request::* documentation. I also am a
> > bit OO illiterate.
>
> for the most part the API stemming from $r is exactly the same between
> mp1 and mp2. there are a few exceptions, of course, but for the stuff
> you'll be using 90% of the time any source of documentation should be
> sufficient to get you started.
>
> see also ModPerl::MethodLookup, especially the command-line interface
> (which will help you translate a documented method into the required
> class) and preload_all_modules(), which will help get things running
> as you learn.
>
> HTH
It certainly does thank you v. much.
Dp.
> --Geoff
>