Récupération navigateur et os

Résolu/Fermé
kitusais Messages postés 4 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 12 mars 2009 - 10 mars 2009 à 03:43
kitusais Messages postés 4 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 12 mars 2009 - 12 mars 2009 à 13:28
Bonjour,
J'ai placé deux codes pour récupérer le navigateur et le système d'exploitation des membres de mon site.
Le problème, c'est qu'il semble que pour certains les résultats soient erronés.
Par exemple, affichage de ie6 au lieu de ie7 ou ie8, et affichage de xp au lieu de vista.
Pour ma part, j'ai testé sous plusieurs navigateurs et os et c'est ok.

Ma question, les codes suivants sont-ils en cause ??

Faut-il les modifier ou les améliorer ??

Si ces codes ne sont pas fautifs, quelles peuvent êtres les causes de ces mauvaises reconnaissances?

Merci pour toute aide.

le code pour récupérer les navigateurs :

$var_nav = explode(' ',$_SERVER['HTTP_USER_AGENT']);
$var_nav = $var_nav[0];
$user_browser = $var_nav;
if (ereg("MSIE 8", $_SERVER["HTTP_USER_AGENT"]))
{
$user_browser = " internet explorer 8";
}
if (ereg("MSIE 7", $_SERVER["HTTP_USER_AGENT"]))
{
$user_browser = " internet explorer 7";
}
else if (ereg("MSIE 6", $_SERVER["HTTP_USER_AGENT"]))
{
$user_browser = " internet explorer 6";
}
else if (ereg("MSIE 5", $_SERVER["HTTP_USER_AGENT"]))
{
$user_browser = " internet explorer 5";
}
else if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
$user_browser = " internet explorer 4";
}
else if (ereg("Firefox/1", $_SERVER["HTTP_USER_AGENT"]))
{
$user_browser = " Firefox 1";
}
else if (ereg("Firefox/2", $_SERVER["HTTP_USER_AGENT"]))
{
$user_browser = " Firefox 2";
}
else if (ereg("Firefox/3", $_SERVER["HTTP_USER_AGENT"]))
{
$user_browser = " Firefox 3";
}




le code pour récupérer les systèmes d'exploitations :

if (strstr($_SERVER['HTTP_USER_AGENT'], "Windows NT 5.1")) {
$user_os = "Windows XP";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Windows NT 5.0")) {
$user_os = "Windows 2000";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Windows NT 6.0")) {
$user_os = "Windows Vista";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Windows NT 4")) {
$user_os = "Windows NT 4.0";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Windows 98") || strstr($_SERVER['HTTP_USER_AGENT'], "Win 98")) {
$user_os = "Windows 98";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Windows 95") || strstr($_SERVER['HTTP_USER_AGENT'], "Win 95")) {
$user_os = "Windows 95";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Windows 9") || strstr($_SERVER['HTTP_USER_AGENT'], "Win 9")) {
$user_os = "Windows 9x";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Windows Me") || strstr($_SERVER['HTTP_USER_AGENT'], "winme")) {
$user_os = "Windows Me";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Win32")) {
$user_os = "Win32";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "PPC") || strstr($_SERVER['HTTP_USER_AGENT'], "Mac_PowerPC")) {
$user_os = "Mac Power PC";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "mac")) {
$user_os = "Macintosh";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "X11")) {
$user_os = "X11";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "SunOS")) {
$user_os = "SunOS";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "BeOS")) {
$user_os = "BeOS";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "FreeBSD")) {
$user_os = "FreeBSD";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "OpenBSD")) {
$user_os = "OpenBSD";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "IRIX")) {
$user_os = "IRIX";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "OS/2")) {
$user_os = "OS/2";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Plan9")) {
$user_os = "Plan9";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "OSF")) {
$user_os = "OSF";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "HP-UX")) {
$user_os = "HP-UX";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "Linux")) {
$user_os = "Linux";
} elseif(strstr($_SERVER['HTTP_USER_AGENT'], "unix")) {
$user_os = "Other Unix";
} else {
$user_os = "Autre...";
}
A voir également:

5 réponses

Utilisateur anonyme
10 mars 2009 à 09:45
si dans le cas autre tu ajoutais la variable dans les parametres du echo cela pourrait t'éclairer
0
Utilisateur anonyme
10 mars 2009 à 09:53
<?
extract($_SERVER);

if ( strstr($HTTP_USER_AGENT,"Mac") $user_os="mac";
elseif ......
else echo "non prévu $HTTP_USER_AGENT";
?>
0
kitusais Messages postés 4 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 12 mars 2009
10 mars 2009 à 14:27
re,
Merci pour ta réponse, le else affichera quoi???

a+
0
kitusais Messages postés 4 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 12 mars 2009
11 mars 2009 à 19:10
re,
Pour exemple :

sous windows vista

résultat :

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618)

et ce pc est détecté en windows xp et internet explorer 7.


Une idée....

a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kitusais Messages postés 4 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 12 mars 2009
12 mars 2009 à 13:28
re,
ok, c'est résolu...
merci
a+
0