Message de remerciements après soumission d'un formulaire
Résolu/Fermé
A voir également:
- Message de remerciements après soumission d'un formulaire
- Message - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Message d'absence thunderbird - Guide
- Formulaire de réclamation facebook - Guide
- Epingler un message whatsapp - Accueil - Messagerie instantanée
5 réponses
jordane45
Messages postés
38430
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 février 2025
4 735
18 janv. 2020 à 19:29
18 janv. 2020 à 19:29
Bonjour
Un simple if/else en php te suffirait pour choisir d'afficher ou non le formulaire et/ou le message de remerciement
Un simple if/else en php te suffirait pour choisir d'afficher ou non le formulaire et/ou le message de remerciement
Bonsoir jordane45,
Merci d'avoir pris le temps de me répondre.
J'avais essayé, juste avant le formulaire, d'insérer un bout de code php;
envoi étant l'id de mon bouton de soumission.
Le formulaire se cache effectivement quand j'appuis sur mon bouton (bien qu'il réaparraisse après quelques secondes, mais c'est un autre problème/sujet), mais les vérifications de mon envoi-mail.php ne sont pas faites. Le déclencheur est uniquement le clic sur le bouton.
Il va de soi que mon envoi-mail.php est correctement appelé sur ma page (sans cela je ne pourrais pas envoyer de mails ou vérifier les champs). Il est ainsi appelé, en en-tête;
Le formulaire s'ouvre ainsi ;
Et voici le genre d'input, qui grâce à envoi-mail.php, est soumis à vérification;
Je dois être complètement à côté de la plaque, mais il est vrai que je n'arrive pas à saisir comment utiliser un if/else, où dans le if, je ne dirais non pas ; quand je clique sur le bouton, mais quand le message a bien été envoyé par mon envoi-mail.php alors, etc...
Merci encore à toi et une belle soirée!
Merci d'avoir pris le temps de me répondre.
J'avais essayé, juste avant le formulaire, d'insérer un bout de code php;
<?php $DisplayForm = True; if(isset($_POST['envoi'])){ $DisplayForm = False; echo 'Message envoyé.'; } if ($DisplayForm){ ?> <!--Mon formulaire>--> <?php } ?>
envoi étant l'id de mon bouton de soumission.
Le formulaire se cache effectivement quand j'appuis sur mon bouton (bien qu'il réaparraisse après quelques secondes, mais c'est un autre problème/sujet), mais les vérifications de mon envoi-mail.php ne sont pas faites. Le déclencheur est uniquement le clic sur le bouton.
Il va de soi que mon envoi-mail.php est correctement appelé sur ma page (sans cela je ne pourrais pas envoyer de mails ou vérifier les champs). Il est ainsi appelé, en en-tête;
<?php include './PHPmailer/envoi-mail.php';?>
Le formulaire s'ouvre ainsi ;
<form id='form' method="post" action="<?=$_SERVER['PHP_SELF'];?>">
Et voici le genre d'input, qui grâce à envoi-mail.php, est soumis à vérification;
<input id="nom" type="text" name="nom" value="<?= $nom ?>" required class="validate"> <label for="nom" class="control-label">Nom</label> <span class="error"><?= $nom_error ?></span>
Je dois être complètement à côté de la plaque, mais il est vrai que je n'arrive pas à saisir comment utiliser un if/else, où dans le if, je ne dirais non pas ; quand je clique sur le bouton, mais quand le message a bien été envoyé par mon envoi-mail.php alors, etc...
Merci encore à toi et une belle soirée!
jordane45
Messages postés
38430
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 février 2025
4 735
18 janv. 2020 à 21:22
18 janv. 2020 à 21:22
Colle nous ton code complet
jordane45
Messages postés
38430
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 février 2025
4 735
18 janv. 2020 à 21:37
18 janv. 2020 à 21:37
Enfin bon.. ton code devrait ressembler à ça
A noter :
Je t'invite par ailleurs, à lire ET appliquer le contenu de ce lien pour tes codes :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Bonne soirée.
<?php //-----------------------------------------------------------// //affichage des erreurs PHP: //-----------------------------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-----------------------------------------------------------// //include du phpMailer //-----------------------------------------------------------// require_once './PHPmailer/envoi-mail.php';? //-----------------------------------------------------------// //récupération PROPRE des variables AVANT de les utiliser //-----------------------------------------------------------// $nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; $nom_error = $nom ? "" : " Vous devez indiquer votre nom "; $prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL; $prenom_error = $prenom ? "" : " Vous devez indiquer votre prenom "; //initialisation des autres variables $error = ""; $DisplayForm = true; //-----------------------------------------------------------// // Début du traitement et du formulaire //-----------------------------------------------------------// if(isset($_POST['envoi'])){ $mail = new PHPmailer(); //Ici tu traites l'envoi du mail // --- A adapter à ton script actuel ---// $mail->isSMTP(); // Paramétrer le Mailer pour utiliser SMTP $mail->Host = 'mail.votredomaine.com'; // Spécifier le serveur SMTP $mail->SMTPAuth = true; // Activer authentication SMTP $mail->Username = '***@***'; // Votre adresse email d'envoi $mail->Password = 'secret'; // Le mot de passe de cette adresse email $mail->SMTPSecure = 'ssl'; // Accepter SSL $mail->Port = 465; $mail->setFrom('***@***', 'Mailer'); // Personnaliser l'envoyeur $mail->addAddress('***@***', 'Karim User'); // Ajouter le destinataire $mail->addAddress('***@***'); $mail->addReplyTo('***@***', 'Information'); // L'adresse de réponse $mail->addCC('***@***'); $mail->addBCC('***@***'); $mail->isHTML(true); // Paramétrer le format des emails en HTML ou non $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; //envoi du mail : if(!$mail->send()) { $error .= 'Erreur, message non envoyé.'; $error .= 'Mailer Error: ' . $mail->ErrorInfo; } else { $DisplayForm = false; echo " <span>Merci ! </span>"; } } ?> <?php if($DisplayForm){ ?> <form id='form' method="post" action=""> <input id="nom" type="text" name="nom" value="<?php echo $nom ?>" required class="validate"> <label for="nom" class="control-label">Nom</label> <span class="error"><?php echo $nom_error; ?></span> <!-- Les autres champs de ton formulaire --> <input id="prenom" type="text" name="prenom" value="<?php echo $prenom ?>" required class="validate"> <label for="prenom" class="control-label">Prénom</label> <span class="error"><?php echo $prenom_error; ?></span> <input type="submit" name="envoi" value="Envoyer"> </form> <?php } ?>
A noter :
envoi étant l'id de mon bouton de soumission... pas l' ID .. mais le NAME
Je t'invite par ailleurs, à lire ET appliquer le contenu de ce lien pour tes codes :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Bonne soirée.
ReBonsoir Jordane45,
MERCI MILLE FOIS!!!
J'avais un code en effet très proche de celui que tu postes. Voici la fin telle qu'elle était avant :
J'ai viré le
et aussi tout ce qu'il y a en dessous de
pour y coller ton code ;
Et puis avant tout, j'ai déclaré LA variable qui me manquait
Et puis autour de mon formulaire, j'ai tapé exactement ton code.
J'espère que la fin que j'ai virée au profit de ton code ne posera pas de souci ? Au début de mon code j'ai un
et la partie
devait y répondre d'une certaine manière?... Mais tout cela m'échappe...
Dans tous les cas, ÉNORME MERCI! J'espère que ça aidera d'autres personnes qui comme moi étaient dans la détresse.
(Et merci pour le lien, mes posts ne le suggèrent peut-être pas d'entrée, mais j'espère avoir respecté quelques-unes de ces règles.)
Un tout bon dimanche, cordialement,
Ndrea
P.S.: Tout à fait pour le NAME et non l'ID ; la fatigue, pardon!
MERCI MILLE FOIS!!!
J'avais un code en effet très proche de celui que tu postes. Voici la fin telle qu'elle était avant :
try { $mail = new PHPMailer(true); $mail->isSMTP(); // Paramétrer le Mailer pour utiliser SMTP $mail->Host = 'mail.votredomaine.com'; // Spécifier le serveur SMTP $mail->SMTPAuth = true; // Activer authentication SMTP $mail->Username = '***@***'; // Votre adresse email d'envoi $mail->Password = 'secret'; // Le mot de passe de cette adresse email $mail->SMTPSecure = 'ssl'; // Accepter SSL $mail->Port = 465; $mail->setFrom('***@***', 'Mailer'); // Personnaliser l'envoyeur $mail->addAddress('***@***', 'Karim User'); // Ajouter le destinataire $mail->addAddress('***@***'); $mail->addReplyTo('***@***', 'Information'); // L'adresse de réponse $mail->addCC('***@***'); $mail->addBCC('***@***'); $mail->isHTML(true); // Paramétrer le format des emails en HTML ou non $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; $mail->send(); } catch (Exception $e) { echo "Message non envoyé. Mailer Error: {$mail->ErrorInfo}"; } catch (\Exception $e) { echo $e->getMessage(); } $success = "Message envoyé."; $message = $nom = $de = ''; }
J'ai viré le
try {
et aussi tout ce qu'il y a en dessous de
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
pour y coller ton code ;
if(!$mail->send()) { $error .= 'Erreur, message non envoyé.'; $error .= 'Mailer Error: ' . $mail->ErrorInfo; } else { $DisplayForm = false; echo " <span>Merci ! </span>"; }
Et puis avant tout, j'ai déclaré LA variable qui me manquait
$DisplayForm = true;.
Et puis autour de mon formulaire, j'ai tapé exactement ton code.
J'espère que la fin que j'ai virée au profit de ton code ne posera pas de souci ? Au début de mon code j'ai un
use PHPMailer\PHPMailer\Exception;
et la partie
catch (Exception $e) { echo "Message non envoyé. Mailer Error: {$mail->ErrorInfo}"; } catch (\Exception $e) { echo $e->getMessage(); }
devait y répondre d'une certaine manière?... Mais tout cela m'échappe...
Dans tous les cas, ÉNORME MERCI! J'espère que ça aidera d'autres personnes qui comme moi étaient dans la détresse.
(Et merci pour le lien, mes posts ne le suggèrent peut-être pas d'entrée, mais j'espère avoir respecté quelques-unes de ces règles.)
Un tout bon dimanche, cordialement,
Ndrea
P.S.: Tout à fait pour le NAME et non l'ID ; la fatigue, pardon!
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
Ambassadeur
1 568
18 janv. 2020 à 21:37
18 janv. 2020 à 21:37
bonjour, je pense que tu peux réaliser cela en utilisant ajax.
le formulaire sera en réalité traité par ajax, dans le navigateur. ajax contactera le php, récupérera la réponse du php, et modifiera l'affichage en conséquence.
le formulaire sera en réalité traité par ajax, dans le navigateur. ajax contactera le php, récupérera la réponse du php, et modifiera l'affichage en conséquence.
jordane45
Messages postés
38430
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 février 2025
4 735
18 janv. 2020 à 21:42
18 janv. 2020 à 21:42
Autant je mets de l'ajax partout .. autant.. pour faire ce qu'elle demande.. il n'y a clairement pas besoin.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question