Salut,
si tu places le header à sa place actuelle (après "// erreur lors de l'envoi du mail ") le document html est déjà en parti envoyé donc un header à déjà été envoyé par le serveur.
le plus simple est de simplement inverser la façon de faire.
au début ça ne change pas. tu testes les données envoyées par le formulaire, si il a été soumis.
mais au lieu d'attaquer la page html il faut en premier poser ta condition
if ($etat="ok")
(tu auras remarqué que j'ai inversé l'inégalité). à l'intérieur du sandwich tu envoies le mail. si l'envoie réussit tu renvoie ailleurs avec
header().
ensuite du passe au
else et attaques la page html.
j'espère avoir été clair. il suffit juste d'organiser le code "en sens inverse" de façon à pouvoir envoyer un header avant d'avoir envoyé un quelconque caractère, c'est à dire avant d'avoir écrit quoi que ce soit en html ou d'avoir utiliser un
echo() ou tout autre commande php qui envoie du texte vers le navigateur.
[ Mathieu ]
Comprenne qui peut, succombe qui doit…