> > > Now, a parameter that looks like "foo=" appears the same as if
> > > foo wasn't defined, but "foo=" is very different than if foo
> > > weren't passed as a parameter at all.
> > 
> > Is that important?  If so, conceptually or pragmatically?
> 
> Conceptually, so far.  I haven't come across any good examples
> of pragmatic reasons why it's important.

You see where I'm going with this train of thought, I'm sure.


> I realized that the suggestion I made is probably fine:
> 
>   query string:  foo=bar&quux=
> 
> cgi["foo"].to_a     # => ["bar"]
> cgi["quux"].to_a    # => [""]
> cgi["abc"].to_a     # => []
> 
> You can test for a parameter that wasn't in the query string
> by asking cgi["abc"].to_a.size == 0 or cgi["abc"].to_a == [].

That seems workable.

On an unrelated note (or perhaps not), given:

query string: foo=bar&foo=baz&foo=blat

I find the suggestion of:

cgi["foo"] == "bar"   .... unclean, somehow.  I'm not up on the
specs, but given a multi-select, is order in the query string
defined?  Is it even guaranteed to be the same each time?


> (Hi, Michael.  Small world ... ;-) )

Indeed.  I've been lurking here quite awhile. =)



=====
--
Yahoo IM: michael_s_campbell

__________________________________________________
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com