Envoyer données d'un formulaire vers mon adresse mail [Fermé]

Signaler
Messages postés
47
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2017
-
Messages postés
11637
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 juillet 2020
-
Bonjour,

Je suis un jeune lycéen débutant dans le codage html, et je m'exerce a coder un petit site...
Mon hébergeur est Hostinger, bien sur j'ai pris la version gratuite pour mettre en ligne mon site...
Mais j'ai un problème, je ne sais pas comment faire pour que le message qu'on a écrit dans un formulaire dans le site me soit envoyé à mon adresse mail, comme ça je peut consulter le message tranquillement chez moi.

Voici le codage html de mon formulaire que j'ai réussi a faire grâce a ce site:https://developer.mozilla.org/fr/docs/Web/Guide/HTML/Formulaires/Mon_premier_formulaire_HTML

<form action="/..." method="post">
<div>
<label for="nom">Nom :</label>
<input type="text" id="nom" />
</div>
<div>
<label for="courriel"> E-mail :</label>
<input type="email" id="courriel" />
</div>
<div>
<label for="message">Message :</label>
<textarea id="message"></textarea>
</div>

<div class="button">
<button type="submit">Envoyer votre message</button>
</div>
</form>

J'ai pas tout compris sur le site alors si quelqu'un peut me dire ce que je dois faire pour que les données entrées dans ce formulaires me soient transférées a mon adresse mail.

D'avance, merci beaucoup pour vos réponses!

Harpartapsc07

3 réponses

Messages postés
29044
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2020
2 634
Bonjour,

Premier souci.. tu n'as pas mis d'attributs "name" à tes éléments html... tu n'as mis que des ID .. hors ça ne suffira pas.

Par exemple :
<input type="text" id="nom" /> 

A remplacer par :
<input type="text" id="nom" name="nom" /> 


Une fois que tu auras corrigé ça sur tes autres éléments.. tu pourras récupérer leurs valeur (via la variable $_POST) lorsque tu cliqueras sur le bouton submit en utiliasant la syntaxe :
<?php

//xn--rcupration-b7ad des varaibles :
$nom = isset($_POST['nom']) ? $_POST['nom'] : "";
//idem pour les autres champs...



Pour finir, si ton hébergeur ne permet pas d'utiliser la fonction "mail" .. tu peux essayer d'utiliser la class phpmailer
que tu peux récupérer ici :

https://github.com/PHPMailer/PHPMailer

Puis, pour envoyer un mail (en utilisant un compte gmail par exemple) tu peux faire :
require_once('../class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail             = new PHPMailer();

$body             = file_get_contents('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "mail.yourdomain.com"; // SMTP server
$mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
                                           // 1 = errors and messages
                                           // 2 = messages only
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->SMTPSecure = "tls";                 // sets the prefix to the servier
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 587;                   // set the SMTP port for the GMAIL server
$mail->Username   = "yourusername@gmail.com";  // GMAIL username
$mail->Password   = "yourpassword";            // GMAIL password

$mail->SetFrom('name@yourdomain.com', 'First Last');

$mail->AddReplyTo("name@yourdomain.com","First Last");

$mail->Subject    = "PHPMailer Test Subject via smtp (Gmail), basic";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$address = "whoto@otherdomain.com";
$mail->AddAddress($address, "John Doe");

$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
    

1
Merci

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

CCM 57820 internautes nous ont dit merci ce mois-ci

Messages postés
47
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2017
2
Bonjour Jordane,

Merci pour ta réponse j'ai ajouté les attributs manquants comme tu m'as demandé de le faire, voila ce que ca donné:

<form action="/..." method="post">
<div>
<label for="nom">Nom :</label>
<input type="text" id="nom" name="nom" />
</div>
<div>
<label for="courriel"> E-mail :</label>
<input type="email" id="courriel" name="courriel" />
</div>
<div>
<label for="message">Message :</label>
<textarea id="message" name="message"></textarea>
</div>

<div class="button">
<button type="submit">Envoyer votre message</button>
</div>

mais je me suis rendu compte que mon hébergeur ne propose pas l'option PHP mailer dans mon option gratuite, ainsi j'ai décider d'envoyer les données du formulaire dans une base de données que je n'ai pas encore crée. Peux-tu m'expliquer comment faire et ce que je dois écrire dans <form action=??? method="post"> ?

Merci beaucoup!
Messages postés
29044
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 juillet 2020
2 634
L'option phpmailer????... tu n'as rien compris... ce n'est pas une option... C'est du code à Télécharger et à mettre sur ton site !
Messages postés
47
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2017
2
ah ok ! je me suis trompé,

alors la syntaxe

<?php

//xn--rcupration-b7ad des varaibles :
$nom = isset($_POST['nom']) ? $_POST['nom'] : "";
//

je dois la mettre ou exactement? dans mon fichier html juste en dessous du formulaie ou dans un nouveau fichier php?
Messages postés
47
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2017
2
ah ca y est j'ai compris, je créé un fichier php et j'entre le nom de ce fichier.php dans <form action="/fichier.php"
Messages postés
11637
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 juillet 2020
665
il me semble que hostinger gratuit ne permet pas de faire cela:
https://www.hostinger.fr/
Messages postés
47
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2017
2
Merci mais alors il doit y avoir un autre moyen de consulter les données non?

--
Messages postés
11637
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 juillet 2020
665
par exemple en les mettant dans une base de données
Messages postés
47
Date d'inscription
mercredi 7 décembre 2016
Statut
Membre
Dernière intervention
27 mars 2017
2
Ah ok merci beaucoup!
je vais essayer demain!

--
Messages postés
11637
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 juillet 2020
665
je pense que tu peux faire ainsi dans ton code php:
$to      = 'Harpartapsc07@gmail.com';
     		$subject = 'php sendmail';
     		$message = 'Bonjour !'."\r\n".print_r($_SESSION,true);
     		$headers = 'From: Harpartapsc07@gmail.com' . "\r\n" .
     			'Reply-To: Harpartapsc07@gmail.com' . "\r\n" .
     			'X-Mailer: PHP/' . phpversion();

     		mail($to, $subject, $message, $headers);