09 Display User Browser & Os

Started by Mindless, July 22, 2012, 07:38:15 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Zsolti88

#2
update  function browse php
Code (php) Select

<?php
/**
 *   https://09source.kicks-ass.net:8443/svn/installer09/
 *   Licence Info: GPL
 *   Copyright (C) 2010 U-232 v.2
 *   A bittorrent tracker source based on TBDev.net/tbsource/bytemonsoon.
 *   Project Leaders: Mindless,putyn,kidvision.
 **/
//== Get browser by ruudrp
function getBrowser()
{
    
$u_agent $_SERVER['HTTP_USER_AGENT'];
    
$bname 'Unknown';
    
$platform 'Unknown';
    
$version"";

    
//First get the platform?
   /* if (preg_match('/linux/i', $u_agent)) {
        $platform = 'Linux';
    }
    elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
        $platform = 'Mac';
    }
    elseif (preg_match('/windows|win32/i', $u_agent)) {
        $platform = 'Windows';
    }*/

$platform    =   "Unknown OS Platform";

    
$os_array       =   array(
                            
'/windows nt 6.2/i'     =>  'Windows 8',
                            
'/windows nt 6.1/i'     =>  'Windows 7',
                            
'/windows nt 6.0/i'     =>  'Windows Vista',
                            
'/windows nt 5.2/i'     =>  'Windows Server 2003/XP x64',
                            
'/windows nt 5.1/i'     =>  'Windows XP',
                            
'/windows xp/i'         =>  'Windows XP',
                            
'/windows nt 5.0/i'     =>  'Windows 2000',
                            
'/windows me/i'         =>  'Windows ME',
                            
'/win98/i'              =>  'Windows 98',
                            
'/win95/i'              =>  'Windows 95',
                            
'/win16/i'              =>  'Windows 3.11',
                            
'/macintosh|mac os x/i' =>  'Mac OS X',
                            
'/mac_powerpc/i'        =>  'Mac OS 9',
                            
'/linux/i'              =>  'Linux',
                            
'/ubuntu/i'             =>  'Ubuntu',
                            
'/iphone/i'             =>  'iPhone',
                            
'/ipod/i'               =>  'iPod',
                            
'/ipad/i'               =>  'iPad',
                            
'/android/i'            =>  'Android',
                            
'/blackberry/i'         =>  'BlackBerry',
                            
'/webos/i'              =>  'Mobile'
                        
);

    foreach (
$os_array as $regex => $value) { 

        if (
preg_match($regex$u_agent)) {
            
$platform    =   $value;
        }

    }   

   
    
// Next get the name of the useragent yes seperately and for good reason
    
if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
    {
        
$bname 'Internet Explorer';
        
$ub "MSIE";
    }
    elseif(
preg_match('/Firefox/i',$u_agent))
    {
        
$bname 'Mozilla Firefox';
        
$ub "Firefox";
    }
    elseif(
preg_match('/Chrome/i',$u_agent))
    {
        
$bname 'Google Chrome';
        
$ub "Chrome";
    }
    elseif(
preg_match('/Safari/i',$u_agent))
    {
        
$bname 'Apple Safari';
        
$ub "Safari";
    }
    elseif(
preg_match('/Opera/i',$u_agent))
    {
        
$bname 'Opera';
        
$ub "Opera";
    }
    elseif(
preg_match('/Netscape/i',$u_agent))
    {
        
$bname 'Netscape';
        
$ub "Netscape";
    }
   
    
// finally get the correct version number
    
$known = array('Version'$ub'other');
    
$pattern '#(?<browser>' join('|'$known) .
    
')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
    if (!
preg_match_all($pattern$u_agent$matches)) {
        
// we have no matching number just continue
    
}
   
    
// see how many we have
    
$i count($matches['browser']);
    if (
$i != 1) {
        
//we will have two since we are not using 'other' argument yet
        //see if version is before or after the name
        
if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            
$version$matches['version'][0];
        }
        else {
            
$version$matches['version'][1];
        }
    }
    else {
        
$version$matches['version'][0];
    }
   
    
// check if we have a number
    
if ($version==null || $version=="") {$version="?";}
   
    return array(
        
'userAgent' => $u_agent,
        
'name'      => $bname,
        
'version'   => $version,
        
'platform'  => $platform,
        
'pattern'    => $pattern
    
);
}
?>

Mindless

Credits to me pmsl.

Code (sql) Select
ALTER TABLE users ADD browser text collate utf8_unicode_ci;

add to login.php beside the others :

Code (php) Select
require_once(INCL_DIR.'function_browser.php');

Or

Code (php) Select
require_once('include/function_browser.php');

Right at bottom above header line add

Code (php) Select
//==out
   $ua=getBrowser();
   $browser= "Browser: ".htmlspecialchars($ua['name'])." ".htmlspecialchars($ua['version']).". Os " .htmlspecialchars($ua['platform']).". Agent  ".htmlspecialchars($ua['userAgent']);
   sql_query('UPDATE users SET browser='.sqlesc($browser).' WHERE id='.sqlesc($row['id'])) or sqlerr(__FILE__,__LINE__);


Save and upload function_browser.php to include folder

function_browser.php

Code (php) Select
<?php
//== Get browser
function getBrowser()
{
    
$u_agent $_SERVER['HTTP_USER_AGENT'];
    
$bname 'Unknown';
    
$platform 'Unknown';
    
$version"";

    
//First get the platform?
    
if (preg_match('/linux/i'$u_agent)) {
        
$platform 'Linux';
    }
    elseif (
preg_match('/macintosh|mac os x/i'$u_agent)) {
        
$platform 'Mac';
    }
    elseif (
preg_match('/windows|win32/i'$u_agent)) {
        
$platform 'Windows';
    }
   
    
// Next get the name of the useragent yes seperately and for good reason
    
if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
    {
        
$bname 'Internet Explorer';
        
$ub "MSIE";
    }
    elseif(
preg_match('/Firefox/i',$u_agent))
    {
        
$bname 'Mozilla Firefox';
        
$ub "Firefox";
    }
    elseif(
preg_match('/Chrome/i',$u_agent))
    {
        
$bname 'Google Chrome';
        
$ub "Chrome";
    }
    elseif(
preg_match('/Safari/i',$u_agent))
    {
        
$bname 'Apple Safari';
        
$ub "Safari";
    }
    elseif(
preg_match('/Opera/i',$u_agent))
    {
        
$bname 'Opera';
        
$ub "Opera";
    }
    elseif(
preg_match('/Netscape/i',$u_agent))
    {
        
$bname 'Netscape';
        
$ub "Netscape";
    }
   
    
// finally get the correct version number
    
$known = array('Version'$ub'other');
    
$pattern '#(?<browser>' join('|'$known) .
    
')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
    if (!
preg_match_all($pattern$u_agent$matches)) {
        
// we have no matching number just continue
    
}
   
    
// see how many we have
    
$i count($matches['browser']);
    if (
$i != 1) {
        
//we will have two since we are not using 'other' argument yet
        //see if version is before or after the name
        
if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            
$version$matches['version'][0];
        }
        else {
            
$version$matches['version'][1];
        }
    }
    else {
        
$version$matches['version'][0];
    }
   
    
// check if we have a number
    
if ($version==null || $version=="") {$version="?";}
   
    return array(
        
'userAgent' => $u_agent,
        
'name'      => $bname,
        
'version'   => $version,
        
'platform'  => $platform,
        
'pattern'    => $pattern
    
);
}
?>


userdetails add

Code (php) Select
$HTMLOUT .= "<tr><td class='rowhead'>{$lang['userdetails_user_browser']}</td><td align='left'>".htmlspecialchars($user['browser'])."</td></tr>";

lang_userdetails.php add :

Code (php) Select
'userdetails_user_browser' => "User Browser",