Problème traitement page contact

Fermé
an123 - Modifié par an123 le 4/04/2015 à 20:16
 an123 - 5 avril 2015 à 20:54
Bonjour,

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 -->

<input type="text" size="40" name="son_nom" id="son_nom" value="<?php

if (!empty($_POST["son_nom"])) {

// le pseudo de l'expéditeur a été saisi --> le réafficher

echo htmlspecialchars($_POST["son_nom"],ENT_QUOTES); // htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &

}

?>" />



<br />



<label for="son_email">E-mail *</label><br /> <!-- Intitulé du champ e-mail -->

<input type="text" size="40" name="son_email" id="son_email" value="<?php

if (!empty($_POST["son_email"])) {

// l'e-mail de l'expéditeur a été saisi --> le réafficher

echo htmlspecialchars($_POST["son_email"],ENT_QUOTES);

}

?>" />



<br />



<label for="son_objet">Objet *</label><br /> <!-- Intitulé du champ objet -->

<input type="text" size="40" name="son_objet" id="son_objet" value="<?php

if (!empty($_POST["son_objet"])) {

// l'objet du message a été saisi --> le réafficher

echo htmlspecialchars($_POST["son_objet"],ENT_QUOTES);

}

?>" />



<br />



<label for="son_message">Message *</label><br /> <!-- Intitulé du champ message -->

<textarea name="son_message" id="son_message" cols="50" rows="10"><?php

if (isset($_POST["son_message"])) {

// le message a été saisi --> le réafficher

echo htmlspecialchars($_POST["son_message"],ENT_QUOTES);

}

?>





</textarea>



<br />



<input type="submit" name="envoyer" value="Envoyer" /><input type="reset" name="reset" value="Effacer" />

</p>

</form>

<!-- FIN du formulaire HTML -->



<?php

}

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

$entete .='Content-Type: text/plain; charset="iso-8859-1"'."\n";

$entete .='Content-Transfer-Encoding: 8bit';



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

}

}

?>


Merci d'avance,

A voir également:

1 réponse

Il n'y a personne qui peut m'aider?
0