Jan Posté 8 Septembre 2004 Partager Posté 8 Septembre 2004 Bonjour, J'utilise la fonction mail() PHP pour permettre à mes visiteurs de m'envoyer un message depuis mon site: if (mail("moi_AT_mondomaine.com",$_POST["titre"],$_POST["message"],$entete)){ // mail envoyé echo "Message envoyé.";}else { // erreur lors de l'envoi du mail echo "Une erreur s'est produite.";} Tout marche bien à un petit détail prêt: quand une erreur se produit sur le serveur au moment de l'envoi du mail (condition else), le message d'erreur venant du serveur s'affiche avant mon message d'erreur perso "Une erreur s'est produite." Est-il possible de ne pas afficher ce message d'erreur venant du serveur? Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
AvenueDuWeb Posté 8 Septembre 2004 Partager Posté 8 Septembre 2004 Normalement en php, si tu mets "@" devant les fonctions il ne renvoie pas les erreurs, mais comme je n'utilise jamais ce subterfuge, je ne l'ai jamais essayé, donc je ne suis pas sûr à 100% mais essaye en mettant "@mail(..." ! @+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jan Posté 8 Septembre 2004 Auteur Partager Posté 8 Septembre 2004 Ca marche. Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 8 Septembre 2004 Partager Posté 8 Septembre 2004 Le @ marche très bien en production, pour quantité de fonctions. Elle empèche l'affichage des erreurs, et permet effectivement de personnaliser les erreurs. Mais tu peux aussi t'en servir pour les fonctions d'accès à la base de données, notamment. (@mysql_query, _AT_mysql_fetch_array, ...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 9 Septembre 2004 Partager Posté 9 Septembre 2004 Bonjour, A ce propos, existe-t-il une possibilité de récupérer les erreurs serveurs lors d'un envoi mail (les warning: ...), afin de les traiter ? xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 9 Septembre 2004 Partager Posté 9 Septembre 2004 Oui, dans la même optique que la fonction ci-dessus (@mail), tu peux imaginer un système comme ceci : if (! _AT_mail($to,$sujet,$body)) stock_erreur_mail(); L'arobase permet de ne pas afficher l'erreur, mais cela n'empeche pas la fonction de retourner FALSE Donc tu la met dans un 'if', et tu lances une fonction si le mail ne part pas. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jan Posté 9 Septembre 2004 Auteur Partager Posté 9 Septembre 2004 Anonymus, Je n'ai pas compris: mail() renvoie bien FALSE, mais dans quelle variable ou par quelle fonction peut-on récupérer le contenu de l'erreur renvoyée par le serveur? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 9 Septembre 2004 Partager Posté 9 Septembre 2004 par quelle fonction peut-on récupérer le contenu de l'erreur renvoyée par le serveur? Il y a deux cas possibles pour moi : 1 - Tu as une erreur de syntaxe dans ton code et dans ce cas là le serveur qui execute php mentionne l'erreur (genre tu as oublié un paramètre de la fonction) 2 - Ton code est correct mais, par exemple, le destinataire n'existe pas, et dans ce cas là un message d'erreur est envoyé à l'adresse mail que tu as mentionné dans l'entete du message (From: <toto_AT_ndd.com> ou Return-path) Ceci dit peut-être existe-t-il des moyen de récupérer tout ca... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 9 Septembre 2004 Partager Posté 9 Septembre 2004 Jan : $php_errormsg est la variable qui contient la dernière erreur php. Pour y avoir accès, il faut que la 'directive de configuration ' track_errors soit activé. Or cette directive est 'normalement' désactivée par défaut. Donc : 1/ on active cette directive, (via ini_set) 2/ on désactive le message d'erreur de la fonction (avec préfixe @ ) 3/ on récupère le message d'erreur (via la variable $php_errormsg) Ca donne : ini_set("track_errors",1);if (! _AT_mail(' Le Hub, il est top !! ')) echo "<br><b>Erreurs générées :</b><br>-->".$php_errormsg."<br><b>Fin des erreurs</b><p> "; Ce qui donne : Erreurs générées :-->mail() expects at least 3 parameters, 1 given Fin des erreurs Voilà. L'idéal étant de placer tout ceci dans un journal d'erreurs, évidement. Anonymus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jan Posté 9 Septembre 2004 Auteur Partager Posté 9 Septembre 2004 C'est clair, merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
xpatval Posté 9 Septembre 2004 Partager Posté 9 Septembre 2004 Et bien merci, ça à le mérite de fonctionner.... xpatval Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant