IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Afficher un message selon la version d'IE


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut Afficher un message selon la version d'IE
    Bonjour,
    Je vais afficher un div si l'utilisateur utilise la version 8 ou moins de IE

    Je fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
     
    if(preg_match('/(?i)msie [1-8]/',$_SERVER['HTTP_USER_AGENT']))
    {
    	echo '<div id="iealerte">
      <p>Notre site n\'est pas optimisé pour les versions de Internet Explorer 8 et inférieures</p>
    </div>';
    }
    else
    {
        // if IE>8
    }
     
    ?>
    Cela marche bien sur certains IE, par exemple sur mon IE :
    IE 9 et je ne vois pas le message

    En plus j'ai regardé en cliquant sur la touche F12
    Mode Navigateur : IE9
    Mode de document : Normes d'Internet Explorer IE9 (Page par défault)

    Par contre, il y a des gens qui ont IE 9 avec la configuration suivant
    Mode Navigateur : Affichage de comptatiblité Internet Explorer 9
    Mode de document : Normes d'Internet Explorer IE9 (Page par défault)

    et mon div s'affiche... portant c'est IE9

    Que je dois faire pour que mon div ne s'affiche dans IE même si Mode Navigateur : Affichage de comptatiblité Internet Explorer 9 est sélectionné ?

    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Gné ?
    Tu fais un test pour vérifier que le navigateur est plus récent que IE8 et tu t'inquiete que IE9 ne déclenche pas le test ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Je veux afficher un message si l'utilisateur utilise IE 8 ou plus ancien
    sinon (donc l'utilisateur utilise IE 9 ou 10) le message (dans un div) ne s'affiche pas.

    Avec mon code tout va bien, mais dans certaines configurations de IE 9, le message s'affiche malgré tout.


    IE 9 avec Mode Navigateur : IE9 tout va bien, pas de message (DIV), mais
    IE 9 avec Mode Navigateur : Affichage de comptatiblité Internet Explorer 9, il y a le message dont j'ai parlé au 1er post.

    Pourtant je ne veux pas afficher le message dans IE 9

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    salut,
    tu peux le faire aussi à l'aide des commentaires conditionnels:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <!--[if lte IE 8]> <!-- pour des versions IE inférieures ou = à 8 -->
    <?php
     
    echo '<div id="iealerte">
      <p>Notre site n\'est pas optimisé pour les versions de Internet Explorer 8 et inférieures</p>
    </div>';
    ?>
    <![endif]-->
     
    <!--[if gt IE 8]> <!-- pour des versions IE supérieures à 8 -->
    <div>
     
    </div>
    <![endif]-->

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    En mode de compatibilité IE se fait justement passer pour une autre version.
    Le numéro de "MSIE" du user-agent est donc faussé.
    Il faut visiblement regarder la version de "TRIDENT"

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par armel18 Voir le message
    salut,
    tu peux le faire aussi à l'aide des commentaires conditionnels:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <!--[if lte IE 8]> <!-- pour des versions IE inférieures ou = à 8 -->
    <?php
     
    echo '<div id="iealerte">
      <p>Notre site n\'est pas optimisé pour les versions de Internet Explorer 8 et inférieures</p>
    </div>';
    ?>
    <![endif]-->
    Bonjour Armel,

    Avec ton code, cela marche dans IE.
    Dans Firefox aussi (donc : pas de message) mais dans Chrome, le message est visible

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Citation Envoyé par sabotage Voir le message
    En mode de compatibilité IE se fait justement passer pour une autre version.
    Le numéro de "MSIE" du user-agent est donc faussé.
    Il faut visiblement regarder la version de "TRIDENT"
    Bonjour Dragon,
    J'ai cherché un peu sur ce que tu as dit et sur le lien suivant, j'ai trouvé cela :
    http://en.wikipedia.org/wiki/Trident_(layout_engine)

    MSHTML.dll version : 8.0.x
    Internet Explorer version : 8.0

    Donc mon code doit marcher sous tous les IE selon la version : il va y avoir le message ou non.

    Mais mon code ne réagit pas la même façon sous IE 9.0

    le mien n'affiche pas le message, mais dans un autre (sous la version 9.0 aussi) le message s'affiche

    Alors comment je peux changer mon code selon TRIDENT

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Regarde le user-agent qui est donné quand tu es sur IE9 et quand tu es sur IE9 en mode comptabilité, tu verras.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Selon http://msdn.microsoft.com/library/ms537503.aspx
    Version token Description
    MSIE 10.0 ......Internet Explorer 10
    MSIE 9.0......Internet Explorer 9
    MSIE 8.0......Internet Explorer 8 or IE8 Compatibility View/Browser Mode
    MSIE 7.0......Windows Internet Explorer 7 or IE7 Compatibility View/Browser Mode
    MSIE 6.0 ......Microsoft Internet Explorer 6

    Mon code est bon :
    mais comment je peux forcer pour que la version 9 reste aec Mode Navigation : IE 9 avec Mode Navigateur : IE9
    mais pas
    Affichage de comptatiblité Internet Explorer 9

  10. #10
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    le message ne devrait jamais s'afficher ni sur chrome, ni sur firefox, ni sur safari...il ne s'affiche que sur des versions IE inferieurs ou égal à 8. Certainement s'il s'affiche sur firefox c'est à cause des commentaires html que j'ai mis.en enlevant les commentaires html ça devrait marcher:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <!--[if lte IE 8]> 
    <?php
     
    echo '<div id="iealerte">
      <p>Notre site n\'est pas optimisé pour les versions de Internet Explorer 8 et inférieures</p>
    </div>';
    ?>
    <![endif]-->

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut

    mais comment je peux forcer pour que la version 9 reste aec Mode Navigation : IE 9 avec Mode Navigateur : IE9
    mais pas
    Affichage de comptatiblité Internet Explorer 9
    pour empêcher IE de se mettre en mode compatibilité pour ton site il faut mettre ceci en 1ère de tes fichiers avant le html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    header('x-ua-compatible: ie=edge');
    ?>

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Regarde plutôt concrètement dans des deux cas quels sont les user-agent que tu as.
    Tous les élements que tu nous cites ne sont pas des user-agent.
    IE9 doit contenir "Trident/5.0" qu'il soit en mode compatiblité ou non.

Discussions similaires

  1. Afficher un message selon le parametre
    Par stade13 dans le forum BIRT
    Réponses: 2
    Dernier message: 19/02/2013, 13h07
  2. [MySQL] Comment afficher un message selon le citère?
    Par abouilyas dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/06/2011, 22h58
  3. Afficher un message selon plusieurs critères
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/04/2009, 16h43
  4. Réponses: 0
    Dernier message: 12/05/2008, 20h12
  5. Création d'un Script : Afficher un message selon une condition
    Par ero-sennin dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 23/12/2007, 20h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo