On Fri, 16 Jun 2000, Jim Winstead wrote:

> On Jun 15, Tom Mornini wrote:
> > I have recently noticed two issues with Apache::Request and thought I'd
> > run them by the list before I began hacking and diffing for Doug.
> > 
> > 1) $ar->param without parameters has different behaviour than CGI.pm
> > 
> >   Apache::Request returns a reference, CGI.pm returns a list of
> >   parameters.
> 
> Are you sure about this? I do this all over the place and it
> works as documented for me.

As documented? As I pointed out before, the documentation is not clear. It
never shows $ar->param being called with no arguments in scalar context...

Am I sure? Try this code in a Registry script for yourself.

use strict;

use Apache;
use Apache::Request;

my $r  = Apache->request;
my $ar = Apache::Request->new($r);

$ar->send_http_header;

print scalar($ar->param);

The result? Apache::Table=HASH(0x990ae38) (!)

This makes this use:

  if ( $ar->param ) {
    # Process Form Input
  } else {
    # First time through!
  }

  # display page

impossible. This works fine with CGI.pm

> > 2) [Thu Jun 15 21:09:49 2000] [error] [client 10.50.2.57] [libapreq]
> >    unknown content-type: `application/x-www-form-urlencoded;
> >    charset=utf-8'
> 
> This could probably be fixed by changing the strEQ(ct, DEFAULT_ENCTYPE)
> to ststr(ct, DEFAULT_ENCTYPE) in c/apache_request.c on line 204. (The
> test for multipart/form-data does this. Don't know why this one is more
> strict.)

This is great! I'll give it a try.

-- 
-- Tom Mornini
-- InfoMania Printing and Prepress

Reply via email to