I have a script below that uses $_SERVER['HTTP_USER_AGENT'] because get_browser() is not active on the server and the administrator of said server (hotgator) will not activate it for me.
That being said, I am running IE 8 in Windows XP (VM machine testbed) when I run IE 8 in compatability mode IE shows up in the script below as IE 7, instead of IE 8. Why?
<?php
//This is a script that will identify the OS and browser you are using.
// This also has a fix in where Chrome shows up as Chrome,
// and not show up as Safari by accident.
//Booleans to set OS and Browser to False.
$os = false;
$browser = false;
//Booleans for Web Browser & OS Functions.
$info = $_SERVER['HTTP_USER_AGENT'];
$xp = 'Windows NT 5.1';
$vista = 'Windows NT 6.0';
$win7 = 'Windows NT 6.1';
$ubuntu = 'Ubuntu';
$ie106 = 'ie106';
$ie10 = 'ie10';
$ie9 = 'ie9';
$ie8 = 'MSIE 8.0;';
$ie7b = 'MSIE 7.0b;';
$ie7 = 'MSIE 7.0;';
$chrome = '/Chrome/';
$safari = '/Safari/';
$firefox = '/Firefox/';
//Operating Systems
if (stristr($info, "Windows NT 5.1")) {echo 'You are using a Windows XP Operating System ';}
if (stristr($info, "Windows NT 6.0")) {echo 'You are using a Windows Vista Operating System ';}
if (stristr($info, "Windows NT 6.1")) {echo 'You are using a Windows 7 Operating System ';}
if (stristr($info, "Ubuntu")) {echo 'You are using an Ubuntu Operating System ';}
if (stristr($info, "Mac OS")) {echo 'You are using a Macintosh Operating System ';}
//Web Browsers
if (stristr($info, "Chrome") !== FALSE) {stristr($info,"Safari");
$chrome = 'Chrome';
echo 'with a Chrome Web Browser ';}
elseif (stristr($info, "Safari")) {echo 'with a Safari Web Browser ';}
if (stristr($info, "Firefox")) {echo 'with a Firefox Web Browser ';}
if (stristr($info, "MSIE 7.0;")) {echo 'with a Internet Explorer 7.0 Web Browser ';}
if (stristr($info, "MSIE 7.0b;")) {echo 'with a Internet Explorer 7.0b Web Browser ';}
if (stristr($info, "MSIE 8.0;")) {echo 'with a Internet Explorer 8.0 Web Browser ';}
if (stristr($info, "MSIE 9.0;")) {echo 'with a Internet Explorer 7.0 Web Browser ';}
if (stristr($info, "MSIE 10.0;")) {echo 'with a Internet Explorer 7.0 Web Browser ';}
if (stristr($info, "MSIE 10.6;")) {echo 'with a Internet Explorer 7.0 Web Browser ';}
//If OS or Browser not found in list.
if ($ubuntu || $xp || $vista || $win7)
$os = true;
if($firefox || $chrome || $safari || $ie9 || $ie8)
$browser = true;
if(!$browser || !$os){
echo'<strong>';
echo '<br />' . $_SERVER['HTTP_USER_AGENT'] . '<br />Please copy and paste the text above and send it to your web administrator. It will explain everything he/she needs to do.';}
?>
This is because in compatibility mode IE8 drops back to the IE7 rendering to be compatible with sites designed for the older browser specifically. It therefore needs to identify itself to the webserver as such so that sites return the correct content if they provide differing content for different versions of web browser.
Compatibility mode is explained on the MSDN blog.