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>
</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>
$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";
}
?>
?? 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";
}
?>
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 />
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 ?
//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";
}
?>
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.
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 ?
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 ?
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
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";
}
?>