From: Terry N. <tn...@po...> - 2003-03-13 17:27:18
|
My browser does the right thing, too, but only because it knows how to map the request into its "proper" form: http://jedit.org/index.php?page=screenshot&image=10 The "&" is what's called an HTML entity. It's what you use in your HTML code if you want a literal "&" to be displayed on the page. The "&" above is part of the HTTP protocol, as you stated, and its purpose is to separate parameters. That's what it does in the request above -- it separates the "screenshot" and "image" parameters. The fact that using "&" seems to work in most situations is misleading, because it actually should not work at all. I believe the only reason it works anywhere is because browsers and servers have logic in them to map "&" to "&". Just my $0.02. Keith Gaddis wrote: > using an ampersand is part of the http protocol as a parameter > separator. its not specific to php, all server-side processing engines > use it. > > Pete Prodoehl wrote: > >> >> Ok... so from further testing, this pans out to be true. >> >> I can use this in my html: >> >> http://jedit.org/index.php?page=screenshot&image=10 >> >> and it works fine when I view the page in my browser and click on the >> link, since the browser does the right thing. >> >> With many other sites/apps I can paste a url with &'s into the >> location field and it works fine. In fact this might be the first site >> it didn't work on... (Just tested with ht://Dig, works as I expected...) >> >> Is the ; as a parameter separator a PHP thing? >> >> It still seems weird to me, but then again, many things do ;) >> >> >> Pete >> >> mike dillon wrote: >> >>> begin Pete Prodoehl quotation: >>> >>>> but it doesn't validate because of the & so I need to use: >>>> >>>> http://jedit.org/index.php?page=screenshot&image=10 >>>> >>>> which seems to work on every other server in the world... except >>>> jedit.org >>>> >>>> Something seems not right... Is PHP at fault? >>> >>> >>> >>> >>> The browser needs to unencode any entities in the URL before >>> transmission. If that doesn't happen, the server can't property parse >>> the URL (since "&" looks exactly like adding a valueless param named >>> "amp" because both "&" and ";" are URL parameter separators). >>> >>> -md >>> >>> >>> ------------------------------------------------------- >>> This SF.net email is sponsored by:Crypto Challenge is now open! Get >>> cracking and register here for some mind boggling fun and the chance >>> of winning an Apple iPod: >>> http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en >> >> >> >> >> >> ------------------------------------------------------- >> This SF.net email is sponsored by:Crypto Challenge is now open! Get >> cracking and register here for some mind boggling fun and the chance >> of winning an Apple iPod: >> http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en > > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by:Crypto Challenge is now open! Get > cracking and register here for some mind boggling fun and the chance of > winning an Apple iPod: > http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en -- Terry Nightingale <tn...@po...> Web Developer, Philosopher, Geek "In theory, there is no difference between theory and practice. But, in practice, there is." -- Jan L.A. van de Snepscheut |