Récupérer un formulaire php sur une adresse mail

Fermé
pinkelo Messages postés 7 Date d'inscription jeudi 6 décembre 2012 Statut Membre Dernière intervention 12 février 2013 - 6 déc. 2012 à 10:18
pinkelo Messages postés 7 Date d'inscription jeudi 6 décembre 2012 Statut Membre Dernière intervention 12 février 2013 - 7 déc. 2012 à 22:23
Bonjour,

Je viens de créer un site internet qui comporte un onglet contact, voici le code html de la page contact (cette page s'affiche correctement) par contre je cherche à envoyer les réponses de ce formulaire sur ma boite mail et c'est là que ça se complique, j'ai crée sous bloc note une page php je vous met le code plus bas, les données ne s'envoient pas il doit y avoir des erreurs sur mon code php :

PAGE FORMULAIRE (code html) :

<form method="POST">
<fieldset>
<legend>Formulaire à remplir</legend>

</br>

<label>Prénom : <input type="text" name="prenom"></label>
<label>Nom : <input type="text" name="nom"></label>
<label>Téléphone : <input type="text" name="telephone"></label>

</br>
</br>
</br>
<label> Mail : <input type="text" name="mail"></label>


</br></br>

</br></br>

</br><br>

Objet de votre demande :</br>
<textarea rows="5" cols="50" name="objet"></textarea>
</br></br>

Vous nous avez connu :</br>
<input type="checkbox" checked="checked">Sur internet
<input type="checkbox">Par un flyers
<input type="checkbox">Par une carte de visite
<input type="checkbox">Dans les journaux
<input type="checkbox">Par un ami
<input type="checkbox">Autre
</br></br>

<input type="submit" value="Envoyer"><input type="reset" value="Effacer tout">
</br>

</fieldset>
</form>

</br>

VOICI LA PAGE QUI ME POSE PROBLME PAGE PHP POUR ENVOI FORMULAIRE :

<?php
$nom=$_POST['prenom'];
$nom=$_POST['nom'];
$nom=$_POST['telephone'];
$mail=$_POST['mail'];
$objet=$_POST['objet'];
$message=$_POST['message'];



$subject="$objet";
$destinataire="monmail@blabla.net";
$body="$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Votre mail a été envoyé";
} else {
echo "Une erreur s'est produite";
}
?>


MERCI DE VOTRE AIDE
A voir également:

8 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
6 déc. 2012 à 13:55
Salut,

?? pourquoi stocker les infos dans une Base de données ?? avant de les envoyer par mail

easyphp c'est un serveur local sur ton PC, si ton site est chez un hebergeur pas besoin de easyphp

PhpMyadmin n'est pas une base de données mais un outil (écrit en php) pour créer, modifier etc.. des tables de BDD

Une base de données c'est par exemple MYSQL, donc ne pas confondre la voiture et le volant.
Mais ne le prenez pas mal c'est juste pour éviter des confusions fréquentes

En réponse à ton pb:
<!--  dans la balise <form il faut action= qui appele ton script php d'envoi du mail (tu changes le nom) -->
<form name="form1" method="POST" action="page_envoi_mail.php">
<fieldset>
<legend>Formulaire à remplir</legend>
<!-- la balise de retour à la ligne c'est <br /> et pas </br> -->
<br />

<label>Prénom : <input type="text" name="prenom" value="" /></label>
<label>Nom : <input type="text" name="nom" value="" /></label>
<label>Téléphone : <input type="text" name="telephone" value="" /></label>

<br /><br /><br />

<label> Mail : <input type="text" name="mail"></label>


<br /><br /><br /><br /><br /><br /><br />



Objet de votre demande :</br>
<textarea rows="5" cols="50" name="objet"></textarea>
</br></br>

Vous nous avez connu :</br>
<!-- il faut un name aux check box avec [] c'est envoyé sous forme d'array et une value aussi -->
<input type="checkbox" name="connu[]" value="Sur internet" checked="checked" />Sur internet<br />
<input type="checkbox" name="connu[]" value="Par un flyers"  />Par un flyers<br />
<input type="checkbox" name="connu[]" value="Par une carte de visite"  />Par une carte de visite<br />
<input type="checkbox" name="connu[]" value="Dans les journaux"  />Dans les journaux<br />
<input type="checkbox" name="connu[]" value="Par un ami"  />Par un ami<br />
<input type="checkbox" name="connu[]" value="Autre"  />Autre<br />
<br /><br />

<input type="submit" value="Envoyer" />
<input type="reset" value="Effacer tout" />
<br />

</fieldset>
</form>

<br />

VOICI LA PAGE QUI ME POSE PROBLME PAGE PHP POUR ENVOI FORMULAIRE :

<?php
//ci dessous attention aux copier coller !!
/*
$nom=$_POST['prenom'];
$nom=$_POST['nom'];
$nom=$_POST['telephone'];
*/
$prenom=$_POST['prenom'];
$nom=$_POST['nom'];
$telephone=$_POST['telephone'];
$mail=$_POST['mail'];
$objet=$_POST['objet'];
//$message=$_POST['message']; //où as tu vu n champ message dans ton formulaire ?

//ci dessous tu remplaces les adresses webmaster... par celle déclarée chez ton hebergeur
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();


// ne mets pas le contenu de $objet dans le sujet ça risque d'être un peu long
//$subject="$objet";
$subjet="Mail de ".$nom." ".$prenom;
$destinataire="monmail@blabla.net";
//corps du message
$body="Message de: ".$prenom."  ".$nom."\n"; // \n = retour à la ligne dans le mail
$body.="Telephone: ".$telephone."  mail: ".$mail."\n\n";
$body.="Objet: ".$objet."\n";
//recup value des cases cochées
if(sizeof($_POST['connu'])>0){
	echo "Nous a connu via:\n";
	//on parcours l'array
	for($i=0;$i<sizeof($_POST['connu']);$i++){
		echo $_POST['connu'][$i]."\n";
	}
}

//ci dessous avait mis des variables que tu n'as pas crées avant $headers ....

if (mail($destinataire,$subject,$body,$headers)) {
echo "Votre mail a été envoyé";
} else {
echo "Une erreur s'est produite";
}
?>

1
pinkelo Messages postés 7 Date d'inscription jeudi 6 décembre 2012 Statut Membre Dernière intervention 12 février 2013
6 déc. 2012 à 21:45
Merci pour le code, je viens d'essayer j'ai ce code maintenant :

Une page HTML qui s'appelle contact 3.html avec ton code :


<form name="form1" method="POST" action="2formulairetransfert.php">
<fieldset>
<legend>Formulaire à remplir</legend>

<br />

<label>Prénom : <input type="text" name="prenom" value="" /></label><br/>
<br/><label>Nom : <input type="text" name="nom" value="" /></label>
<label>Téléphone : <input type="text" name="telephone" value="" /></label>

<br /><br /><br />

<label> Mail : <input type="text" name="mail"></label>


<br /><br /><br /><br /><br /><br /><br />



Votre demande :</br>
<textarea rows="5" cols="50" name="objet"></textarea>
</br></br>

Vous nous avez connu :</br>
<!-- il faut un name aux check box avec [] c'est envoyé sous forme d'array et une value aussi -->
<input type="checkbox" name="connu[]" value="Sur internet" checked="checked" />Sur internet
<input type="checkbox" name="connu[]" value="Par un flyers" />Par un flyers
<input type="checkbox" name="connu[]" value="Par une carte de visite" />Par une carte de visite</br>
<input type="checkbox" name="connu[]" value="Dans les journaux" />Dans les journaux
<input type="checkbox" name="connu[]" value="Par un ami" />Par un ami
<input type="checkbox" name="connu[]" value="Autre" />Autre<br />
<br /><br />

<input type="submit" value="Envoyer" />
<input type="reset" value="Effacer tout" />
<br />


ET TOUJOURS MA PAGE PHP avec ton code cette fois-ci qui donne :
ma page s'appelle : 2formulairetransfert.php, en effet j'avais copié le code php car je ne comprenais pas le lien avec mon code ça va mieux avec mes noms de variable.
Par contre quand je rentre les infos dans le formulaires et que je clique sur envoyer ça m'ouvre ma page bloc note 2formulairetransfert.php que j'ai rajouté comme tu m'as précisé dans ma page html après action.
De plus mon site n'est pas encore hébérgé car je voulais qu'il soit fini, est-ce que du coup je ne peux pas tester l'enfoi des infos du formulaire sur mon mail à cause de ça ?


<?php

$prenom=$_POST['prenom'];
$nom=$_POST['nom'];
$telephone=$_POST['telephone'];
$mail=$_POST['mail'];
$objet=$_POST['objet'];


//ci dessous tu remplaces les adresses webmaster... par celle déclarée chez ton hebergeur
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();


// ne mets pas le contenu de $objet dans le sujet ça risque d'être un peu long
//$subject="$objet";
$subjet="Mail de ".$nom." ".$prenom;
$destinataire="monmail@laposte.net";
//corps du message
$body="Message de: ".$prenom." ".$nom."\n"; // \n = retour à la ligne dans le mail
$body.="Telephone: ".$telephone." mail: ".$mail."\n\n";
$body.="Objet: ".$objet."\n";
//recup value des cases cochées
if(sizeof($_POST['connu'])>0){
echo "Nous a connu via:\n";
//on parcours l'array
for($i=0;$i<sizeof($_POST['connu']);$i++){
echo $_POST['connu'][$i]."\n";
}
}

//ci dessous avait mis des variables que tu n'as pas crées avant $headers ....

if (mail($destinataire,$subject,$body,$headers)) {
echo "Votre mail a été envoyé";
} else {
echo "Une erreur s'est produite";
}
?>
0