[PHP] header() après envoi de mail
Résolu
Aidez-moi
-
avion-f16 Messages postés 19256 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19256 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, je code un script de contact mais j'ai un gros problème pour évité le spam en réactualisant la page après l'envoi du mail j'utilise header(), mais comme je le mais pas en début sa fait une erreur.
J'aimerai savoir comment faire une redirection toujours en PHP pour remplacé header().
J'aimerai savoir comment faire une redirection toujours en PHP pour remplacé header().
A voir également:
- [PHP] header() après envoi de mail
- Programmer envoi mail gmail - Guide
- Envoi mail cci - Guide
- Windows live mail - Télécharger - Mail
- Publipostage mail - Accueil - Word
- Annuler envoi mail gmail - Guide
11 réponses
Sans faire l'echo
<?php /* Vérification */ $nbErreur = 0; $erreurs = '<ul>'."\n"; if(empty($_POST['nom']) { $nbErreur++; $erreurs .= '<li>Le champ "nom" est vide</li>'."\n"; } if(empty($_POST['prenom']) { $nbErreur++; $erreurs .= '<li>Le champ "prénom" est vide</li>'."\n"; } $erreurs .= '</ul>'; if($nbErreur == 0) if(mail($my_mail, $mail_subject, $_POST['text'], 'From: '.$_POST['prenom'].'<'.$_POST['email'].'>')) { header('Location: http://www.google.fr/); die(); } else { $erreurMail = 'Une erreur s\'est produite lors de l\'envoye du mail'; } ?> Code HTML du kit graphique du haut. <?php if($nbErreur == 0) if(empty($erreurMail)) { echo 'Mail envoyé'; } else { echo $erreurMail; } else { echo 'Il y a '.$nbErreur.' erreur(s) :<br/>'."\n".$erreurs; } ?> Code HTML du kit graphique du bas.
La fonction header, tout comme session_start, peut être appelée tant qu'aucun caractères n'a été envoyé, espace compris, via un echo/print/printf ou via l'extérieur des balises PHP.
Je ne vois pas où est le problème car normalement :
- Si le message est envoyé, tu fais une redirection : pas besoin d'afficher quoi que se soit
- Si il y a une erreur, alors tu affiches la page : pas de redirection.
Je ne vois pas où est le problème car normalement :
- Si le message est envoyé, tu fais une redirection : pas besoin d'afficher quoi que se soit
- Si il y a une erreur, alors tu affiches la page : pas de redirection.
Voila le code en gros :
Donc je suis obligé d'utiliser sa :s
Que faire ?
Code HTML du kit graphique du haut. <?php // Vérification. // .... // Envoi du mail. if(mail($my_mail, $mail_subject, $_POST['text'], 'From: '.$_POST['prenom'].'<'.$_POST['email'].'>')) header('Location: http://www.google.fr/); ?> Code HTML du kit graphique du bas.
Donc je suis obligé d'utiliser sa :s
Que faire ?
Tu peux aussi faire comme ça :
<?php // Vérification. // .... // Envoi du mail. if(mail($my_mail, $mail_subject, $_POST['text'], 'From: '.$_POST['prenom'].'<'.$_POST['email'].'>')) { header('Location: http://www.google.fr/); die(); } ?> Code HTML du kit graphique du haut. Code HTML du kit graphique du bas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non car dans les vérifications, si ya une erreur sa affiche un message d'erreur et donc il faut que ce sois dans le kit graphique :S