Se connecter / S'enregistrer

Résolu PHP et instructions conditionelles

Solutions (5)
Tags :
  • Internet explorer 8
  • Programmation
|
Bonjour à tous !

Il y a peu de temps, j'ai découverts les instructions conditionelles (vous savez, ces balises qui prennent en compte le nom et la version du navigateur du visiteur). Fort de cette découverte, j'a voulu l'utiliser pour améliorer la lisibilité de mon site web, notamment vis-à-vis d'Internet Explorer, qui refuse de faire comme tout le monde. Je signale tout de suite que mon site est en PHP.

Le problème d'affichage se situe dans le menu : pour les explorateur tels que Firefox, Chrome, Opera ... et Internet Explorer 8, il s'affiche convenablement. En revanche, dès que la version d'IE est inférieur à 8, l'affichage déconne. J'ai donc mis en application les conseils que j'avais lu sur les instructions conditionelles, et j'ai écris le code suivant :

Citation :
<!--[if (!IE)|(gte IE 8)]><?php include("menu1.php"); ?><![endif]-->
<!--[if lt IE 8]><?php include("menu2.php"); ?><![endif]-->

Nous avons donc ici (pour voir si vous comprenez la même chose que moi) :
- ligne 1 : si le navigateur n'est pas IE OU si la version d'IE est supérieur ou égal à 8, inclure "menu1.php"
- ligne 2 : si le navigateur est IE et que sa version est strictement inférieur à 8, inclure "menu2.php"

Or, malgré mes essais répétés, tout les navigateurs s'obstinent à inclure les deux page, comme si elles ignoraient les instructions. J'ai fais le test en remplaçant ma balise include par un petit texte, et là, les instructions étaient respectées.

J'en suis venus à me demander si les instructions conditionelles étaient compatibles avec le PHP. En savez-vous plus que moi sir le sujet ?
Contenus similaires
  • Autres pages sur : php instructions conditionelles
Meilleure solution
partage
|
Tu confonds PHP et SSI (Server Side Includes).
Les commandes SSI n'empèchent pas l'exécution du PHP car elles travaillent au niveau du HTML, le PHP intervient avant.
Tu ferais mieux de te baser sur du pur php avec une analyse du client (get_browser() ou $_SERVER['HTTP_USER_AGENT'])
  • Commenter cette solution |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par Xzimnut.
  • Commenter cette réponse |
Score
0
òh
òi
|
Ce n'est pas grave dans son cas car il ne veut la condition que pour les IE dont la version est inférieure au 8.
Les autres navigateurs utilisent donc le menu par défaut, indépendamment des infos qu'ils donneront.
  • Commenter cette réponse |
Score
0
òh
òi
|
mouais, il faut savoir que certains navigateurs (opéra et cie) masquent leur user_agent, ou pire, le déguisent...
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci beaucoup, je m'y attelle tout de suite.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS