Since browscap.ini changes every 5 minutes, as soon as a new browser or version/update, it is potentially useless, the use of server side browser detection is of limited use.
Sometimes using server side detection is fine but you need to use Request.ServerVariables to get it right too, eg., recently I needed to make a page that detected our own customised version of IE or Netscape,and since this is pretty well fixed
Detecting the version of the browser at the client, using Javascript, and passing this back to the server is IMO the preferable way for many other places. even here, I find a lot of people come unstuck, using built in objects in Javascript can also be less than reliable, instead I prefer to use detection based upon capabilities. eg.,
if (document.layers) isNS = true;
if (document.all) isIE = true;
(give or take) this tests based on what the browser can or cannot do, and likely to be longer lasting, living through inevitable browser changes.
To get this back to the server, all you need do is update a hidden form field, or add it to the querystring. eg.,
is_ns = (document.layers)? true:false
is_ie = (document.all)? true:false
if (!is_ie && is_ns) {
for (i=0; i < navigator.plugins.length; i++) {
if (navigator.plugins[i].name == "NNPE Account Setup Plugin")
theForm.show_auto_configure.value = "true";
}
}
This does a little more, detecting some plug ins i needed to find as well. the HTML side of it is simply a hidden field.
<input type="HIDDEN" value="false" name="show_auto_configure">
Then back on the server you simply do a request.form.
cheers,
Robert Dyball