Browser Sensitive Redirect

Art | Bicycling | Food | Hacks | Making Stuff | Music | Wirehead
Home | Mail
WireWorld > Hacks > Marginal > 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
}

    
Copyright 2007, Ken Wronkiewicz
Version 4.0
Last Updated: 2002-02-15 12:00AM
Posted: 2002-02-15 12:00AM