PX : code

Cloaking Variables by Leon Atkinson
Download this code


<?php
    
/*
    ** Cloaking Variables 
    ** Version 2.1
    ** Leon Atkisnon <leon@clearink.com>
    ** with contributions from:
    **    Chris Mospaw <mospaw@polk-county.com>
    **    Benjamin Elijah Griffin <bgriffin@cddb.com>
    **
    ** This bit of code parses HTTP_USER_AGENT and sets the following variables:
    ** Browser_Name
    ** Browser_Version
    ** Browser_Platform
    ** Browser_JavaScriptOK
    ** Browser_CSSOK
    ** Browser_TextOnly
    ** Browser_FileUpload
    **
    ** JavaScriptOK means that the browser understands JavaScript on       
    ** the same level the Navigator 3 does.  Specifically, it can use  
    ** named images.  This allows easier rollovers.  If a browser doesn't
    ** do this (Nav 2 or MSIE 3), then we just assume it can't do any 
    ** JavaScript.  Referencing images by load order is too hard to maintain.                                 
    **
    ** CSSOK is kind of sketchy in that Nav 4 and MSIE work differently,   
    ** but they do seem to have most of the functionality.  MSIE 4 for the 
    ** Mac has buggy CSS support, so we let it do JavaScript, but no CSS.  
    */

    // Get the name the browser calls itself and what version
    
$Browser_Name strtok($HTTP_USER_AGENT"/");
    
$Browser_Version strtok(" ");
    
    
// MSIE lies about its name
    
if(ereg("MSIE"$HTTP_USER_AGENT))
    {
        
$Browser_Name "MSIE";
        
$Browser_Version strtok("MSIE");
        
$Browser_Version strtok(" ");
        
$Browser_Version strtok(";");
    }

    
// Opera isn't completely honest, either ...
    // Modificaton by Chris Mospaw <mospaw@polk-county.com>
    
if(ereg("Opera"$HTTP_USER_AGENT))
    {
        
$Browser_Name "Opera";
        
$Browser_Version strtok("Opera");
        
$Browser_Version strtok("/");
        
$Browser_Version strtok(";");
    }


    
// try to figure out what platform, windows or mac
    
$Browser_Platform "unknown";
    if(
ereg("Windows",$HTTP_USER_AGENT) || 
        
ereg("WinNT",$HTTP_USER_AGENT) ||
        
ereg("Win98",$HTTP_USER_AGENT) ||
        
ereg("Win95",$HTTP_USER_AGENT))
    {
        
$Browser_Platform "Windows";
    }
    
    if(
ereg("Mac"$HTTP_USER_AGENT))
    {
        
$Browser_Platform "Macintosh";
    }

    if(
ereg("X11"$HTTP_USER_AGENT)) 
    { 
        
$Browser_Platform =  "Unix"
    } 

    
//default to no JavaScript or CSS support
    
$Browser_JavaScriptOK FALSE;
    
$Browser_CSSOK FALSE;
    
$Browser_FileUpload FALSE;

    if(
$Browser_Platform == "Windows")
    {
        if(
$Browser_Name == "Mozilla")
        {
            if(
$Browser_Version >= 3.0)
            {
                
$Browser_JavaScriptOK TRUE;
                
$Browser_FileUpload TRUE;
            }        
            if(
$Browser_Version >= 4.0)
            {
                
$Browser_CSSOK TRUE;
            }
        }
        elseif(
$Browser_Name == "MSIE")
        {
            if(
$Browser_Version >= 4.0)
            {
                
$Browser_JavaScriptOK TRUE;
                
$Browser_FileUpload TRUE;
                
$Browser_CSSOK TRUE;
            }        
        }
        elseif(
$Browser_Name == "Opera")
        {
            if(
$Browser_Version >= 3.0)
            {
                
$Browser_JavaScriptOK TRUE;
                
$Browser_FileUpload TRUE;
                
$Browser_CSSOK TRUE;
            }        
        }
    }
    elseif(
$Browser_Platform == "Macintosh")
    {
        if(
$Browser_Name == "Mozilla")
        {
            if(
$Browser_Version >= 3.0)
            {
                
$Browser_JavaScriptOK TRUE;
                
$Browser_FileUpload TRUE;
            }        
            if(
$Browser_Version >= 4.0)
            {
                
$Browser_CSSOK TRUE;
            }
        }
        elseif(
$Browser_Name == "MSIE")
        {
            if(
$Browser_Version >= 4.0)
            {
                
$Browser_JavaScriptOK TRUE;
                
$Browser_CSSOK TRUE;
                
$Browser_FileUpload TRUE;
            }        
        }
    }
    elseif(
$Browser_Platform ==  "Unix"
    { 
        if(
$Browser_Name ==  "Mozilla"
        { 
            if(
$Browser_Version >= 3.0
            { 
                
$Browser_JavaScriptOK TRUE
                
$Browser_FileUpload TRUE
            }         
            if(
$Browser_Version >= 4.0
            { 
                
$Browser_CSSOK TRUE
            } 
        } 
    }

    
?>

<HTML>
<BODY>

Browser_Name: <? echo $Browser_Name; ?><BR>
Browser_Version: <? echo $Browser_Version; ?><BR>
Browser_Platform: <? echo $Browser_Platform; ?><BR>
Browser_JavaScriptOK: <? echo $Browser_JavaScriptOK; ?><BR>
Browser_CSSOK: <? echo $Browser_CSSOK; ?><BR>
Browser_FileUpload : <? echo $Browser_FileUpload; ?><BR>



</BODY>
</HTML>


Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.