How can I specify colors?
If you want others to view your web page with specific
colors, the most appropriate way is to suggest the
colors with a style sheet. Cascading Style Sheets use
the color and background-color properties to specify
text and background colors. To avoid conflicts between
the reader's default colors and those suggested by the
author, these two properties should always be used
With HTML, you can suggest colors with the TEXT, LINK,
VLINK (visited link), ALINK (active link), and BGCOLOR
(background color) attributes of the BODY element.
Note that these attributes are deprecated by HTML 4.
Also, if one of these attributes is used, then all of
them should be used to ensure that the reader's default
colors do not interfere with those suggested by the
author. Here is an example:
<body bgcolor="#ffffff" text="#000000" link="#0000ff"
Authors should not rely on the specified colors since
browsers allow their users to override
How do I get form data emailed to me?
The only reliable mechanism for processing form
submissions is with a server-side (e.g., CGI) program.
To send form data to yourself via email, you should use
a server-side program that processes the form submission
and sends the data to your email address.
Some web service providers make standard form-to-email
programs available to their customers. Check with your
service provider for details.
If you can install CGI programs on your own server, see
the answer to the previous question for a list of useful
If you can't run CGI programs on your own server, you
can use a remotely hosted form-to-email services. Note
that the provider of a remotely hosted service will have
access to any data submitted via the service.
Forms that use action="mailto:..." are unreliable.
According to the HTML specifications, form behavior is
explicitly undefined for mailto URIs (or anything else
other than HTTP URIs). They may work one way with one
software configuration, may work other ways in other
software configurations, and may fail completely in
other software configurations.
Can I prevent a form from being submitted again?
No. The server-side (e.g., CGI) program that processes
the form submission must handle duplicate submissions
You could generate the form with a server-side (e.g.,
CGI) program that adds a hidden field with a unique
session ID. Then the server-side program that processes
the form submission can check the session ID against a
list of previously used session IDs. If the session ID
has already been used, then an appropriate action can be
taken (e.g., reject the submission, or update the
previously submitted data).
Ultimately, your server-side program must be smart
enough to handle resubmitted data. But you can avoid
getting resubmitted data by not expiring the
confirmation page from form submissions. Since you want
to expire pages quickly when they have transient data,
you might want to avoid putting transient data on the
confirmation page. You could provide a link to a
database query that returns transient data though.
How can I allow file uploads to my web site?
These things are necessary for Web-based uploads:
* An HTTP server that accepts uploads.
* Access to the /cgi-bin/ to put the receiving script.
Prewritten CGI file-upload scripts are available.
* A form implemented something like this:
<form method="post" enctype="multipart/form-data"
File to upload: <input type=file name=upfile><br>
Notes about the file: <input type=text name=note><br>
<input type=submit value=Press> to upload the file!
Not all browsers support form-based file upload, so try
to give alternatives where possible.
The Perl CGI.pm module supports file upload. The most
recent versions of the cgi-lib.pl library also support
file upload. Also, if you need to do file upload in
conjunction with form-to-email, the Perl package
MIME::Lite handles email attachments.
How can I require that fields be filled in, or filled in
Have the server-side (e.g., CGI) program that processes
the form submission send an error message if the field
is not filled in properly. Ideally, this error message
should include a copy of the original form with the
original (incomplete or incorrect) data filled in as the
default values for the form fields. The Perl CGI.pm
module provides helpful mechanisms for returning
partially completed forms to the user.
support is enabled, then the ONSUBMIT event handler can
inform the user of the problem and return false to
prevent the form from being submitted.
Note that the server-side program should not rely upon
the checking done by the client-side script.
How do I change the title of a framed document?
The title displayed is the title of the frameset
document rather than the titles of any of the pages
within frames. To change the title displayed, link to a
new frameset document using TARGET="_top" (replacing the
How do I link an image to something?
Just use the image as the link content, like this:
<a href=...><img src=... alt=...></a>
Should I end my URLs with a slash?
The URL structure defines a hierarchy similar to a
filesystem's hierarchy of subdirectories or folders. The
segments of a URL are separated by slash characters
("/"). When navigating the URL hierarchy, the final
segment of the URL (i.e., everything after the final
slash) is similar to a file in a filesystem. The other
segments of the URL are similar to the subdirectories
and folders in a filesystem.
When resolving relative URLs (see the answer to the
previous question), the browser's first step is to strip
everything after the last slash in the URL of the
current document. If the current document's URL ends
with a slash, then the final segment (the "file") of the
URL is null. If you remove the final slash, then the
final segment of the URL is no longer null; it is
whatever follows the final remaining slash in the URL.
Removing the slash changes the URL; the modified URL
refers to a different document and relative URLs will
For example, the final segment of the URL http://www.mysite.com/faq/html/
is empty; there is nothing after the final slash. In
this document, the relative URL all.html resolves to
http://www.mysite.com/faq/html/all.html (an existing
document). If the final slash is omitted, then the final
segment of the modified URL http://www.mysite.com/faq/html
is "html". In this (nonexistent) document, the relative
URL all.html would resolve to http://www.mysite.com/faq/all.html
(another nonexistent document).
When they receive a request that is missing its final
slash, web servers cannot ignore the missing slash and
just send the document anyway. Doing so would break any
relative URLs in the document. Normally, servers are
configured to send a redirection message when they
receive such a request. In response to the redirection
message, the browser requests the correct URL, and then
the server sends the requested document. (By the way,
the browser does not and cannot correct the URL on its
own; only the server can determine whether the URL is
missing its final slash.)
This error-correction process means that URLs without
their final slash will still work. However, this process
wastes time and network resources. If you include the
final slash when it is appropriate, then browsers won't
need to send a second request to the server.
The exception is when you refer to a URL with just a
hostname (e.g., http://www.mysite.com). In this case,
the browser will assume that you want the main index
("/") from the server, and you do not have to include
the final slash. However, many regard it as good style
to include it anyway.
Page Numbers :