On Tue, 28 Oct 2003, Rasmus Lerdorf wrote:

> On Wed, 29 Oct 2003, Christian Schneider wrote:
>
> > Gareth Ardron wrote:
> > > $var = "foo=1&bar=2";
> >
> > To clarify:
> > You should use $var = "foo=1&bar=2"; and then $var for header() but
> > htmlspecialchar($var) for your href:
> > - HTTP-Headers must not be html-encoded.
> > - HTML-Attributes on the other hand have to be html-encoded.
> >
> > Even though most browsers work with hrefs without html-encoding and some
> > browsers might understand & in HTTP-Headers this is not conforming
> > to the standards.
>
> Actually, & is the way you need to write it if you are going to be
> perfectly standards-compliant.

    That is correct for URLs in HTML.  It is incorrect for HTTP headers
    (there is no entity decoding involved).

> It's just that nobody does this.

    Really?  My applications supply their own php.ini and always
    contain

        arg_separator.output = "&"

    which is also listed in php.ini-dist.

> You can
> make PHP understand this by setting the separator in your php.ini file to
> &

    Nope, input separators are always one character wide.

    - Sascha

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to