The script we just wrote prints to the screen. In real life we want
it to print to the visitor’s screen via her browser.
Apache gets it to her, but to get the proper effect, we need to send
our data wrapped in HTML codes. HTML is not difficult, but you will
need a thorough book on it,[1] because there are a large number
of things you can do, and if you make even the smallest mistake, the
results can be surprising as browsers often ignore badly formed HTML.
All browsers will put up with some harmless common mistakes, like
forgetting to put a closing
</body></html>
at the end of a page.
Strictly speaking, attributes inside HTML tags should be in quotes,
thus:
<A target="MAIN"...> <Font color="red"...>
However, the browsers do not all behave in the same way. MSIE, for
instance, will tolerate the absence of a closing
</form>
or </table>
tags, but Netscape will not. The result is that pages will,
strangely, work for some visitors and not for others. Another trap is
that when you use Apache’s ability to pass extra
data in a link when CGI has been enabled by
ScriptAlias
:
<A HREF="/my_script/data1/data2">
(which results in my_script
being run and
/data1/data2
appearing in the environment variable
PATH_INFO), one browser will tolerate spaces in the data, and the
other one will not. The moral is that you should thoroughly test your
site, using at least the two main browsers (MSIE and Netscape) and
possibly some others. You can also use an HTML syntax checker like
WebLint, which has many gateways, e.g., http://www.ews.uiuc.edu/cgi-bin/weblint, or
Dr. HTML at http://www2.imagiware.com/RxHTML/.
[1] Chuck Musciano and Bill Kennedy’s HTML &XHTML: The Definitive Guide (O’Reilly, 2002) is a thorough treatment. You might also find that a lightweight handbook like Chris Russell’s HTML in Easy Steps (Computer Step, 1998) is also useful.