validating quoted ampersands

M

mouse

I have a reference to a web counter in my page, which according to my
ISP should look like;

<IMG SRC="/cgi-sys/Count.cgi?df=sigma-index.html&st=1000">

However the W3 validator wails about the ampersand '&' before the st.
It insists the line must look like;

<img src="/cgi-sys/Count.cgi?df=c-compiler-com-root&amp;ft=0&amp;dd=D"
title="Counter" alt="Counter">

in other words we must use &amp; instead of just &

Is this how valid HTML must specify an ampersand? Both versions seem
valid in my web browser. The &amp; version looks a bit strange and I
am surprised that W3 validator regards it as necessary.
 
D

dfloss

I have a reference to a web counter in my page, which according to my
ISP should look like;

<IMG SRC="/cgi-sys/Count.cgi?df=sigma-index.html&st=1000">

However the W3 validator wails about the ampersand '&' before the st.
It insists the line must look like;

<img src="/cgi-sys/Count.cgi?df=c-compiler-com-root&amp;ft=0&amp;dd=D"
title="Counter" alt="Counter">

in other words we must use &amp; instead of just &

Is this how valid HTML must specify an ampersand? Both versions seem
valid in my web browser. The &amp; version looks a bit strange and I
am surprised that W3 validator regards it as necessary.

& is a very dubious html delimiter. &amp; is how it should be done
 
D

David Dorward

I have a reference to a web counter in my page, which according to my
ISP should look like;

<IMG SRC="/cgi-sys/Count.cgi?df=sigma-index.html&st=1000">

Your ISP is wrong.
However the W3 validator wails about the ampersand '&' before the st.
It insists the line must look like;

<img src="/cgi-sys/Count.cgi?df=c-compiler-com-root&amp;ft=0&amp;dd=D"
title="Counter" alt="Counter">

Only if you are changing the data you want to pass to Count.cgi.
in other words we must use &amp; instead of just &
Yes

Is this how valid HTML must specify an ampersand?
Yes

Both versions seem valid in my web browser.

No, your browser is capable of some degree of error correction.
The &amp; version looks a bit strange and I am surprised that W3 validator
regards it as necessary.

What if, for example, the piece of data was called "copy" instead of "st"?
The spec has to have come way of distingushing between an ampersand
followed by the word "copy" and the entity meaning "The copyright symbol".

(Follow-ups set)
 
R

richard

I have a reference to a web counter in my page, which according to my
ISP should look like;

<IMG SRC="/cgi-sys/Count.cgi?df=sigma-index.html&st=1000">

However the W3 validator wails about the ampersand '&' before the st.
It insists the line must look like;

<img src="/cgi-sys/Count.cgi?df=c-compiler-com-root&amp;ft=0&amp;dd=D"
title="Counter" alt="Counter">

in other words we must use &amp; instead of just &

Is this how valid HTML must specify an ampersand? Both versions seem
valid in my web browser. The &amp; version looks a bit strange and I
am surprised that W3 validator regards it as necessary.

Web counter?
I had one with a free service once. Got the same results from the validator.
Included the "amp" and all was happy.
It really is much nicer to have a host that has all that stuff built in.
 
C

cwdjrxyz

I have a reference to a web counter in my page, which according to my
ISP should look like;

<IMG SRC="/cgi-sys/Count.cgi?df=sigma-index.html&st=1000">

However the W3 validator wails about the ampersand '&' before the st.
It insists the line must look like;

<img src="/cgi-sys/Count.cgi?df=c-compiler-com-root&amp;ft=0&amp;dd=D"
title="Counter" alt="Counter">

in other words we must use &amp; instead of just &

Is this how valid HTML must specify an ampersand? Both versions seem
valid in my web browser. The &amp; version looks a bit strange and I
am surprised that W3 validator regards it as necessary.

If you click the "Help and FAQ" tab at the W3C validator, you get a
reference to a page that states:

_______________________________________________________________________


Another common error occurs when including a URL which contains an
ampersand ("&"):

<!-- This is invalid! --> <a
href="foo.cgi?chapter=1&section=2&copy=3&lang=en">...</a>

This example generates an error for "unknown entity section" because
the "&" is assumed to begin an entity reference. Browsers often recover
safely from this kind of error, but real problems do occur in some
cases. In this example, many browsers correctly convert &copy=3 to
©=3, which may cause the link to fail. Since &lang; is the HTML entity
for the left-pointing angle bracket, some browsers also convert
&lang=en to <=en. And one old browser even finds the entity &sect;,
converting &section=2 to §ion=2.

To avoid problems with both validators and browsers, always use &amp;
in place of & when writing URLs in HTML:

<a
href="foo.cgi?chapter=1&amp;section=2&amp;copy=3&amp;lang=en">...</a>

Note that replacing & with &amp; is only done when writing the URL in
HTML, where "&" is a special character (along with "<" and ">"). When
writing the same URL in a plain text email message or in the location
bar of your browser, you would use "&" and not "&amp;". With HTML, the
browser translates "&amp;" to "&" so the Web server would only see "&"
and not "&amp;" in the query string of the request.

________________________________________________________________________

The url of the above is:
http://www.htmlhelp.com/tools/validator/problems.html#amp .

If you do not agree with the above, go to the W3C validator and click
the "feedback" tab. I am only the messenger :) . There likely is
discussion of this in the official W3C specifications for html, but I
do not have time to check this tome at the moment.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,579
Members
45,053
Latest member
BrodieSola

Latest Threads

Top