Page 1 sur 2
Détection du navigateur en php
Publié : 05 mai 2004, 17:41
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
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

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)
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 ?
Publié : 05 mai 2004, 17:59
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.
Publié : 05 mai 2004, 18:04
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 ...
Publié : 05 mai 2004, 18:11
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.
Publié : 05 mai 2004, 18:19
par calimo
OK merci je vais voir ça

Publié : 05 mai 2004, 20:38
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".
Publié : 06 mai 2004, 00:07
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...
Publié : 06 mai 2004, 00:47
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)
Publié : 06 mai 2004, 11:11
par calimo
Merci à tous, je vais essayer de faire ça cet après-midi.
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

)
De toutes façons cette catégorie d'utilisateurs sait ce qu'elle fait
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

Publié : 06 mai 2004, 17:37
par calimo
J'ai pas mal avancé grâce à tous vos conseils
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 
Publié : 06 mai 2004, 17:46
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...

Publié : 06 mai 2004, 18:09
par SB
Netscape 7 également détecté. (bon c'était 7.02 mais faut pas être trop exigeant.

)
Publié : 06 mai 2004, 18:10
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
Rien à voir avec la détection du navigateur

Publié : 06 mai 2004, 18:14
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. ;-)

Publié : 06 mai 2004, 18:27
par Benoit
Hm ton serveur redémarre chaque fois que quelqu'un arrive avec IE ?
