0

I used the script for OS detecting with PHP described enter link description here

The code looks like this:

function getOS() { 
global $user_agent;
$os_platform    =   "Unknown OS Platform";
$os_array       =   array(
                        '/windows nt 6.3/i'     =>  'Windows 8.1',
                        '/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 nt 6.3/i'     =>  'Windows 8.1',
                        '/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, $user_agent)) {
        $os_platform    =   $value;
    }
}   
return $os_platform;
}
$user_os        =   getOS();

I then use $user_os to send it to my database.

However, it always returns "Unknown OS Platform" regardless the actual OS. Is there some error in the script, or does the last part not work accurately? Anyone who can help me with this?

Community
  • 1
  • 1
ben_aaron
  • 1,504
  • 2
  • 19
  • 39
  • 3
    What is in `global $user_agent`?? – Daan May 19 '14 at 13:11
  • @Daan - I think you're right. It looks like `$user_agent = $_SERVER['HTTP_USER_AGENT'];` is missing from this code but present in the linked answer. – Joe May 19 '14 at 13:13
  • Sorry, you are right of course. I thought I had it in there and then just didn't see my mistake. Thanks for your quick response. – ben_aaron May 19 '14 at 13:19

0 Answers0