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 :

Bug d'affichage des Exceptions


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 43
    Points : 38
    Points
    38
    Par défaut Bug d'affichage des Exceptions
    Bonjour à tous !

    J'ai un petit souci dans un script que je n'arrive pas à résoudre... J'ai un bloc try/catch dans un bootstrap Zend (mais le bug ne vient pas de Zend...), et lorsque j'essaye d'afficher l'erreur, ça bug :

    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
     
    Sorry lads !
     
    An error has occured.
     
    Error location
     
    O|uroramewk~msti~6i~{mne~muache2\htdocs\public\index.php
     
    Exception message
     
    No error description available
     
    Stack trace
     
    o {}ako}trace available
    En bidouillant un peu, je me suis rendu compte que le problème venait du fait que je fermais le bloc PHP avant d'afficher l'erreur comme ceci :

    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
     
    try {
        throw new Exception();
    }
    catch (Exception $e) {
     
    // Premier affichage sans fermer le bloc php
    echo nl2br($e->getMessage());
     
    ?>
     
    // CODE HTML
     
    // Deuxième affichage au milieu de code HTML
    <?php echo nl2br($e->getMessage()); ?>
     
    // CODE HTML
     
    <?php
    }
    Le premier affichage de $e->getMessage fonctionne nickel, le message apparait correctement... Par contre le deuxième foire avec une sortie du type O|uroramewk~msti~6i~{mne~muache2\htdocs\public\index.php ....

    Quelqu'un aurait-il une idée pour éviter ce bug et ne pas avoir à créer mon HTML dans des fonctions echo ?

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 121
    Points : 136
    Points
    136
    Par défaut
    Il y a peu de chance que cela vienne du HTML, il n'influence pas les caractères, sinon vois le code source et tu sauras.

    Tu nous as donné qu'un seul affichage, que veux tu qu'on en fasse ? On ne peut pas comparer.

    Sinon tes solutions sont:
    - N'afficher qu'une seule fois l'erreur, il y a peut etre un probleme si tu tente de l'afficher plusieurs fois...
    - Mettre le résultat dans une variable.

    Mais ces solutions ont peut de chance de fonctionner car ce n'est pas logique, quelque chose que tu nous as surement pas donné doit influencer sur l'encodage.
    As tu essayé avec un code html neutre ?

    Genre
    <html>
    <body>
    <?php echo nl2br($e->getMessage()); ?>
    </body>
    </html>

  3. #3
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    A mon avis, le problème vient du contenu envoyé vers le client. A partir de ce moment là le client se sert de l'encoding envoyé ou il cherche à l'autodétecter si celui-n'est pas fourni.

    Par contre, ce qui est bizarre c'est que les exceptions semblent être en anglais mais il vient en changer certains caractères.

    Si on pouvait comparer les deux messages, cela serait bien.

    De toute façon et d'une manière générale, il faut éviter au maximum de mélanger le php au sein du html. Surtout dans le cas présent avec une accolade fermante situé bien plus loin et dans un catch.

Discussions similaires

  1. Bug d'affichage des bordures de fieldset sous IE
    Par sliderman dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 11/07/2008, 20h30
  2. [Exception] affichage des exceptions dans une jsp
    Par phoebe dans le forum Struts 1
    Réponses: 8
    Dernier message: 13/02/2008, 15h31
  3. [Tomcat] Affichage des exceptions à l'écran : empêcher
    Par divail dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 30/01/2006, 21h03
  4. [Exception]Affichage des exceptions
    Par Guybrush dans le forum Général Java
    Réponses: 2
    Dernier message: 11/01/2005, 14h51

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