Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z rozpoznawaniem systemu
Forum PHP.pl > Forum > Przedszkole
dresik
Witam,
mam ogólno dostępny kod do statystyk i mam problem z rozpoznawaniem systemu.
Niewiem dlaczego ale zawsze pokazuje mi że wchodze z systemu windows XP, mimo że siedze np na Viście

Poniżej wkleje kod programu, w kodzię będzie wyświetlanie w danych momentach informacje o przeglądarce i systemie.

  1. <?php
  2. $this->agent = $_SERVER['HTTP_USER_AGENT'];
  3.  
  4. $this->fetchPlatform();
  5.  
  6. function fetchPlatform(){
  7.  
  8.    $agent = strtolower($this->agent);
  9.    
  10.    print '1. '.$agent.'<br><br>';            // wyświetlanie 1 raz zmiennej agent
  11.    
  12.    if(ereg("windows nt", $agent)){
  13.    
  14.        print '2. '.$agent.'<br><br>';        // wyświetlanie 2 raz zmiennej agent
  15.        $exp = explode('windows nt ', $agent);
  16.        $exp = explode(';', $exp[1]);
  17.        
  18.        print '3. '.$agent.'<br><br>';        // wyświetlanie 3 raz zmiennej agent
  19.  
  20.        switch($exp[0]){
  21.        case('6.0'):
  22.            $this->platform = 'Microsoft Windows Vista';
  23.        break;
  24.        case('5.2'):
  25.            $this->platform = 'Microsoft Windows Server 2003';
  26.        break;
  27.        case('5.1'):
  28.            $this->platform = 'Microsoft Windows XP';
  29.        break;
  30.        case('5.0'):
  31.            $this->platform = 'Microsoft Windows 2000';
  32.        break;
  33.        case('4.0'):
  34.            $this->platform = 'Microsoft Windows NT 4.0 Workstation';
  35.        break;
  36.        default:
  37.            $this->platform = 'Microsoft Windows NT';
  38.        break;
  39.        }
  40.    }
  41.    elseif(ereg("windows 98", $agent)){
  42.        $this->platform = 'Microsoft Windows 98';}
  43.    elseif(ereg("windows 95", $agent)){
  44.        $this->platform = 'Microsoft Windows 95';}
  45.    elseif(ereg("macosx", $agent) || ereg("macos x", $agent)){
  46.        $this->platform = 'Apple Macintosh OSX';}
  47.    elseif(ereg("macintosh", $agent) || ereg("mac", $agent)){
  48.        $this->platform = 'Apple Macintosh';}
  49.    elseif(ereg("suse", $agent)){
  50.        $this->platform = 'SuSE Linux';}
  51.    elseif(ereg("linux", $agent)){
  52.        $this->platform = 'Linux';}
  53.    elseif(ereg("freebsd", $agent) || ereg("free bsd", $agent) || ereg("bsd", $agent)){
  54.        $this->platform = 'Free BSD';}
  55.    else{
  56.        $this->platform = 'undefined';}
  57. }
  58. ?>



Poniżej wkleje wyświetlany wynik z różnych przeglądarek i systemów:

Cytat
// windows XP - opera

1. opera/9.80 (windows nt 5.1; u; en) presto/2.2.15 version/10.00
2. opera/9.80 (windows nt 5.1; u; en) presto/2.2.15 version/10.00
3. opera/9.80 (windows nt 5.1; u; en) presto/2.2.15 version/10.00

1. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)
2. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)
3. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)


// windowx xp - ie8

1. mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0; .net clr 1.1.4322)
2. mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0; .net clr 1.1.4322)
3. mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0; .net clr 1.1.4322)

1. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)
2. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)
3. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)


// windows xp - firefox

1. mozilla/5.0 (windows; u; windows nt 5.1; pl; rv:1.9.0.11) gecko/2009060215 firefox/3.0.11
2. mozilla/5.0 (windows; u; windows nt 5.1; pl; rv:1.9.0.11) gecko/2009060215 firefox/3.0.11
3. mozilla/5.0 (windows; u; windows nt 5.1; pl; rv:1.9.0.11) gecko/2009060215 firefox/3.0.11

1. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)
2. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)
3. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)


// windows vista - ie7

1. mozilla/4.0 (compatible; msie 7.0; windows nt 6.0; slcc1; .net clr 2.0.50727; .net clr 3.0.04506)
2. mozilla/4.0 (compatible; msie 7.0; windows nt 6.0; slcc1; .net clr 2.0.50727; .net clr 3.0.04506)
3. mozilla/4.0 (compatible; msie 7.0; windows nt 6.0; slcc1; .net clr 2.0.50727; .net clr 3.0.04506)

1. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)
2. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)
3. mozilla/4.0 (compatible; msie 6.0; windows nt 5.1; .net clr 1.1.4322; infopath.1; .net clr 1.0.3705; .net clr 2.0.50727; infopath.2)


Dlaczego jest to podwójnie wyświetlane i dlaczego za pierwszym razem sie wyświetla ok a za drugim razem cos innego, ale w każdym przypadku jest to samo

Dlaczego w ostatnim przykładzie wyświetlania windows vista - ie7 zwracana jest wersja systemu z drugiego wyświetlania czyli 5.1 a przeglądarka jest zwracana z pierwszego wyświetlania czyli 7,0

Obydwie dane są tak samo pobierane.

Proszę o pomoc ponieważ naprawdę już niewiem co z tym mam zrobić.
nospor
Cytat
jak użyje stripos wyskakuje błąd:
w linku napisane jak wol ze tylko dla php5. skoro ci pisze ze nie masz, to pewnie uzywasz php4

Cytat
jak użyje get_browser wyskakuje błąd:
No tez mogles zajrzec do podanego linka:
Cytat
Informacja: In order for this to work, your browscap configuration setting in php.ini must point to the correct location of the browscap.ini file on your system.
browscap.ini is not bundled with PHP, but you may find an up-to-date » php_browscap.ini file here.
While browscap.ini contains information on many browsers, it relies on user updates to keep the database current. The format of the file is fairly self-explanatory.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.