|
|
|
|
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().
Configuration: Windows 7 Firefox 3.5.5
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.
|
Voila le code en gros :
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.
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire. |
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.
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire. |