[RESOLU] comment envoyer le résultat d un chekbox par mail et dans ma messagerie

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] comment envoyer le résultat d un chekbox par mail et dans ma messagerie

Re: comment envoyer le résultat d un chekbox par mail et dans ma messagerie

par flexi2202 » 17 mai 2021, 11:00

bonjour Ryle

un tres grand merci pour ce message et cette réponse
cela est super
tu m as expliqué cela super bien
tu mérites un 10/10
le pire c est que j ai passe une nuit blanche a comprendre cela et grâce a toi en quelques minutes cela était règle
encore un grand merci
passe une bonne journée

Re: comment envoyer le résultat d un chekbox par mail et dans ma messagerie

par Ryle » 17 mai 2021, 10:07

Hello !

Quel rapport entre le fait de recevoir ou non une adresse mail et l'ajout d'une checkbox (qui en l'occurrence est un bouton radio et pas une case à cocher) ? :)

Pour envoyer un courriel, il faut utiliser la fonction mail() de php. Celle-ci attends certains paramètres précis et si tu ajoutes des paramètres pour essayer d'envoyer plus d'informations alors que la méthode n'est pas prévue pour les traiter, ça va forcément marcher beaucoup moins bien ;)
mail ( string $to , string $subject , string $message , array|string $additional_headers = [] , string $additional_params = "" )
Le premier paramètre "$to" est une chaine de caractères (string) correspondant l'adresse du destinataire du courriel. Celle-ci doit être correctement formatée (sinon le mail ne sera jamais envoyé et ça tu peux le vérifier avec php) et doit être valide (sinon le mail ne sera jamais reçu, mais ça tu ne peux pas le savoir pour le moment).
Dans ton contexte, cela devrait à mon sens toujours être ton adresse à toi et pas celle saisie par l'utilisateur, à moins que ce soit à lui que tu veuilles envoyer un mail pour lui confirmer son inscription ?

Le deuxième paramètre "$subject" est l'objet du courriel, c'est également une chaine de caractères. C'est lui qui apparait dans ton client de messagerie quand tu recois le mail. (si le mail est pour l'utilisateur, c'est un peu bizarre de lui demander de saisir lui même l'objet du mail qu'il va recevoir. Ca pourrait être une constante du genre "Inscription à la newsletter de MonSite" :))

Le troisième c'est le corps du message dans son intégralité. C'est toujours une chaine de caractères et c'est dans ce paramètre que tu dois concaténer tous les éléments que tu veux recevoir dans ton mail. Si tu utilises la variable $_POST["message"] pour l'alimenter alors tu n'auras que le contenu du champ texte correspondant.
Pour récupérer plus d'information il faut construire ce paramètre en regroupant tous les éléments que tu veux faire apparaitre dans le corps du message (message, adresse mail, case à cocher, etc.)
$message = " Salut flexi ! Un nouvel utilisateur nommé " . $_POST["name"] . " vient de s'inscrire à la newsletter avec l'adresse " . $_POST["email"] . ". Il a coché la case " . $_POST["drone"];
Les 4e et 5e paramètres sont optionnels, ils permettent d'ajouter des entêtes au mail (ça permet de définir une adresse d'expéditeur, le format du mail html ou texte brut, etc.).

comment envoyer le résultat d un chekbox par mail et dans ma messagerie

par flexi2202 » 16 mai 2021, 21:02

bonsoir a tous

j ai un formulaire qui fonctionne a merveille
lorsque je le valide je reçois bien le message , , le sujet , le nom ,
sauf l adresse l email
et tout cela s enregistre bien dans ma base de donnée compris cette fois la dresse mail
donc j ai essaye d ajouter une checkbox a mon formulaire mais du coup je ne reçois rien du résultat de cette checkbox
merci de l aide

Code : Tout sélectionner

<?php //Base de donnée if(!empty($_POST["send"])) { $name = $_POST["name"]; $email = $_POST["email"]; $subject = $_POST["subject"]; $message = $_POST["message"]; $drone = $_POST["drone"]; $connexion = mysqli_connect("localhost", "u4346", "a", "u43") or die("Erreur de connexion: " . mysqli_error($connexion)); $result = mysqli_query($connexion, "INSERT INTO contact (name, email, subject, message,drone) VALUES ('" . $name. "', '" . $email. "','" . $subject. "','" . $message. "' ,'" . $drone. "' )"); if($result){ $db_msg = "Vos informations de contact sont enregistrées avec succés."; $type_db_msg = "success"; }else{ $db_msg = "Erreur lors de la tentative d'enregistrement de contact."; $type_db_msg = "error"; } } //l'envoie du mail if(!empty($_POST["send"])) { $name = $_POST["name"]; $email = $_POST["email"]; $subject = $_POST["subject"]; $message = $_POST["message"]; $drone = $_POST["drone"]; $toEmail = "perrcom"; $mailHeaders = "From: " . $name . "<". $email .">\r\n"; if(mail($toEmail, $subject, $message,$drone, $mailHeaders)) { $mail_msg = "Vos informations de contact ont été reçues avec succés."; $type_mail_msg = "success"; }else{ $mail_msg = "Erreur lors de l'envoi de l'e-mail."; $type_mail_msg = "error"; } } ?> <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="contact.js"></script> <title>Hello, world!</title> </head> <body> <div class="container"style "max-width:50%"> <form id="form" enctype="multipart/form-data" action="formulaire.php"onsubmit="return validate()" method="post"> <h3>Formulaire de contact</h3> <div class="form-group"> <label for="name">Nom:</label> <input type="text" id="name" name="name"class="form-control" placeholder="Nom"> </div> <div class="form-group"> <label for="email">Email:</label> <input type="email" id="email" name="email"class="form-control" placeholder="Email"> </div> <div class="form-group"> <label for="subject">Sujet:</label> <input type="text" id="subject" name="subject"class="form-control" placeholder="Demande de renseignement"> </div> <div class="form-group"> <label for="message">Message:</label> <textarea name="message"class="form-control" id="message" rows="3" placeholder="Message..."></textarea> </div> <p>Select a maintenance drone:</p> <div> <input type="radio" id="huey" name="drone" value="huey" checked> <label for="huey">Huey</label> </div> <div> <input type="radio" id="dewey" name="drone" value="dewey"> <label for="dewey">Dewey</label> </div> <div> <input type="radio" id="louie" name="drone" value="louie"> <label for="louie">Louie</label> </div> <input type="submit" name="send" value="Envoyer le message"/> <div id="statusMessage"> <?php if (! empty($db_msg)) { ?> <p class='<?php echo $type_db_msg; ?>Message'><?php echo $db_msg; ?></p> <?php } ?> <?php if (! empty($mail_msg)) { ?> <p class='<?php echo $type_mail_msg; ?>Message'><?php echo $mail_msg; ?></p> <?php } ?> </div> </form> </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> </body> </html>