Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/01/2011, 21h27   #1
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Par défaut Gérer une erreur

Bonjour

Dans un petit client de messagerie, je fais :
Code :
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 :
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
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 21h47   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Sur un serveur en production, on masque les erreurs.
Tu peux donc ensuite simplement voir si $mail_cnx vaut TRUE ou FALSE.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 09h58   #3
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Oui, c'est ce que je fais:
Code :
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
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 10h05   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
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
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 17h00   #5
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
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
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 17h09   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
ajoute un @ devant

@imap_open
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 10h54   #7
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Impeccable, ça fonctionne splendide.

En plus, j'ai appris quelquechose de nouveau.

L'année commence bien.

Merci de ton aide.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 11h25   #8
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 702
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 702
Points : 3 271
Points : 3 271
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 :
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]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 13h53   #9
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
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
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 17h06   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h33.


 
 
 
 
Partenaires

Hébergement Web