This sets the stage for the rest of your output, which gets fed via standard output. If you're expecting any user-fed variables from a form, you need a simple CGI parser that determines GET or POST variable input, parses it, and drops the variables into an associative array. Yahoo lists a variety of these. This automates a very tedious process, so we suggest using it exclusively. Since there are so many browsers available on the market, it's difficult to know which standards and extensions are supported by each one.
Some generalizations are possible, though.
Of course, there's no way to know which plug-ins are loaded using client variables, so the most you can assume is the standard feature set by version number. A recent examination of one of our customers' usage statistics showed that among 150,000 unique visits in November 1995, there were 150 different browsers running more than 2,100 different versions. Sites that have employed registration often find substantially reduced participation, since it's a barrier to entry for first-time users who may not want to exert the time and effort to register. But for certain kinds of applications, where you need to know your visitors in order to let them post to discussion groups or access restricted or licensed data, it makes sense to take the hit. Two types of identity can be logged and tracked via environmental variables.