Détection du navigateur en php

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Détection du navigateur en php

Message par calimo »

J'aimerais bien qu'il y ait un avertissement particulier si l'utilisateur de http://smilissimo.free.fr/ n'utilise pas Mozilla. Et si possible aussi s'il se trouve sur une extension incompatible...

J'ai donc essayé de récupérer le "User-Agent"... j'ai réussi, c'est déjà bien ($HTTP_USER_AGENT)

Ensuite je me dit : je teste s'il y a Mozilla dedans avec

Code : Tout sélectionner

ereg(Mozilla,$navigateur)
Or, problème...
Firefox a écrit :Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.6) Gecko/20040210 Firedragon/0.8 (User Agent modifie grace a Firesomething. Telechargez Firefox en francais sur http://frenchmozilla.org/)
Déjà c'est mal barré vu que j'ai modifié le "userAgent :oops: je pense que je ne suis pas le seul...)
Moz 1.6 a écrit :Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.6) Gecko/20040113
C'est là que ça se corse :
IE a écrit :Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
:shock: :shock:

Opera n'est pas franchement mieux :
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.23 [fr]
Donc visiblement la détection de Firefox et Opera devrait être possible, par contre IE et Mozilla....

Quelqu'un a déjà fait ce genre de trucs ?
AllanTK
Salamandre
Messages : 38
Inscription : 06 août 2003, 23:43

Message par AllanTK »

Beaucoup d'user agents de navigateur semblent commencer par Mozilla, alors déja tu es mal barré :-/. Je met en gras dans les users agents suivant les mots-clés que tu devrais rechercher:


IE -> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Opera -> Opera/7.21 (Windows NT 5.1; U) [en]

FireFox -> Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.6) Gecko/20040206 Firefox0.8

Tu peux avoir une liste complète de user agant sur google à mon avis, sinon tu peux utiiliser la fonction get_browser (http://fr3.php.net/manual/fr/function.get-browser.php), qui pourrais te donner une piste.
ClémentD
Lézard à collerette
Messages : 330
Inscription : 21 déc. 2003, 12:40

Message par ClémentD »

Je pense que baser la recherche sur Gecko pour reperer les navigateurs mozilla et dérivés n'est pas une mauvaise idée.

C'est bien vu de l'utiliser dans le cas ou l'utilisateur utilise mozilla ou firefox pour le guider vers les extensions compatibles. Il y a plein de petites informations dans le user-agent en fait, la version, la langue ...
SB
Varan
Messages : 1095
Inscription : 05 mars 2004, 18:38

Message par SB »

AllanTK a écrit :Beaucoup d'user agents de navigateur semblent commencer par Mozilla
Le "programme" de stats doit également entrer en ligne de compte. Par exemple les stats pour un site de ma connaissance :

36.69% Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
29.41% Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1
8.67% Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Wanadoo 6.1)
5.18% Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
3.59% Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
3.39% Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.6) Gecko/20
3.09% Mozilla/4.0 (compatible; MSIE 6.0; MSN 2.5; Windows 98)
2.49% Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Wanadoo 5.
2.09% Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; FunWebProducts
1.40% Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr-fr) AppleWebKit/1
1.30% Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
0.50% Lynx/2.8.5rel.1 libwww-FM/2.14FM SSL-MM/1.4.1 OpenSSL/0.9.7d-
0.20% Googlebot/2.1 (+http://www.googlebot.com/bot.html)

Quasiment que du mozilla même pour IE.
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

OK merci je vais voir ça :wink:
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

En fait, ce que tu dois rechercher précisément c'est la chaîne Gecko (ce n'est pas pour rien qu'on a choisi ce nom pour le site).

Ou encore plus précisément, Gecko/ si tu veux exclure Safari qui a "like Gecko" dans sa chaîne d'identification.

Note : pour ton site d'extensions réservées à Mozilla c'est justifié mais ne faites jamais ce genre de trucs sur un site tout public, c'est précisément contre ça qu'on doit se battre tous les jours dans "sites non conformes".
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

Ce que j'avais trouvé de mieux comme source de données de "user agent" quand j'ai voulu faire mes stats perso:
http://www.pgts.com.au/pgtsj/pgtsj0212d.html
et plus précisement :
http://www.pgts.com.au/pgtsj/pgtsj0208c.html

Sinon le browscap.ini de http://www.garykeith.com/browsers/downloads.asp, un peu plus délicat à lire, mais efficace.

Et tu vas te rendre compte de la complexité de reconnaitre les différents navigateurs. A toi de trouver des chaines de caractères caractéristiques de chacun.(Gecko/ que Benoit te propose me semble le bon choix dans ton cas)

Quant à différencier firefox de mozilla, pour "s'il se trouve sur une extension incompatible... ", çà va peut être être délicat avec les utilisateurs de firesomething...
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Le nouveau format d'extensions qui prendra cours avec la version 0.9 n'aura pas ce problème, puisqu'il se base sur une chaîne d'identification unique (UUID)
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Merci à tous, je vais essayer de faire ça cet après-midi. :D
Quitte à mettre un message du genre
Vérifiez que vous utilisez Firefox
pour les utilisateurs de Firesomething et autres trafficoteurs de user-agent (remarque: par défaut, FS ne modifie pas le user-agent :wink: )
De toutes façons cette catégorie d'utilisateurs sait ce qu'elle fait :wink:

Le but final est simplement de mettre "Attention, vous n'utilisez pas Mozilla" ou "Vous n'utilisez pas la bonne version" avec un lien vers franchmozilla, pas de rejeter quiconque évidemment :lol:
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

J'ai pas mal avancé grâce à tous vos conseils :D

Donc je regarde s'il y a "Gecko/"
Si oui je regarde si c'est Firefox, (ou Firebird ou Phoenix), Galeon, K-Meleon, Camino ou Netscape 6/7 etc. puis je teste le chiffre après le "rv:" 1.4, 1.6 ou 1.7 (visiblement il n'y a que les "vrais" Mozillas qui ont un "rv:" dans le User-Agent.)

S'il n'y a pas Gecko/ je cherche msie, opera, safari, konqueror, links ou lynx...
Pour NS 4.7 j'ai trouvé Mozilla/4.7 j'espère qu'il est assez universel.

Donc comme ça j'ai les versions de Firefox et Mozilla. Vous pouvez tester si je détecte bien votre navigateur sur http://smilissimo.free.fr/index2.php

Ensuite je pourrai voir ce que j'en fait, mais ça c'est une autre histoire.

Quelques questions en rapport plutôt avec le site :
-Camino... il y a des extensions pour lui ? Celles de FF sont-elles compatibles ou dois-je avertir ?
-Netscape6/7 : qu'en est-il avec les extensions pour Mozilla ? Compatible ou non ?

En tous cas merci beaucoup pour votre aide. Si vous voulez voir le code pondu, il est à l'adresse http://smilissimo.free.fr/nav_detect.inc :wink:
SB
Varan
Messages : 1095
Inscription : 05 mars 2004, 18:38

Message par SB »

Firefox 0.8 bien détecté pour moi.
Par contre est-ce que tu n'aurais pas oublié quelque chose ? Allez je t'aide, ça commence par http://valid... :wink:
SB
Varan
Messages : 1095
Inscription : 05 mars 2004, 18:38

Message par SB »

Netscape 7 également détecté. (bon c'était 7.02 mais faut pas être trop exigeant. :) )
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Ce n'est quand-même pas de ma faute si le validateur n'accepte pas le type mime application/xml+xhtml non ? :(
Remarque je devrais peut-être enlever les mises en garde pour les anciens navigateurs :lol:
Rien à voir avec la détection du navigateur :wink:
SB
Varan
Messages : 1095
Inscription : 05 mars 2004, 18:38

Message par SB »

IE aussi. Toutefois le résultat est surprenant.

Code : Tout sélectionner

Erreur : le type MIME correct de la page n'a pas pu être envoyé à votre navigateur. 
Cause : le type MIME application/xml+xhtml n'est pas connu par votre navigateur qui l'a refusé. 
Résultat : le type MIME par défaut a été envoyé. 

Uncaught exception : Component returned failure code: 0x80520001 in module APACHE.SERVER.GENERAL. 
Status : Unable to send XML prolog. Please contact your system administrator for further investigation. 
Stack state : Cleared. Server reinitializing... success 

Erreur critique inattendue : l'encodage des caractÚres n'a pas pu être spécifié. 
Cause : impossible d'envoyer l'encodage des caractÚres car l'en-tête XML n'a pas été envoyée pour une raison inconnue. 
Résultat : l'encodage par défaut sera utilisé. Des caractÚres bizarres seront peut-être affichés. Réglez manuellement l'encodage si nécessaire. 

Avertissement : le doctype n'a pas été spécifié. 
Cause : le XHTML n'est pas supporté par votre navigateur car il a refusé le type MIME correct. 
Résultat : des comportements bizarres sont prévisibles du fait que la page est écrite en XHTML. 

Avertissement : votre navigateur ne supporte pas bien le CSS. 
Cause : le type MIME text/css n'est pas connu par votre navigateur qui l'a refusé. 
Résultat : la page sera affichée avec la mise en forme minimale. 

Attention : le nombre maximal d'erreurs a été atteint. Votre navigateur risque de ne pas pouvoir afficher cette page correctement. 
Correction possible : Téléchargez la derniÚre version de Mozilla sur French Mozilla. ;-) 
:wink:
Benoit
Administrateur
Messages : 4894
Inscription : 19 juil. 2003, 10:59

Message par Benoit »

Hm ton serveur redémarre chaque fois que quelqu'un arrive avec IE ? :)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 13 invités