Sur la page contact, j'ai remarqué un problème. En effet, après avoir soumi le formulaire, l'expediteur doit recevoir un accusé de réception , or il ne reçoit pas. Il n'affiche pas de message d'erreur mais l'accusé n'est pas envoyé. Pourtant il affiche comme quoi le message de confirmation a été envoyé.
A part ca, je reçois le message laissé par l'expéditeur mais les informations qu'il a rempli n'est pas envoyé.
Je pense que le problème vient de cette partie:
$son_nom = $bdd->quote($_GET["son_nom"]);
mais je n'arrive pas trouver ce qui ne va pas.
Je suis un peu perdu, vous pouvez m'aider?
<?php
if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
$etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
// On récupère les champs du formulaire, et on arrange leur mise en forme
if (isset($_POST["son_nom"])) $_POST["son_nom"]=trim(stripslashes($_POST["son_nom"])); // trim() enlève les espaces en début et fin de chaine
if (isset($_POST["son_email"])) $_POST["son_email"]=trim(stripslashes($_POST["son_email"])); // stripslashes() retire les backslashes ==> \' devient '
if (isset($_POST["son_objet"])) $_POST["son_objet"]=trim(stripslashes($_POST["son_objet"]));
if (isset($_POST["son_message"])) $_POST["son_message"]=trim(stripslashes($_POST["son_message"]));
// Après la mise en forme, on vérifie la validité des champs
if (empty($_POST["son_email"])) { // L'utilisateur n'a pas rempli le champ email
$erreur="Nous avons besoin de votre e-mail pour vous répondre...";
}
elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email"])){ // On vérifie si l'email est bien de la forme ***@*** (cf cours d'expressions régulières)
$erreur="Votre adresse e-mail n'est pas valide.";
}
elseif (empty($_POST["son_objet"])) { // L'utilisateur n'a pas rempli le champ objet
$erreur="Vous devez entrer l'objet de votre message.";
}
elseif (empty($_POST["son_message"])) { // L'utilsateur n'a écrit aucun message
$erreur="Merci de saisir un message.";
}
else { // Si tous les champs sont valides, on change l'état à ok
$etat="ok";
}
}
else { // Sinon le formulaire n'a pas été soumis
$etat="attente"; // On passe donc dans l'état attente
}
if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
echo "<span style=\"font-family:Arial\"><span style=\"color:red\">".$erreur."</span></span><br /><br />\n"; // On affiche le message correspondant à l'erreur
}
?>
<!-- Formulaire HTML qu'on affiche dans l'état attente ou erreur -->
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <!-- Les données du formulaire seront récupérée avec la méthode POST, et action correspond à la page contenant le formulaire -->
<p style="text-align:left">
<label for="son_nom">Nom </label><br /> <!-- Intitulé du champ pseudo -->
else { // Sinon l'état est ok donc on envoie le mail
$son_nom = $bdd->quote($_GET["son_nom"]);
$son_email = $bdd->quote($_GET["son_email"]);
$son_objet = $bdd->quote($_GET["son_objet"]);
$son_message = $bdd->quote($_GET["son_message"]);
$mon_email = "***@***"; // Mise en forme du message que vous recevrez
$mon_nom = "cine-seriestv.tk";
$mon_url = "http://www.cine-seriestv.tk";
$msg_pour_moi = "- Son Nom : $son_nom \n
- Son E-mail : $son_email \n
- Objet du message : $son_objet \n
- Message : \n $son_message \n\n";
// Mise en forme de l'accusé réception qu'il recevra
$accuse_pour_lui = "Bonjour $son_nom,\n
Nous venons de recevoir votre message et nous vous en remercions. Nous vous répondrons dans les plus brefs délais. Voici un rappel des informations que vous avez saisi: \n\n
- Votre E-mail : $son_email \n
- L'objet de votre message : $son_objet \n
- Votre message : \n $son_message \n\n
Merci et à bientôt sur http://www.cine-seriestv.tk !";
// Envoie du mail
$entete = "From: " . $mon_nom . " <" . $mon_email . ">\n"; // On prépare l'entête du message
if (@mail($mon_email,$son_objet,$msg_pour_moi,$entete) && @mail($son_email,$son_objet,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
echo "<p style=\"text-align:center; color: green\">Votre message a bien été envoyé, vous recevrez une confirmation par mail d'ici peu.<br /><br />\n"; // On affiche un message de confirmation
echo "<a href=\"" . $mon_url . "\">Retour</a></p>\n"; // Avec un lien de retour vers l'accueil du site
}
else { // Sinon il y a eu une erreur lors de l'envoi
echo "<p style=\"text-align:center\">Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Merci de réessayer...</a></p>\n"; // On propose un lien de retour vers le formulaire