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 :

[PHP-JS] Problème aléatoire sous Internet Explorer


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut [PHP-JS] Problème aléatoire sous Internet Explorer
    Bonjour,

    Je rencontre un problème aléatoire qui apparait surtout avec Internet Explorer (versions 6 ou 7, antérieures pas testées), et beaucoup plus rarement avec Firefox ou Opera, et semble-t-il uniquement sous Windows (en tous cas, je n'ai jamais pu le faire apparaitre sous Linux, y compris avec IE6 sous wine).

    J'utilise le moteur de template "Tiny but Strong", mais je ne sais pas s'il peut ou non être à l'origine de mon problème...

    Le problème apparait sous différentes formes, mais principalement :
    - Mauvaise page de style sélectionnée (je sélectionne le fichier CSS en fonction du navigateur, et parfois selon les conditions aléatoires décrites ci-dessus la sélection ne se fait pas et je retrouve la valeur par défaut)
    - variables non converties en leur valeur sur certaines lignes seulement.

    J'avoue que le fait que le problème aparaisse très peu souvent sous Firefox et pas du tout sous Linux fait que je ne vois vraiment pas de quel côté chercher... Que puis-je faire pour tenter de mieux en localiser l'origine ?

    Quelqu'un a-t-il déjà constaté des variations du code HTML généré selon le navigateur et/ou l'OS ?
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 132
    Points : 89
    Points
    89
    Par défaut
    J'ai testé les variations de codes suivant le navigateur pour un menu en JS que firefox avait du mal a afficher, et ca marchait très bien... Je vois pas du tout d'ou ca peut venir, désolé

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Quelqu'un a-t-il déjà constaté des variations du code HTML généré selon le navigateur et/ou l'OS ?
    C'est pas ici qu'il faut poser ta question ! je sais pas ou est ton probleme (et je risque pas de pouvoir t'aider avec une question aussi vague et aucun extrait de code), mais ce que je peut t'assurer, c'est qu'a partir du moment ou ton probleme se trouve dans ton code généré, c'est plus du PHP !
    Si vous avez un message d'erreur, n'oubliez pas de le lire, la réponse à votre problème est surement dedans !

  4. #4
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Salut,

    Citation Envoyé par gloubi
    je risque pas de pouvoir t'aider avec une question aussi vague et aucun extrait de code
    J'ai bien conscience que cela ne facilite pas les choses Mais c'est que cela se produit sur plusieurs pages dont le code PHP est relativement complexe et que je n'ai aucune idée de quelle(s) partie(s) vient le problème, d'où l'impossibilité pour moi de donner des extraits de code

    Citation Envoyé par gloubi
    mais ce que je peut t'assurer, c'est qu'a partir du moment ou ton probleme se trouve dans ton code généré, c'est plus du PHP !
    Ben... Comme c'est du PHP qui génère le code HTML, et que ce code HTML varie parfois selon le navigateur utilisé, il n'est pas impossible que ce soit le code PHP qui soit à l'origine des défauts constatés. Sinon, qui serait-ce ? Apache ? Le navigateur ?

    J'avoue y perdre mon latin !
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  5. #5
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    il faudrait voir s'il y a un problème dans la façon dont tu testes la version du navigateur.
    Vive les roues en pierre

  6. #6
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Petite précision qui sera peut-être utille, si j'en juge par la façon dont gloubi semble avoir compris les choses : Certaines parties (dont le choix du code CSS) donnent effectivement un code HTML généré différent selon le navigateur utilisé, mais d'autres devraient être fixes. Ainsi, je retrouve parfois les noms de variables utilisés dans le template TBS au lieu de leur valeur...

    C'est bien de ce code HTML généré (avec le nom des variables au lieu des valeurs) dont je parlais en disant qu'il dépend du navigateur, et apparait de façon aléatoire ou tout au moins selon une logique que je n'ai pas su déterminer : parfois la page est bonne, parfois non ! Toujours bonne sous Linux, très souvent bonne sous W$/Firefox, et tantôt bonne tantôt mauvaise sous IE...

    Bien entendu, lorsque la page est bonne, je retrouve bien le code HTML prévu, et lorsqu'elle est mauvaise, j'ai presque systématiquement le mauvais CSS sélectionné et d'autres anomalies dont celle que j'explique ci-dessus...
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  7. #7
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par Djakisback
    il faudrait voir s'il y a un problème dans la façon dont tu testes la version du navigateur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    if (eregi('msie', $HTTP_USER_AGENT) && !eregi('opera', $HTTP_USER_AGENT)) {
     
    	if (eregi('MSIE 6', $HTTP_USER_AGENT)) {
     
    		$nav="ie6";
     
    		$thdef="ie6";
     
    	}
     
    	else {
     
    		$nav="ie55";
     
    		$thdef="ie55";
     
    	}
     
    }
     
    else {
     
    	$nav="autre";
     
    	$thdef="gentianet";
     
    }
    Je ne sais plus pourquoi je ne fais pas de test sur IE7... Mais le problème se retrouve aussi bien sur IE 6 que sur IE 7. Pas fait d'essais sur IE5.5, il faudrait que je l'installe sur une bécane...

    $thdef me donne en fait le nom du fichier CSS à utiliser...
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  8. #8
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Salut,

    En voulant essayer de faire des essais complémentaires, je m'aperçois que je ne peux pas provoquer le problème localement. J'utilise un serveur linux sous SME 6.01, PHP version 4.12.

    Le problème semble donc ne se produire que sur le site lui-même, hébergé chez Free.fr (PHP version 4.43). Serait-ce lié à la version de PHP ("bricolée" chez Free.fr pour limiter la fonction mail et diverses autres adaptations) ? Et surtout, comment pourrais-je tenter de mieux cerner le problème ???

    Note : je n'utilise pas MySQL ni aucune BDD.
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  9. #9
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  10. #10
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Salut,

    De plus en plus bizarre : en faisant des essais pour tenter de localiser le problème, je mets le code suivant sur un serveur SME 7.0 (php version 4.3.9) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if (isset($_SERVER["http_user_agent"])) echo $_SERVER["http_user_agent"]; 
    else echo 'navigateur non renseigne'; 
    $browser = get_browser(null, true);
    print_r($browser);
    ?>
    Impossible d'avoir le moindre renseignement sur le browser, que j'essaie avec IE, Firefox ou Opera (sous Linux, avec wine pour IE bien sûr)... Exactement même résultat si j'utilise $HTTP_USER_AGENT évidemment...

    => $HTTP_USER_AGENT n'est pas renseigné avec certains serveurs, de façon aléatoire pour d'autres et fonctionne parfois très bien ???

    Là, il y a vraiment quelque chose qui m'échappe...

    Des avis, conseils ? Au pire, d'autres moyens de détecter le navigateur sans javascript ?
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  11. #11
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    J'ai finalement trouvé comment résoudre le problème de détection de browser en découvrant phpSniff qui est un script vraiment intéressant !

    En fait, cela fonctionne maintenant parce que phpSniff utilise (entre autres) $HTTP_SERVER_VARS['HTTP_USER_AGENT'] qui, elle, est bien positionnée.

    Si quelqu'un peut m'expliquer pourquoi c'est différent selon les serveurs, j'apprécierais beaucoup ! D'autant que cela ne va résoudre qu'une partie de mon problème, et que les autres résultats aléatoires que j'obtiens sont probablement aussi liés à des comportements de serveurs (ou de versions de PHP ?) différents... Tout au moins, je ne vois pas d'autres explications pour le moment.
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  12. #12
    Membre éclairé Avatar de haltabush
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    726
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 726
    Points : 835
    Points
    835
    Par défaut
    Ce bug ne peut-il pas venir du firewall client plutôt que du serveur? J'avais eu a peu près le même problème, et ça venait du client.

  13. #13
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Re...

    Tiens, c'est une idée, ça... Sauf que je ne vois pas bien quoi dans le firewall pourrait avoir de tels effets ? Te souviens-tu de ce que tu avais trouvé ?

    A creuser... A vrai dire, je n'y crois pas trop, mais il ne faut rien négliger !
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

  14. #14
    Membre régulier Avatar de jibe74
    Inscrit en
    Avril 2004
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 172
    Points : 112
    Points
    112
    Par défaut
    Salut,

    Je m'aperçois que je n'avais pas cloturé ce fil

    En fait, je n'ai pas trop compris ce qui s'est passé. Devant mes difficultés à détecter le browser utilisé, j'ai fini par modifier pas mal de choses pour utiliser phpsniff qui est une classe assez complète pour faire ce genre de choses. Et du coup, tout s'est remis à fonctionner normalement, même ce qui n'avait pas de rapport avec la détection de browser... Il devait y avoir un petit bug vicieux dans mon code, qui a disparu lorsque je l'ai retravaillé pour utiliser phpsniff...
    La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi ! Albert Einstein.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'affichage sous Internet Explorer
    Par Ryuuku dans le forum Webdesign & Ergonomie
    Réponses: 4
    Dernier message: 01/01/2008, 15h08
  2. [AJAX] Exécution sous Internet Explorer (liste déroulantes liées)
    Par dream_of_australia dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/06/2007, 07h24
  3. Problème de mise en page sous Internet Explorer
    Par Tragnee dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 06/03/2007, 00h01
  4. Compatibilité de script sous Internet Explorer 7
    Par achos dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/02/2007, 12h05
  5. Problème de calque transparent sous internet explorer
    Par Fred333.ver dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/12/2005, 11h40

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