50         $HTTP_USER_AGENT = 
$_SERVER[
'HTTP_USER_AGENT'] ?? 
'undefined';
    54         if (preg_match(
'/MSIE (\d.\d{1,2})/', $HTTP_USER_AGENT, $log_version)) {
    55             $this->agent_version = $log_version[1];
    56             $this->agent_name = 
'IE';
    57         } elseif (preg_match(
'/Opera (\d.\d{1,2})/', $HTTP_USER_AGENT, $log_version) ||
    58             preg_match(
'/Opera\/(\d.\d{1,2})/', $HTTP_USER_AGENT, $log_version)) {
    59             $this->agent_version = $log_version[1];
    60             $this->agent_name = 
'OPERA';
    61         } elseif (preg_match(
'/Safari ([0-9\/.]*)/', $HTTP_USER_AGENT, $log_version) ||
    62             preg_match(
'/Safari\/([0-9\/.]*)/', $HTTP_USER_AGENT, $log_version)) {
    63             $this->agent_version = $log_version[1];
    64             $this->agent_name = 
'Safari';
    65         } elseif (preg_match(
'/Firefox ([0-9\/.]*)/', $HTTP_USER_AGENT, $log_version) ||
    66             preg_match(
'/Firefox\/([0-9\/.]*)/', $HTTP_USER_AGENT, $log_version)) {
    67             $this->agent_version = $log_version[1];
    68             $this->agent_name = 
'Firefox';
    69         } elseif (preg_match(
'/iCab (\d.[0-9a-zA-Z]{1,4})/', $HTTP_USER_AGENT, $log_version) ||
    70             preg_match(
'/iCab\/(\d.[0-9a-zA-Z]{1,4})/', $HTTP_USER_AGENT, $log_version)) {
    71             $this->agent_version = $log_version[1];
    72             $this->agent_name = 
'iCab';
    73         } elseif (preg_match(
'/Mozilla (\d.[0-9a-zA-Z]{1,4})/', $HTTP_USER_AGENT, $log_version) ||
    74             preg_match(
'/Mozilla\/(\d.[0-9a-zA-Z]{1,4})/', $HTTP_USER_AGENT, $log_version)) {
    75             $this->agent_version = $log_version[1];
    76             $this->agent_name = preg_match(
'/Gecko/', $HTTP_USER_AGENT, $log_version) ? 
'Mozilla' : 
'Netscape';
    77         } elseif (preg_match(
'/Konqueror\/(\d.\d.\d{1,2})/', $HTTP_USER_AGENT, $log_version) ||
    78             preg_match(
'/Konqueror\/(\d.\d{1,2})/', $HTTP_USER_AGENT, $log_version)) {
    79             $this->agent_version = $log_version[1];
    80             $this->agent_name = 
'Konqueror';
    82             $this->agent_version = 0;
    83             $this->agent_name = 
'OTHER';
    89         if (strstr($HTTP_USER_AGENT, 
'Win')) {
    90             $this->agent_platform = 
'Win';
    91         } elseif (strstr($HTTP_USER_AGENT, 
'Mac')) {
    92             $this->agent_platform = 
'Mac';
    93         } elseif (strstr($HTTP_USER_AGENT, 
'Linux')) {
    94             $this->agent_platform = 
'Linux';
    95         } elseif (strstr($HTTP_USER_AGENT, 
'Unix')) {
    96             $this->agent_platform = 
'Unix';
    97         } elseif (strstr($HTTP_USER_AGENT, 
'Beos')) {
    98             $this->agent_platform = 
'Beos';
   100             $this->agent_platform = 
'Other';
   104         $this->user_agent = 
$_SERVER[
'HTTP_USER_AGENT'] ?? 
'undefined';
   105         $this->accept = 
$_SERVER[
'HTTP_ACCEPT'] ?? 
'undefined';
   107         if (isset(
$_SERVER[
'HTTP_X_WAP_PROFILE']) || isset(
$_SERVER[
'HTTP_PROFILE'])) {
   108             $this->is_mobile = 
true;
   109         } elseif (strpos($this->accept, 
'text/vnd.wap.wml') > 0 || strpos(
   111             'application/vnd.wap.xhtml+xml'   113             $this->is_mobile = 
true;
   115             foreach (array_keys($this->devices) as $device) {
   117                     $this->is_mobile = 
true;