Browser Sensitive Redirect
#
# Browser Sensitive Fragment
# Ken Wronkiewicz
#
# Version 1.00 - Inital release - Ken Wronkiewicz
# Version 1.10 - Updated version with more browsers - Ken
# Wronkiewicz
# Version 1.20 - Updated version with more browsers and properties - Ken Wronkiewicz
#
# Docs on http://www.wirewd.com/wh/cgi.html
#
# Explination of variables
# $Graph :
# 0 = Text only
# 1 = Graphics
# 2 = Supports the ALIGN directive
# 3 = Supports the PNG format
# $Ext :
# 0 = HTML 2.0
# 1 = Netscape 2.0 level extensions
# 2 = Netscape 3.0 / MSIE 2.0 level extensions
# 3 = Netscape 4.0 level extensions
# $Tables :
# 0 = No tables
# 1 = HTML 3.0 tables
# 2 = Netscape 1.1 tables with size directives
# 3 = Netscape 3.0 / MSIE 2.0 tables with BGCOLOR
# $Js :
# 0 = No Javascript
# 1 = JavaScript 1.0 / JScript 1.0
# 2 = JavaScript 1.1
# 3 = JavaScript 1.2
# $Java :
# 0 = No Java
# 1 = JDK 1.0
# 2 = JDK 1.1
# $Active :
# 0 = No ActiveX
# 1 = ActiveX
# $Frames :
# 0 = No frames
# 1 = Netscape 2.0
# 2 = Netscape 3.0 / MSIE 3.0
# $Style :
# 0 = No style sheets
# 1 = CSS1
# 2 = CSS1 + Absolute Positioning
# 3 = CSS1 + Absolute Positioning + JSSS
# Grab CGI variable
$Agent = $ENV{'HTTP_USER_AGENT'};
# Set Default values
$Graph = 1;
$Ext = 0;
$Tables = 0;
$Js = 0;
$Frames = 0;
$Active = 0;
$Style = 0;
$Java = 0;
#Detect the browser
CHECK: {
if ($Agent =~ /MSIE 2./i) {
$Graph = 2;
$Ext = 2;
$Tables = 3;
last CHECK; }
if ($Agent =~ /MSIE 3./i) {
$Graph = 2;
$Ext = 2;
$Tables = 3;
$Js = 1;
$Frames = 2;
$Active = 1;
$Style = 1;
$Java = 1;
last CHECK; }
if ($Agent =~ /MSIE 4./i {
$Graph = 3;
$Ext = 2;
$Tables = 3;
$Js = 1;
$Frames = 2;
$Active = 1;
$Style = 2;
$Java = 1;
last CHECK; }
if ($Agent =~ /AOL-IWENG 3.0/i) {
$Graph = 2;
$Ext = 2;
$Tables = 2;
$Frames = 1;
last CHECK; }
if ($Agent =~ /Opera/i) {
$Graph = 2;
$Ext = 1;
$Tables = 2;
$Frames = 1;
last CHECK; }
# Add more Internet Explorers and netscape-alikes here
if ($Agent =~ /Mozilla/1.*/i) {
$Graph = 2;
$Ext = 1;
$Tables = 2;
last CHECK; }
if ($Agent =~ /Mozilla/2.*/i) {
$Graph = 2;
$Ext = 1;
$Tables = 2;
$Js = 1;
$Frames = 1;
$Java = 1;
last CHECK; }
if ($Agent =~ /Mozilla/3.*/i) {
$Graph = 2;
$Ext = 2;
$Tables = 3;
$Js = 2;
$Frames = 2;
$Java = 1;
last CHECK; }
if ($Agent =~ /Mozilla/4.*/i) {
$Graph = 3;
$Ext = 3;
$Tables = 2;
$Js = 3;
$Frames = 2;
$Java = 2;
$Style = 3;
last CHECK; }
# Add more Netscape versions here
if ($Agent =~ /Mozilla/i) {
$Graph = 2;
$Ext = 3;
$Tables = 2;
$Js = 3;
$Frames = 2;
$Active = 1;
last CHECK; } #Netscape Catch-all
if ($Agent =~ /NCSA Mosaic/i) {
$Graph = 1;
$Ext = 0;
$Tables = 1;
last CHECK; }
if ($Agent =~ /Lynx/i) {
$Graph = 0;
$Ext = 0;
$Tables = 0;
last CHECK; }
if ($Agent =~ /CERN-LineMode/i) {
$Graph = 0;
$Ext = 0;
$Tables = 0;
last CHECK; }
if ($Agent =~ /W3CLineMode/i) {
$Graph = 0;
$Ext = 0;
$Tables = 0;
last CHECK;}
if ($Agent =~ /Microsoft Internet Explorer/i) {
$Graph = 2;
$Ext = 1;
$Tables = 1;
last CHECK;}
if ($Agent =~ /Cyberdog/i) {
$Graph = 2;
$Ext = 1;
$Tables = 2;
last CHECK;}
if ($Agent =~ /MacWeb/i) {
$Graph = 1;
$Ext = 0;
$Tables = 0;
last CHECK;}
if ($Agent =~ /aolbrowser/i) {
$Graph = 1;
$Ext = 0;
$Tables = 1;
last CHECK; }
if ($Agent =~ /IWENG/i) {
$Graph = 1;
$Ext = 0;
$Tables = 1;
last CHECK; }
# Add new browsers here
}