Récupérer un formulaire php sur une adresse mail [Fermé]

Signaler
Messages postés
7
Date d'inscription
jeudi 6 décembre 2012
Statut
Membre
Dernière intervention
12 février 2013
-
Messages postés
7
Date d'inscription
jeudi 6 décembre 2012
Statut
Membre
Dernière intervention
12 février 2013
-
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

8 réponses

Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
886
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
7
Date d'inscription
jeudi 6 décembre 2012
Statut
Membre
Dernière intervention
12 février 2013

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";
}
?>
Messages postés
149
Date d'inscription
lundi 12 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013
4
Bonjour,

Tous d'abord, le plus simple, serais que tu stock les info que les membres t'envoie dans ton système de ticket dans une base de donnée.
Ensuite, je pense que cela peut fonctionner car, je ne vois pas ou peut être l'erreur dans ton code php.

Donc stock les info envoyées dans une base de donnée et vois si ça marche.
Messages postés
7
Date d'inscription
jeudi 6 décembre 2012
Statut
Membre
Dernière intervention
12 février 2013

Bonjour,

Merci pour votre réponse mais je suis novice je ne comprend pas ce que signifie "stocker" et système de ticket, je mettrais les informations des clients où exactement ?
Messages postés
149
Date d'inscription
lundi 12 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013
4
en faite, tu met(stock) les info que les membres t'envoie (mail, pseudo, objet ...ect)dans une base de donnée.
Ensuite tu fait une fonction qui t'envoie ce que contient ta base de donnée (seulement la base contact) dans ta boite mail.

Par exemple :

Utilisateur = rempli le formulaire et valide l'envoie.
stock les info fourni dans la basse de donnée.
Envoie à ta boite mail le contenu de la base sélectionné.
Est-ce plus claire ?
Messages postés
7
Date d'inscription
jeudi 6 décembre 2012
Statut
Membre
Dernière intervention
12 février 2013

Une base de données comme easy php ?
Messages postés
149
Date d'inscription
lundi 12 novembre 2012
Statut
Membre
Dernière intervention
30 octobre 2013
4
je te conseil plutôt PHPmyAdmin

Mais dans le fond, oui, c'est ça.
Messages postés
7
Date d'inscription
jeudi 6 décembre 2012
Statut
Membre
Dernière intervention
12 février 2013

Ok merci beaucoup, je vais installer tout ça et voir le résultat, je reviendrai pour dire si cela marche ou pas
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
886
ton site n'est pas hebergé OK, mais pour pouvoir tester et exécuter une page en .php il faut un serveur

Si tu veux tester cela en local tu peux installer wamp

et u copies tes eux fichiers dans le dossier wamp/www/

puis tu lances wamp (menu démarrer)
quand l'icone en bas à droite est vert tu cliques dessus puis sur localhost

et la tu dois retrouver ton fichier formulaire sur lequel tu vas pouvoir cliquer.

Mais pour envoyer le mail il faut utiliser le SMTP de ton FAI
donc configurer wamp, pour cela vas voir le site:

http://forum.wampserver.com/read.php?1,34947
Messages postés
7
Date d'inscription
jeudi 6 décembre 2012
Statut
Membre
Dernière intervention
12 février 2013

Je viens d'installer wamp server, je suis aller voir ton lien j'ai configurer à la bonne ligne avec mon adresse mail et j'ai aussi mis mon fichier html et mon fichier php dans www/, seulement quand je fais la manipulation de cliquer sur localhost(sur icône vert en bas en droite) j'ai ce messsage d'erreur :

Forbidden

You don't have permission to access / on this server.

Je ne comprend pas d'où vient mon erreur et pourquoi je ne peux pas acceder au serveur