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 :

Gérer une erreur


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut Gérer une erreur
    Bonjour

    Dans un petit client de messagerie, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mail_cnx = imap_open ("{".$ser
    qui fonctionne parfaitement sauf quand la situation de la BAL concernée n’est pas normale : fermée pour cause d’inactivité, mot de passe erroné, …

    Pour le cas où une erreur se produit, j’ai mis un message explicite.

    Mais un message d’erreur Php s’affiche aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning : imap_open() : Couldn’t open stream ….
    Ma question est-il possible d’éviter l’affichage de ce dernier message d’erreur ? Si Oui, comment ?

    Par avance merci de votre aide.

    Francois

  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
    Sur un serveur en production, on masque les erreurs.
    Tu peux donc ensuite simplement voir si $mail_cnx vaut TRUE ou FALSE.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Oui, c'est ce que je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if ($mail_cnx = imap_open ("{".$serveur_entrant.$port.$protocole.$options."}".$boite, $identifiant, $mot_de_passe) ) 
    	{
    ...
    else 
    	{
                  message d'erreur
    Mais ça n'empêche pas le message d'erreur Php de sortir.

    C'est ce que je voudrais éviter.

    Francois

  4. #4
    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
    c'est ce que je fais
    Rien dans ton code ici ne masque l'erreur mais de toute facon c'est au niveau du serveur que tu dois masquer les erreurs.
    http://fr.php.net/manual/fr/function...-reporting.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    J'ai ajouté un error_reporting(0); dans mon code mais le warning à imap_open sort toujours.

    J'ai également essayé ini_set('display_errors','Off'); mais également sans succès.

    Francois

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    ajoute un @ devant

    @imap_open

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    Impeccable, ça fonctionne splendide.

    En plus, j'ai appris quelquechose de nouveau.

    L'année commence bien.

    Merci de ton aide.

    Francois

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Ca ne me parait pas normal, et surtout pas très propre de devoir mettre un @ devant pour masquer une erreur.

    Je te conseils de prospecter un peu plus pour savoir pourquoi le ini_set('display_errors','Off') ne fonctionne pas (voir l'hébergeur au besoin).

    As tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('display_errors', 0)
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 224
    Points : 62
    Points
    62
    Par défaut
    J'avais essayé le ini_set() mais sans succès.

    Pour ce cas spécifique, j'ai des erreurs de type purement applicatif: mot de passe de la BAL erronné, BAL archivée, ...

    Dans ces conditions, ça ne me gêne pas de mettre l'@.

    L'erreur ne peut pas passer inaperçue car j'émet un message d'erreur applicatif.

    Francois

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Salut

    Ca ne me parait pas normal, et surtout pas très propre de devoir mettre un @ devant pour masquer une erreur.
    je t'avouerais que je suis pas fan non plus de se genre de pratique, on peux toujours tout convertir en exception grâce a set_error_handler couplé à ErrorException (ex 1), mais ca alourdit vite le code, le but n'etant pas de cacher une erreur mais dans prendre le contrôle avec le @ couplé a $php_errormsg

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

Discussions similaires

  1. Gérer une erreur d'encodage
    Par arkham55 dans le forum Débuter
    Réponses: 7
    Dernier message: 12/04/2010, 16h56
  2. gérer une erreur TJvDatePickerEdit (TDateTimePicker)
    Par yaniss321 dans le forum Langage
    Réponses: 0
    Dernier message: 12/01/2010, 16h28
  3. Gérer une erreur
    Par KonTiKI dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 22/02/2009, 19h14
  4. Gérer une erreur d'intégrité mysql(1451)
    Par spitou_77 dans le forum VBA Access
    Réponses: 0
    Dernier message: 29/11/2007, 09h47
  5. Réponses: 1
    Dernier message: 17/09/2006, 10h45

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