[BC3] [PHP || JavaScript] Browser Check

Pagina: 1
Acties:
  • 97 views sinds 30-01-2008

  • $tranger
  • Registratie: Januari 2000
  • Laatst online: 07-04 13:54
Okay, topic 6001. Misschien een beetje iets waar al zo vaak over gediscusierd, maar nog nooit echt iets concreet''s uit gekomen. Ik heb dus bezig met een statestieken systeem. En daar wil ik gewoon precies in loggen welke browser iemand gebruikt en op welk platform. Dus bijvoorbeeld:

Browser: Msie
Version: 6
Platform: Windows 98 (SE)

Browser: Netscape
Version: 6
Platform: Windows 2000

Het probleem is dat browscap.ini kut is omdat ie sommige browsers niet kent of het verkeerde OS returnt of een of andere vage versie geeft.

Dan hebben we nog javascript. Maar daar komt ook niks als poep uit.

navigator.appVersion

geeft vaak 4.0 en dan daarachter tussen haakjes 6.0 of 5.5 ofzo, maar dat lijkt me ook niet makkelijk te detecteren. Mijn punt is dus dat ik een duidelijk en perfect werkend systeem wil, heeft iemand enig idee wat ik het beste kan doen, of een script of iets dergelijks?

Verwijderd

Op dinsdag 08 mei 2001 14:38 schreef joska het volgende:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?
global $HTTP_USER_AGENT, $BName, $BVersion, $BPlatform; 
function detect_browser() 
{ 
global $HTTP_USER_AGENT, $BName, $BVersion, $BPlatform; 

// Browser 
if(eregi("(opera) ([0-9]{1,2}.[0-9]{1,3}){0,1}",$HTTP_USER_AGENT,$match) || eregi("(opera/)([0-9]{1,2}.[0-9]{1,3}){0,1}",$HTTP_USER_AGENT,$match)) 
{ 
$BName = "Opera"; $BVersion=$match[2]; 
} 
elseif(eregi("(konqueror)/([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match)) 
{ 
$BName = "Konqueror"; $BVersion=$match[2]; 
} 
elseif(eregi("(lynx)/([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2})",$HTTP_USER_AGENT,$match)) 
{ 
$BName = "Lynx "; $BVersion=$match[2]; 
} 
elseif(eregi("(links) \(([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match)) 
{ 
$BName = "Links "; $BVersion=$match[2]; 
} 
elseif(eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match)) 
{ 
$BName = "MSIE "; $BVersion=$match[2]; 
} 
elseif(eregi("(netscape6)/(6.[0-9]{1,3})",$HTTP_USER_AGENT,$match)) 
{ 
$BName = "Netscape "; $BVersion=$match[2]; 
} 
elseif(eregi("mozilla/5",$HTTP_USER_AGENT)) 
{ 
$BName = "Netscape"; $BVersion="Unknown"; 
} 
elseif(eregi("(mozilla)/([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match)) 
{ 
$BName = "Netscape "; $BVersion=$match[2]; 
} 
elseif(eregi("w3m",$HTTP_USER_AGENT)) 
{ 
$BName = "w3m"; $BVersion="Unknown"; 
} 
else{$BName = "Unknown"; $BVersion="Unknown";} 

// System 
if(eregi("linux",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "Linux"; 
} 
elseif(eregi("win32",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "Windows"; 
} 
elseif((eregi("(win)([0-9]{2})",$HTTP_USER_AGENT,$match)) || (eregi("(windows) ([0-9]{2})",$HTTP_USER_AGENT,$match))) 
{ 
$BPlatform = "Windows $match[2]"; 
} 
elseif(eregi("(winnt)([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match)) 
{ 
$BPlatform = "Windows NT $match[2]"; 
} 
elseif(eregi("(windows nt)( ){0,1}([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match)) 
{ 
$BPlatform = "Windows NT $match[3]"; 
} 
elseif(eregi("mac",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "Macintosh"; 
} 
elseif(eregi("(sunos) ([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match)) 
{ 
$BPlatform = "SunOS $match[2]"; 
} 
elseif(eregi("(beos) r([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match)) 
{ 
$BPlatform = "BeOS $match[2]"; 
} 
elseif(eregi("freebsd",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "FreeBSD"; 
} 
elseif(eregi("openbsd",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "OpenBSD"; 
} 
elseif(eregi("irix",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "IRIX"; 
} 
elseif(eregi("os/2",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "OS/2"; 
} 
elseif(eregi("plan9",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "Plan9"; 
} 
elseif(eregi("unix",$HTTP_USER_AGENT) || eregi("hp-ux",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "Unix"; 
} 
elseif(eregi("osf",$HTTP_USER_AGENT)) 
{ 
$BPlatform = "OSF"; 
} 
else{$BPlatform = "Unknown";} 

/* 
echo $HTTP_USER_AGENT; 
echo $BName; 
echo $BVersion; 
echo $BPlatform; 
*/ 
} 
?>

Suc6
:)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Je zegt hetzelf al :)
Je zult die hebbelijkheidjes in elkaar moeten plakken, oa met bijv de $HTTP_USER_AGENT

Joska:
Ik wist dat je snel kon typen, maar zo snel :)

  • $tranger
  • Registratie: Januari 2000
  • Laatst online: 07-04 13:54
Ik ga het zo gauw mogelijk proberen, heel hartelijk bedankt voor de moeite, want ik had het misschien met zoeken kunnen vinden, maar goed, je vindt alleen de dingen die je nooit zoekt :( :P

Verwijderd

My pleasure. :)

  • $tranger
  • Registratie: Januari 2000
  • Laatst online: 07-04 13:54
Ik heb ''m zelf nog een klein beetje gestript. Functie''tje weggesloopt, stuctuur naar persoonlijke wens aangepast en zie hier het resultaat:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
if (eregi ("(opera) ([0-9]{1,2}.[0-9]{1,3}){0,1}",$HTTP_USER_AGENT,$match) || eregi ("(opera/)([0-9]{1,2}.[0-9]{1,3}){0,1}",$HTTP_USER_AGENT,$match)){$browser = "Opera"; $version = $match[2];}
elseif (eregi("(konqueror)/([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match)){$browser = "Konqueror"; $version=$match[2];}
elseif (eregi("(lynx)/([0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2})",$HTTP_USER_AGENT,$match)){$browser = "Lynx"; $version=$match[2];}
elseif (eregi("(links) \(([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match)){$browser = "Links"; $version=$match[2];}
elseif (eregi("(msie) ([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match)){$browser = "Internet Explorer"; $version=$match[2];}
elseif (eregi("(netscape6)/(6.[0-9]{1,3})",$HTTP_USER_AGENT,$match)){$browser = "Netscape"; $version=$match[2];}
elseif (eregi("mozilla/5",$HTTP_USER_AGENT)){$browser = "Netscape"; $version="Onbekend";}
elseif (eregi("(mozilla)/([0-9]{1,2}.[0-9]{1,3})",$HTTP_USER_AGENT,$match)){$browser = "Netscape"; $version=$match[2];}
elseif (eregi("w3m",$HTTP_USER_AGENT)){$browser = "w3m"; $version="Onbekend";}
else {$browser = "Onbekend"; $version="Onbekend";}
if (eregi("linux",$HTTP_USER_AGENT)){$platform = "Linux";}
elseif (eregi("win32",$HTTP_USER_AGENT)){$platform = "Windows";}
elseif ((eregi("(win)([0-9]{2})",$HTTP_USER_AGENT,$match)) || (eregi("(windows) ([0-9]{2})",$HTTP_USER_AGENT,$match))){$platform = "Windows $match[2]";}
elseif (eregi("(winnt)([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match)){$platform = "Windows NT $match[2]";}
elseif (eregi("(windows nt)( ){0,1}([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match)){$platform = "Windows NT $match[3]";}
elseif (eregi("mac",$HTTP_USER_AGENT)){$platform = "Macintosh";}
elseif (eregi("(sunos) ([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match)){$platform = "SunOS $match[2]";}
elseif (eregi("(beos) r([0-9]{1,2}.[0-9]{1,2}){0,1}",$HTTP_USER_AGENT,$match)){$platform = "BeOS $match[2]";}
elseif (eregi("freebsd",$HTTP_USER_AGENT)){$platform = "FreeBSD";}
elseif (eregi("openbsd",$HTTP_USER_AGENT)){$platform = "OpenBSD";}
elseif (eregi("irix",$HTTP_USER_AGENT)){$platform = "IRIX";}
elseif (eregi("os/2",$HTTP_USER_AGENT)){$platform = "OS/2";}
elseif (eregi("plan9",$HTTP_USER_AGENT)){$platform = "Plan9";}
elseif (eregi("unix",$HTTP_USER_AGENT) || eregi("hp-ux",$HTTP_USER_AGENT)){$platform = "Unix";}
elseif (eregi("osf",$HTTP_USER_AGENT)){$platform = "OSF";}
else {$platform = "Onbekend";}
?>

Nu heb je dus gewoon 3 variabelen:

$browser
$version
$platform

Niks geen gekut met functies meer, en de writer van dit scrippie: 3 hoera''tjes, het is echt compleet!!

Het enige wat ik nog wel heb kunnen vinden wat niet helemaal werkt is Netscape Navigator 4.04

Die geeft windows 95 weer omdat ie in de User Agent zegt: win95. Verder nog geen uitzonderingen gevonden.

Verwijderd

als k dit gebruik krijg k helemaal niks, geen teks, geen error.

www.d-cre.com/v3/browser.php

wot is mijn probleem? kan iemand mij helpen?

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Heu, mijn glazen bol wil vandaag niet echt werken, maar ehm... wat?

Wat wil je krijgen dan? Je ziet toch dat dat scriptje helemaal niets print. Hij zegt het nog: Nu heb je dus gewoon 3 variabelen: $browser, $version, $platform.

'wot is mijn probleem?' Hier zou ik heel gemene dingen kunnen zeggen, maar ik houd het maar op een tekort aan kennis van PHP. :P

[ Voor 23% gewijzigd door Cavorka op 13-04-2004 19:01 ]

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


  • dev icey
  • Registratie: Augustus 2003
  • Laatst online: 09-12-2025
Verwijderd schreef op 13 april 2004 @ 18:53:
als k dit gebruik krijg k helemaal niks, geen teks, geen error.

www.d-cre.com/v3/browser.php

wot is mijn probleem? kan iemand mij helpen?
heb je de variabelen wel laten plaatsen op de site :)

dus

PHP:
1
echo $var;

Verwijderd

Cavorka schreef op 13 april 2004 @ 19:00:
Heu, mijn glazen bol wil vandaag niet echt werken, maar ehm... wat?

Wat wil je krijgen dan? Je ziet toch dat dat scriptje helemaal niets print. Hij zegt het nog: Nu heb je dus gewoon 3 variabelen: $browser, $version, $platform.

'wot is mijn probleem?' Hier zou ik heel gemene dingen kunnen zeggen, maar ik houd het maar op een tekort aan kennis van PHP. :P
sorry k ben nog een beginner.. gister avond gestart. maar wot moet ut script nu zijn?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:32
Beetje onnuttige kick, vind je niet?

Je kan misschien eens de FAQ en Quickstart lezen, want we hechten hier wel wat belang aan zelfwerkzaamheid. Daarnaast kan een cursus nederlands ook altijd van pas zijn ipv 'spreektaal' enzo te gebruiken.

[ Voor 24% gewijzigd door whoami op 13-04-2004 19:06 ]

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.