Envoyer un mail avec un formulaire

Fermé
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021 - 4 juin 2012 à 12:54
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021 - 4 juin 2012 à 23:40
Bonjour,

ne connaissant pas cette capacité du php qui est d'envoyer un mail via un formulaire, j'ai suivi un tutoriel :

http://creer-un-site.fr

malheureusement, mon envoi ne se réalise pas :(

si vous aviez 5 petites minutes pour me dire ce qui cloche, je vous en serais vraiment reconnaissant

voici mon Formulaire :

<form action="NousContacter.php" method="POST" >
<tr><td>Nom :</td></tr>
<tr><td><input type="text" name="nom_contact"></td></tr>
<tr></tr>
<tr><td>Prénom :</td></tr>
<tr><td><input type="text" name="prenom_contact"></td></tr>
<tr></tr>
<tr><td>Mail :</td></tr>
<tr><td><input type="text" name="mail_contact"></td></tr>
<tr><td>Tel : </td></tr>
<tr><td><input type="text" name="tel_contact"></td></tr>
<tr><td>Est-ce pour un devis ?<input type="radio" name="devis_contact">Oui <input type="radio" name="devis_contact">Non </td></tr>
<tr></tr>
<tr><td>Demande de renseignement</td></tr>
<tr><td><textarea name="message_contact" rows="8" cols="50"></textarea></td></tr>
<tr></tr>
<tr><td><input type="submit" name="Envoyer" value="Envoyer"></td>
<td><input type="reset" name="Effacer" value="Effacer"></td></tr>
<tr></tr>
</form>

et mon code PHP :

<?php
if(isset($_POST["Envoyer"]))
{ $nom_contact = stripslashes($_POST["nom_contact"]);
$prenom_contact = stripslashes($_POST["prenom_contact"]);
$mail_contact = stripslashes($_POST["mail_contact"]);
$tel_contact = stripslashes($_POST["tel_contact"]);
$devis_contact = stripslashes($_POST["devis_contact"]);
$message_contact = stripslashes($_POST["message_contact"]);
$mon_e_mail = xxx@xxx.fr //e_mail de test
$mon_url = "http://url_de_mon_site.fr"; //non défini car pas encore en ligne

if(empty($nom_contact)){
echo 'Vous avez oublié votre nom. <br/>';
}

elseif(empty($prenom_contact)){
echo 'Vous avez oublié votre prénom.<br/>';
}

elseif(empty($mail_contact)){
echo 'Vous avez oublié de préciser votre adresse mail.<br/>';
}

elseif(empty($tel_contact)){
echo 'Veuillez noter votre numéro de téléphone.<br/>';
if(!preg_match(''[0-9]{10}'',$tel_contact));echo "Ce numéro de téléphone n'est pas valide.<br/>";}


elseif(empty($devis_contact)){
echo 'Veuillez préciser la raison de votre contact.<br/>';
}

else if(empty($message_contact)){
echo 'Veuillez écrire votre message.<br/>';
}
else{
// Envoie du mail
$entete = "From: " . $mail_contact . " <" . $mon_e_mail . ">\n";
$entete= "MIME-Version: 1.0";
<" . $nom_contact . ">/n";"
<" . $prenom_contact . ">/n";"
<" . $tel_contact . ">/n";
$message = . $message_contact .

if (mail($mail_contact,$mon_e_mail,$nom_contact,$prenom_contact,$tel_contact,$message_contact)){
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else {
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
//on ferme le else
}

//on ferme if(isset($_POST["Envoyer"]))
}
?>

A voir également:

9 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
Modifié par tryan44 le 4/06/2012 à 14:26
Bonjour,

Le code fonctionne très bien à l'origine. Dans votre code, vous avez oublié des guillemets
$mon_e_mail = xxx@xxx.fr

ou alors vous en ajoutez la ou il ne faut pas
<" . $nom_contact . ">/n";" 

ou vous oubliez des points virgules
$message = . $message_contact . 

vous oubliez de concaténer la variable $entete ...
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
0
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021
Modifié par Debutant en webmastering le 4/06/2012 à 16:00
effectivement, les guillements ont été oubliées lorsque j'ai réécrit les xxx@xxx.fr pour ne pas divulguer mon adresse et pour ce qui est du reste voici les modifications :

// Envoie du mail
		$entete = "From: " . $mail_contact .  < . $mon_e_mail . >\n;
		. $entete . = "MIME-Version: 1.0";
		< . $nom_contact . 	>/n;
		< . $prenom_contact . 	>/n;
		< . $tel_contact .		>/n;
		$message = . $message_contact .;

Cordialement, Debutant en webmastering
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
Modifié par tryan44 le 4/06/2012 à 16:22
Dans l'entête, c'est l'mail du correspondant par le votre.
$entete = "From: " . $mon_pseudo . " <" . $son_email . ">\n"; 
$entete .= "MIME-Version: 1.0"; 

Ensuite, $message est faux.
$message =  $message_contact ;

Dailleurs cette variable ne sert à rien puisque vous pouvez l'envoyer directement dans la fonction mail() en utilisant directement la variable $message_contact.

Pour finir, au lieu de tenter d'insérer certaines données dans l'entête, insérer les plutôt dans le message :

$message .=  " ".$message_contact."\n" ; 
$message .= "Nom : ".$nom_contact."\n"; 
$message .= "Nom : ".$prenom_contact."\n"; 
//etc


Puis dans l'envoie du mail
if (@mail($mon_email,$objet,$message,$entete)) 

Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
0
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021
4 juin 2012 à 16:39
Ah, c'est vrai que je n'ais pas exposé mes intentions quant à ce formulaire.
En fait j'ai créé un petit site pour une entreprise et ce formulaire aura pour but de les contacter donc

$entete = "From: " . $mail_contact . me semble justifié car la personne donne son mail pour que l'on puisse la recontacter mais le problème (et c'est justement ce que je n'ais pas compris dans le tutoriel c'est à quelle adresse on envoie le tout; je pensais que $entete = "From: " . $mail_contact . < . $mon_e_mail . >\n; renseignait 1èrement le mail de la personne qui écrivait ($mail_contact) et ensuite le destinataire (. $son_email .)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
Modifié par tryan44 le 4/06/2012 à 16:48
$entete = "From: " . $mon_pseudo . " <" . $son_email . ">\n";

$mon_pseudo = pseudo de l'envoyeur.
$son_email = email de la personne qui envoie.
Dans l'envoie :
if (@mail($mon_email,$lechamp1,$lechamp2,$entete))

Il faut remplacer $mon_email par $son_email.
Le code ci-dessus correspond à :
if (@mail(mail du destinataire,objet du message,message, entête))


Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
0
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021
4 juin 2012 à 17:34
non justement, c'est là que je n'ais pas dû être assez clair, en 1er lieu, j'ai
$mon_e_mail (qui sera celle de l'entreprise) et c'est justement à cette adresse que je souhaite envoyer (le formulaire sert à envoyer la demande du client à l'entreprise qui elle renverra les informations par simple boîte mail)

désolé de ne pas avoir été clair dès le début :( et j'espère que ça l'est plus maintenant
0
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
4 juin 2012 à 17:39
Donc $mon_e_mail vient en premier dans la fonction mail
if (@mail($mon_e_mail,objet du message,message, entête))
0
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021
4 juin 2012 à 19:22
tu as raison, je crois que je vais oublier cette histoire d'entête et tout mettre directement dans mon message

et encore merci pour ton aide
0
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021
Modifié par Debutant en webmastering le 4/06/2012 à 23:39
juste une question, pourquoi lorsque j'appuie sur Envoyer cela m'affiche mon code php ??

Cordialement, Debutant en webmastering
0
Debutant en webmastering Messages postés 401 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 27 janvier 2021
4 juin 2012 à 23:40
hum wamp non actif ...
0