Bonjour,
Voilà, sur mon site, il y a un formulaire de contact qui est traité par un fichier "traitement.php".
Je réussis bien à envoyer le message et à le récupérer dans une BDD MySOL.
Cependant, j'ai ajouté une option pour recevoir une copie de ce message sur mon courriel perso et il y a également une option pour que l'émetteur du message en reçoive une copie s'il en a fait la demande.
Mais les envois de mails ne fonctionnent pas.
Voici la partie du code php en cause :
Si vous le jugez utile, je peux vous donner le code complet de la page ainsi que celui de la page formulaire.
Merci d'avance pour votre aide.
lool
Modifié par lool_lauris (11 Feb 2012 - 22:37)
Voilà, sur mon site, il y a un formulaire de contact qui est traité par un fichier "traitement.php".
Je réussis bien à envoyer le message et à le récupérer dans une BDD MySOL.
Cependant, j'ai ajouté une option pour recevoir une copie de ce message sur mon courriel perso et il y a également une option pour que l'émetteur du message en reçoive une copie s'il en a fait la demande.
Mais les envois de mails ne fonctionnent pas.
Voici la partie du code php en cause :
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est mon adresse de courriel. Pour envoyer à plusieurs à la fois, il faut séparer les adresses par une virgule
$destinataire = 'xxxx@wanadoo.fr';
// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'
// Messages de confirmation du courriel
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du courriel a échoué, mais votre message nous est quand même bien parvenu.";
// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"formulaire_contact.php\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/
// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p><br /><br />'."\n";
}
else
{
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}
// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};
/*
* Cette fonction sert à vérifier la syntaxe d'un courriel
*/
function email($courriel)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (mb_eregi($pattern,$courriel)) ? true : false;
};
// formulaire envoyé, on récupère tous les champs.
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$courriel = (isset($_POST['courriel'])) ? Rec($_POST['courriel']) : '';
$tel = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
$vi = (isset($_POST['vi'])) ? Rec($_POST['vi']) : '';
$eleve = (isset($_POST['eleve'])) ? Rec($_POST['eleve']) : '';
$pilote = (isset($_POST['pilote'])) ? Rec($_POST['pilote']) : '';
$instructeur = (isset($_POST['instructeur'])) ? Rec($_POST['instructeur']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
// On va vérifier les variables et le courriel ...
$courriel = (email($courriel)) ? $courriel : ''; // soit le courriel est vide si erroné, soit il vaut le courriel entré
if (($prenom != '') && ($nom != '') && ($message != ''))
{
// les 3 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$prenom.''.$nom.' <'.$courriel.'>' . "\r\n";
// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$courriel;
}
else
{
$cible = $destinataire;
};
// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);
// Envoi du courriel
if (email($cible, $message, $headers))
{
echo '<p class=ok>'.$message_envoye.'</p><br /><br />'."\n";
}
else
{
echo '<fieldset><p class=erreur>'.$message_non_envoye.'</p></fieldset><br /><br />'."\n";
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="formulaire_contact.php">Retour au formulaire</a></p><br /><br />'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>
Si vous le jugez utile, je peux vous donner le code complet de la page ainsi que celui de la page formulaire.
Merci d'avance pour votre aide.
lool
Modifié par lool_lauris (11 Feb 2012 - 22:37)