[RESOLU] Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

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] Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par dede1313 » 17 déc. 2023, 21:12

merci beaucoup, je vais un peu avancer maintenant en espérant que je m'en sorte. bonne soirée

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par two3d » 17 déc. 2023, 20:00

Il faut construire la page HTML et la mettre en UTF-8 pour que les accents soient pris en compte, un générateur de page HTML est disponible.

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par dede1313 » 17 déc. 2023, 19:39

dommage il y a cette erreur(Le mail � �t� envoy� avec succ�s ! dû au accents )peut être j'enlèverais les accents dans le code, à moins qu'il y a une solution ! mais je verrais plus tard.

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par dede1313 » 17 déc. 2023, 19:30

ok je n'avais pas compris les balises <?php et ?> qu'il fallait que je les place sur mon code.
en tout cas j'ai reçus ma première réponse , bon il n'y a pas grand chose mais au moins je l'ai reçus, maintenant je vais essayer de faire plus complet. merci beaucoup

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par two3d » 17 déc. 2023, 18:30

Entourer le code PHP des balise ouvrante et fermante : <?php et ?>

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par dede1313 » 17 déc. 2023, 16:42

bien en fait comme vous m'avez dit de tout mettre sur la même page j'ai cru bon de mettre entre html, je réessaie désolé
// Page : contacte.php
//mettez ici votre adresse mail
//de préférence une adresse avec le même domaine de là où, vous utilisez ce code, cela permet un envoie quasi certain jusqu'au destinataire
$votre_adresse_mail = 'mail';
// si le bouton "Envoyer" est cliqué
if(isset($_POST['envoyer'])){
//on vérifie que le champ mail est correctement rempli
if(empty($_POST['mail'])) {
echo "<p>Le champ mail est vide.</p>";
//on vérifie que l'adresse est correcte
}elseif(!preg_match("#^[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?@[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?\.[a-z]{2,}$#i", $_POST['mail'])){
echo "<p>L'adresse mail entrée est incorrecte.</p>";
//on vérifie que le champ sujet est correctement rempli
}elseif(empty($_POST['sujet'])){
echo "<p>Le champ sujet est vide.</p>";
//on vérifie que le champ message n'est pas vide
}elseif(empty($_POST['message'])){
echo "<p>Le champ message est vide.</p>";
//tout est correctement renseigné, on envoi le mail
}else{
//mail de l'utilisateur
$mail_de_lutilisateur = $_POST['mail']; 
//on renseigne les entêtes de la fonction mail de PHP
// Attention à ne pas mettre de caractère spéciaux à "nom de votre site" qui pourraient poser problème
$entetes_du_mail = [];
$entetes_du_mail[] = 'MIME-Version: 1.0';
$entetes_du_mail[] = 'Content-type: text/html; charset=UTF-8';
$entetes_du_mail[] = 'From: Nom de votre site <' . $mail_de_lutilisateur . '>';
$entetes_du_mail[] = 'Reply-To: Nom de votre site <' . $mail_de_lutilisateur . '>';
//ajoute des sauts de ligne entre chaque headers
$entetes_du_mail = implode("\r\n", $entetes_du_mail);
//base64_encode() est fait pour permettre aux informations binaires d'être manipulées par les systèmes qui ne gèrent pas correctement les 8 bits (=?UTF-8?B? est une norme afin de transmettre correctement les caractères de la chaine)
$sujet = '=?UTF-8?B?' . base64_encode($_POST['sujet']) . '?=';
//htmlentities() converti tous les accents en entités HTML, ENT_QUOTES Convertit en + les guillemets doubles et les guillemets simples, en entités HTML
$message = htmlentities($_POST['message'], ENT_QUOTES, 'UTF-8');
//ajoute des sauts de ligne HTML si l'utilisateur en a utilisé
$message = nl2br($message);
//en fin, on envoi le mail
if(mail($votre_adresse_mail, $sujet, $message, $entetes_du_mail)){
echo "<p>Le mail à été envoyé avec succès !</p>";
}else{
echo "<p>Une erreur est survenue, le mail n'a pas été envoyé.</p>";
}
}
}
<form action="contact.php" method="post">
Mail : <input type="text" name="mail">
<br>
Sujet : <input type="text" name="sujet">
<br>
Message : <textarea name="message" cols="40" rows="20"></textarea>
<br>
<input type="submit" name="envoyer" value="Envoyer">
</form>

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par two3d » 17 déc. 2023, 16:32

Je vais arrêter là, je me répète, tant pis.

Si ya que ça dans la page, ça fonctionnera pas, il faut entourer le code PHP avec <?php ici du code php ?>.

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par dede1313 » 17 déc. 2023, 16:24

// Page : contact.php
//mettez ici votre adresse mail
//de préférence une adresse avec le même domaine de là où, vous utilisez ce code, cela permet un envoie quasi certain jusqu'au destinataire
$votre_adresse_mail = '[email protected]';
// si le bouton "Envoyer" est cliqué
if(isset($_POST['envoyer'])){
//on vérifie que le champ mail est correctement rempli
if(empty($_POST['mail'])) {
echo "<p>Le champ mail est vide.</p>";
//on vérifie que l'adresse est correcte
}elseif(!preg_match("#^[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?@[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?\.[a-z]{2,}$#i", $_POST['mail'])){
echo "<p>L'adresse mail entrée est incorrecte.</p>";
//on vérifie que le champ sujet est correctement rempli
}elseif(empty($_POST['sujet'])){
echo "<p>Le champ sujet est vide.</p>";
//on vérifie que le champ message n'est pas vide
}elseif(empty($_POST['message'])){
echo "<p>Le champ message est vide.</p>";
//tout est correctement renseigné, on envoi le mail
}else{
//mail de l'utilisateur
$mail_de_lutilisateur = $_POST['mail']; 
//on renseigne les entêtes de la fonction mail de PHP
// Attention à ne pas mettre de caractère spéciaux à "nom de votre site" qui pourraient poser problème
$entetes_du_mail = [];
$entetes_du_mail[] = 'MIME-Version: 1.0';
$entetes_du_mail[] = 'Content-type: text/html; charset=UTF-8';
$entetes_du_mail[] = 'From: Nom de votre site <' . $mail_de_lutilisateur . '>';
$entetes_du_mail[] = 'Reply-To: Nom de votre site <' . $mail_de_lutilisateur . '>';
//ajoute des sauts de ligne entre chaque headers
$entetes_du_mail = implode("\r\n", $entetes_du_mail);
//base64_encode() est fait pour permettre aux informations binaires d'être manipulées par les systèmes qui ne gèrent pas correctement les 8 bits (=?UTF-8?B? est une norme afin de transmettre correctement les caractères de la chaine)
$sujet = '=?UTF-8?B?' . base64_encode($_POST['sujet']) . '?=';
//htmlentities() converti tous les accents en entités HTML, ENT_QUOTES Convertit en + les guillemets doubles et les guillemets simples, en entités HTML
$message = htmlentities($_POST['message'], ENT_QUOTES, 'UTF-8');
//ajoute des sauts de ligne HTML si l'utilisateur en a utilisé
$message = nl2br($message);
//en fin, on envoi le mail
if(mail($votre_adresse_mail, $sujet, $message, $entetes_du_mail)){
echo "<p>Le mail à été envoyé avec succès !</p>";
}else{
echo "<p>Une erreur est survenue, le mail n'a pas été envoyé.</p>";
}
}
}
<form action="contact.php" method="post">
Mail : <input type="text" name="mail">
<br>
Sujet : <input type="text" name="sujet">
<br>
Message : <textarea name="message" cols="40" rows="20"></textarea>
<br>
<input type="submit" name="envoyer" value="Envoyer">
</form>

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par two3d » 17 déc. 2023, 16:17

Collez TOUT le code de la page ici.

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par dede1313 » 17 déc. 2023, 16:07

j'ai tout mis entre<body> et</body> le résultat sur la page web c'est qu'on voit tout ce qui n'est pas censé être vu(je voulais envoyer une copie d'écran, mais je ne vois pas où faut la mètre)
mais cela ne fonctionne pas quand même.

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par two3d » 17 déc. 2023, 14:50

Vous dites : "ensuite je place la partie php avant <html> et la parte html avant </body>", mettez toute votre page, s'il vous plaît. Je connais le code PHP, ça ne sert à rien de me le partager à nouveau...

Un contenu se met entre les balises <body>ici</body>, pas ailleurs.

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par dede1313 » 17 déc. 2023, 14:37

sur votre script je change juste "[email protected]" par mon email,je modifie: <form action="contacte.php" method="post"> et j'appelle la page contacte. j'ai ajouté un "e" pour pas gêné dans mon site.

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par dede1313 » 17 déc. 2023, 14:22

oui je sait que c'est votre script, c'est ce que je dis depuis le début, c'est pour faire un essai avant de compléter la page mais déjà avec ce petit script cela ne fonctionne pas.
pour la mise en page je vais essayer.
// Page : contact.php
//mettez ici votre adresse mail
//de préférence une adresse avec le même domaine de là où, vous utilisez ce code, cela permet un envoie quasi certain jusqu'au destinataire
$votre_adresse_mail = '[email protected]';
// si le bouton "Envoyer" est cliqué
if(isset($_POST['envoyer'])){
//on vérifie que le champ mail est correctement rempli
if(empty($_POST['mail'])) {
echo "<p>Le champ mail est vide.</p>";
//on vérifie que l'adresse est correcte
}elseif(!preg_match("#^[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?@[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?\.[a-z]{2,}$#i", $_POST['mail'])){
echo "<p>L'adresse mail entrée est incorrecte.</p>";
//on vérifie que le champ sujet est correctement rempli
}elseif(empty($_POST['sujet'])){
echo "<p>Le champ sujet est vide.</p>";
//on vérifie que le champ message n'est pas vide
}elseif(empty($_POST['message'])){
echo "<p>Le champ message est vide.</p>";
//tout est correctement renseigné, on envoi le mail
}else{
//mail de l'utilisateur
$mail_de_lutilisateur = $_POST['mail']; 
//on renseigne les entêtes de la fonction mail de PHP
// Attention à ne pas mettre de caractère spéciaux à "nom de votre site" qui pourraient poser problème
$entetes_du_mail = [];
$entetes_du_mail[] = 'MIME-Version: 1.0';
$entetes_du_mail[] = 'Content-type: text/html; charset=UTF-8';
$entetes_du_mail[] = 'From: Nom de votre site <' . $mail_de_lutilisateur . '>';
$entetes_du_mail[] = 'Reply-To: Nom de votre site <' . $mail_de_lutilisateur . '>';
//ajoute des sauts de ligne entre chaque headers
$entetes_du_mail = implode("\r\n", $entetes_du_mail);
//base64_encode() est fait pour permettre aux informations binaires d'être manipulées par les systèmes qui ne gèrent pas correctement les 8 bits (=?UTF-8?B? est une norme afin de transmettre correctement les caractères de la chaine)
$sujet = '=?UTF-8?B?' . base64_encode($_POST['sujet']) . '?=';
//htmlentities() converti tous les accents en entités HTML, ENT_QUOTES Convertit en + les guillemets doubles et les guillemets simples, en entités HTML
$message = htmlentities($_POST['message'], ENT_QUOTES, 'UTF-8');
//ajoute des sauts de ligne HTML si l'utilisateur en a utilisé
$message = nl2br($message);
//en fin, on envoi le mail
if(mail($votre_adresse_mail, $sujet, $message, $entetes_du_mail)){
echo "<p>Le mail à été envoyé avec succès !</p>";
}else{
echo "<p>Une erreur est survenue, le mail n'a pas été envoyé.</p>";
}
}
}

<form action="contact.php" method="post">
Mail : <input type="text" name="mail">
<br>
Sujet : <input type="text" name="sujet">
<br>
Message : <textarea name="message" cols="40" rows="20"></textarea>
<br>
<input type="submit" name="envoyer" value="Envoyer">
</form>

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par two3d » 17 déc. 2023, 13:51

Je connais ce code, c2script.com est mon site, je te demande le code complet de ta page, que tu prendra soin de mettre en évidence en utilisant les balises du forum s'il te plaît (balise HTML ou PHP, comme tu veux mais pas posé à même le post sinon on à du mal à le voir et le comprendre).

Re: Je n’arrive pas à comprendre comment fonctionne un formulaire de contact

par dede1313 » 17 déc. 2023, 13:35

la partie html



<form action="contact.php" method="post">
Mail : <input type="text" name="mail">
<br>
Sujet : <input type="text" name="sujet">
<br>
Message : <textarea name="message" cols="40" rows="20"></textarea>
<br>
<input type="submit" name="envoyer" value="Envoyer">
</form>