Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z rozpoznawaniem systemu
dresik
post
Post #1





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 12.06.2007
Skąd: Gorlice

Ostrzeżenie: (0%)
-----


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ć.

Ten post edytował dresik 13.07.2009, 14:22:47
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. stripos" title="Zobacz w manualu PHP" target="_manual Ci wystarczy...
  2. ereg" title="Zobacz w manualu PHP" target="_manual w PHP6 nie będzie
  3. get_browser" title="Zobacz w manualu PHP" target="_manual


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 10:24