8791 sujets

Développement web côté serveur, CMS

Slt tlm,

Je cherche désespérément à détecter IE6 et inférieur en PHP. J'ai trouvé sur google pleins de fonctions qui permettent de détecter IE, mais elle ne marchent pas pour IE 6 spécifiquement.

Voila ce que j'ai pu récolter comme info avec $_SERVER["HTTP_USER_AGENT"] sur mon PC:
Firefox:
Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14 Creative ZENcast v2.01.01

IE6:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 1.1.4322; Creative ZENcast v2.01.01)

IE7:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 1.1.4322; Creative ZENcast v2.01.01)



J'ai donc utiliser cette fonction pour détecter IE6, mais elle ne marche pas:
if (ereg("`^Mozilla/4\.0 \(compatible; MSIE 6\.0;`", $_SERVER["HTTP_USER_AGENT"]))
	echo 'IE6';


Mon IE6 est une version standalone, donc peut être que les infos fournies par $_SERVER["HTTP_USER_AGENT"] sont erronées?!
Et c'est pas un peu bizarre de voir ces info commencer par "Mozilla/4.0" pour les IE??


Merci bp!
+++
Modifié par maxroucool (05 Jun 2008 - 15:44)
Coucou...

Ma seule question sera : mais pourquoi tant de haine ?!?
Non, sans rire, quel est l'objectif de cette détection exactement ?
Car entre nous, les solutions proposées en règle générales sont assez bancales et plutôt déconseillées.
Slt,

Je t'explique tout! Mon site ne passe absolument pas sur IE6, donc je veux rajouter une feuille CSS pour corriger ces bugs. De plus j'utilise des png transparents, que je dois remplacer par des gif. C'est tres moche, mais c'est tout ce que je peux faire, j'ai testé les hacks, mais sans succes!

Donc tu vas me dire que pour la feuille de style, je peux passer par les commentaires conditionnels HTML, mais j'ai testé et ça ne marche pas (je l'ai quand même laissé, au cas ou...). Pour les images en gif, je gère le maximum dans la feuille CSS, mais il en reste quand même dans la page.

C'est donc pourquoi je veux passer par PHP pour détecter IE6. C'est clair que d'après ce que j'ai vu, la détection du browser à l'air assez moisi sous PHP, à part get_browser(), mais qui n'est pas configuré chez mon hebergeur.

Après si vous avez des meilleurs idées, je suis tout ouï!


Merki bp!
+++
Wai, mais ca ne marche pas. Voici ce que j'ai mis:

<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="designIE6fix.css" />
<![endif]-->

Modifié par maxroucool (05 Jun 2008 - 21:00)
Oui mais tu as mis ça où ? Parce que ça c'est pas du PHP ... Sinon le problème peut venir du fichier "designIE6fix.css" qui ne serait pas au bon endroit.
Si je me rappelle bien, les commentaires conditionnels ne fonctionnent pas sur les versions standalone d'internet explorer. Il faudrait donc tester sur une version non standalone, ou par exemple utiliser un site permettant de te faire faire des captures d'écran sur certains navigateurs (http://browsershots.org/ - gratuit).
Une autre solution serait une détection à l'aide de JavaScript. C'est pas une méthode très propre, mais c'est toujours mieux (et plus pratique) que de tenter de le faire à l'aide de PHP.
Pour une méthode JS propre, je te conseil de lire cet article sur le site Quirksmode : http://www.quirksmode.org/js/support.html (ou sa traduction en français : http://www.misfu.com/static/Javascript/support.html )

A mon avis, les commentaires conditionnels restent encore le meilleur moyen de parvenir à tes fins.
<!--[if lte IE 6]>
		<link rel="stylesheet" type="text/css" href="<?php echo T.$color.'ie6.css'; ?>" />
	<![endif]-->

(Sur la dernière ligne, le 'endif' est entre crochet, sans espace avant ni après : le forum d'alsa nous fait un peu des siennes)
D'ailleurs, en fouillant un peu sur google, j'ai trouvé ça (sur Alsacreations !) : http://blog.alsacreations.com/2007/01/07/321-commentaires-conditionnels-et-versions-autonomes-internet-explorer

Et si tu peux remplacer tes PNGs par du GIF, c'est peut-être parce qu'il n'est pas absolument nécessaire d'utiliser du PNG (il faut pas utiliser PNG juste parce que c'est dans le vent : le GIF reste tout de même un format qui a des avantages, déjà qu'il est compatible avec tous les navigateurs). Et puis IE6 gère bien le PNG qui n'as pas la transparence progressive (donc, comme le GIF, qui possède une "couleur" transparente : Le PNG-8)
Modifié par superjun (07 Jun 2008 - 23:54)
Salut, salut,
superjun a écrit :
Si je me rappelle bien, les commentaires conditionnels ne fonctionnent pas sur les versions standalone d'internet explorer.
Si ! Si ! Normalement avec Multiple IE de Tredosoft ça marche ! Et d'ailleurs le logiciel est indiqué dans la page de ton dernier lien Smiley cligne !
OK merci les gars!

J'ai donc abandonné l'idée du PHP, et j'utilise un commentaire conditionnel qui maintenant marche ac mon nouveau browser standalone! Pour ce qui est des png à transformer en gif, ils n'étaient finalement pas tres nombreux, et j'ai pu les passer dans la feuille css.

Sinon pour ce qui est de l'utilité du PNG, va faire un tour sur mon site avec IE6, et tu verra que le PNG est nécessaire! Logo est tout simplement abominable en gif. Après je me suis pas amusé à l'embellir, car je suis pas doué ac photoshop, j'ai juste enregistré la version PNG en GIF! Si vous avez des astuces, je suis preneurs!


+++