in reply to Re: Re: Re: Clean URLs and CGI.pm
in thread Clean URLs and CGI.pm

Just set some if/then's to decide which is which,

Which would be the code I posted originally. Please look at it, I _AM_ using param. I was just saying I can't assume I'm in only one mode.

I was really asking if anyone else had done this (I'm not so original as to be the first to do this), and if I was leaving myself open to any security holes and the like, or missing any features of CGI or common idioms to do this.

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Clean URLs and CGI.pm
by thpfft (Chaplain) on Jun 12, 2001 at 00:25 UTC

    Trimbach is politely trying to point out that you are missing both a common idiom and a feature of CGI.pm, namely that a query string without ampersands is treated as an ISINDEX search and the values can be retrieved with the keywords() method, though from my reading it's a list you'll need to join.

    A small change to your code would make it work. I expect something more elegant could be done with a [0], but not by me :(

    $page->param('field',join('',$page->keywords)) unless $page->param('field');
      Ah, a few things weren't clear. For one, the documentation doesn't mention that keywords() returns false when a non ISINDEX style is used.

      How about:

      $page->param('Field',[$page->keywords()]->[0]) if $page->keywords();