Page 1 sur 2
Création d'un formulaire de contact
Posté : 05 déc. 2020, 19:57
par Dobby
Bonjour tout le monde.
Je suis débutant dans le codage mais j'ai quelques petites bases en html, css, et très peu en php ou javascript... D'où ma venue ici.
J'essaye de faire un formulaire de contact. La partie html et css, ça va. Une fois qu'on arrive au php/java, ça coince. J'ai essayé plusieurs modèles sur divers sites d'entraide mais aucun ne fonctionne...
Quelqu'un pourrait donc m'aider à coder ce formulaire plus ou moins important?
Le formulaire sera insérer dans un site vitrine, responsive, d'une seule page.
J'aimerais que le formulaire ai les champs suivants:
- Nom
- N° tel
- Email
- Message
Ainsi que deux boutons:
- Envoyer
- Réinitialiser (pour vider les champs du formulaire)
Et si possible, un message lorsque:
- Le formulaire a bien été envoyé
- L'envoi a échoué
En espérant ne pas en demander trop...
Merci d'avance,
Dobby.
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 17:33
par two3d
Salut, si tu veux pas t'embêter, je proposes un tuto pour la création d'un formulaire de contact en pure HTML/PHP:
Formulaire de contact PHP
Et avec jQuery (librairie JavaScript) tu pourra envoyer ton formulaire sans recharger la page lors de l'envoi, en utilisant
$.post
PS: attention à ne pas confondre JAVA et JavaScript
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 19:28
par Dobby
Bonjour,
Merci pour ta réponse.
Le problème est toujours le même: lorsque j'appuie sur le bouton pour envoyer le formulaire, la page affiche le code du formulaire (
http://prntscr.com/vwyaok)
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 19:34
par or 1
quelle est l'url de la page où s'affiche le formulaire ?
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 20:18
par Dobby
Le fichier index.html se trouve dans le dossier "Site" (pas publié actuellement donc).
Etant donné que le site est d'une seule page, tout se trouve dans index.html. Mais lorsque je clique sur envoyer, ça me renvoie sur "Site/contact.php"
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 20:46
par or 1
quelle est l'url de la page où s'affiche le formulaire ?
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 20:52
par Dobby
De base, donc avant utilisation:
index.html
Une fois que je clique sur "Envoyer" ça redirige la page (comme sur le screen que j'ai précédemment montré) et la nomme contact.php (contact.php étant le nom du fichier où le code du formulaire est écrit)
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 21:19
par or 1
quelle est l'url de la page où s'affiche le formulaire ?
l'url de la page qui contient le formulaire qui permet de répondre dans cette discussion est :
https:// forum.phpfrance.com/sujets-informatiques/topic281267.html#p465101
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 21:19
par two3d
si tu utilise du PHP il faut que l'extension de ton fichier soit .php, pas .html
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 21:32
par Dobby
La page index aussi?
Et du coup, est-ce que je crée une page contact.php (pour le code du formulaire) ou est-ce que je peux directement le mettre dans index (et donc, comment si oui) ?
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 21:37
par two3d
toutes les pages qui utilisent du code PHP
après si tu veux que tu ton site affiche une URL avec index.html, fait la réécriture d'URL de index.php vers index.html, ya bcp de tutos sur internet concernant ce point
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 21:48
par Dobby
Mais du coup je ne comprends pas... (désolé! )
Si la page index doit être en php, elle ne s'affichera plus sur le navigateur, si?
Re: Création d'un formulaire de contact
Posté : 06 déc. 2020, 21:55
par two3d
si si, pas de souci
Re: Création d'un formulaire de contact
Posté : 08 déc. 2020, 16:16
par Dobby
Bonjour,
Je viens donc de réessayer.
Lorsque je clique sur "envoyer", je suis redirigé vers une page blanche intitulée: "/formcontact.php?nom=test&mail=test&numtel=test&sujet=test"
et je ne reçois aucun mail. Et ce, que le fichier soit en .php ou en .html.
Voici mes codes, peut-être aurez-vous plus facile pour m'aider...
index.html
<div class="container">
<form action="formcontact.php" method="post">
<label for="nom">Nom</label>
<input type="text" id="nom" name="nom" placeholder="Ecrivez votre nom">
<label for="mail">Email</label>
<input type="text" id="mail" name="mail" placeholder="Ecrivez votre email">
<label for="sujet">Sujet</label>
<textarea id="sujet" name="sujet" placeholder="Ecrivez votre message" style="height:200px"></textarea>
<input type="submit" value="Envoyer">
</form>
</div>
formcontact.php
<?php
$VotreAdresseMail="";//mettez ici votre adresse mail
if(isset($_POST['envoyer'])) { // si le bouton "Envoyer" est appuyé
//on vérifie que le champ mail est correctement rempli
if(empty($_POST['mail'])) {
echo "Le champ mail est vide";
} else {
//on vérifie que l'adresse est correcte
if(!preg_match("#^[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?@[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?\.[a-z]{2,}$#i",$_POST['mail'])){
echo "L'adresse mail entrée est incorrecte";
}else{
//on vérifie que le champ sujet est correctement rempli
if(empty($_POST['sujet'])) {
echo "Le champ sujet est vide";
}else{
//on vérifie que le champ message n'est pas vide
if(empty($_POST['message'])) {
echo "Le champ message est vide";
}else{
//tout est correctement renseigné, on envoi le mail
//on renseigne les entêtes de la fonction mail de PHP
$Entetes = "MIME-Version: 1.0\r\n";
$Entetes .= "Content-type: text/html; charset=UTF-8\r\n";
$Entetes .= "From: <".$_POST['mail'].">\r\n";//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
$Entetes .= "Reply-To: <".$_POST['mail'].">\r\n";
//on prépare les champs:
$Mail=$_POST['mail'];
$Sujet='=?UTF-8?B?'.base64_encode($_POST['sujet']).'?=';//Cet encodage (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)
$Message=htmlentities($_POST['message'],ENT_QUOTES,"UTF-8");//htmlentities() converti tous les accents en entités HTML, ENT_QUOTES Convertit en + les guillemets doubles et les guillemets simples, en entités HTML
//en fin, on envoi le mail
if(mail($VotreAdresseMail,$Sujet,nl2br($Message),$Entetes)){//la fonction nl2br permet de conserver les sauts de ligne et la fonction base64_encode de conserver les accents dans le titre
echo "Le mail à été envoyé avec succès!";
} else {
echo "Une erreur est survenue, le mail n'a pas été envoyé";
}
}
}
}
}
}
?>
Re: Création d'un formulaire de contact
Posté : 08 déc. 2020, 18:05
par two3d
<form action="formcontact.php"> précise la m"thode (ici tu est en POST, là il y est envoyé en GET, d'où les querys dans l'URL
La CSS on s'en fout...
et ton fichier formcontact.php, c'est un peu bête de le mettre appart mais on peu faire comme ça, c'est plus chiant certes
ensuite ton champs numtel n'existe pas dans la vérification en PHP, tu l'aura null part mentionné, si tu veux le récupérer, il est contenu dans
$_POST['numtel'] (si il existe bien sûr, bien faire les vérifications des champs que renseigne l'utilisateur, ET NE JAMAIS LUI FAIRE CONFIANCE, toujours vérifier si c'est un mail, un num de tel, etc...)
Voilà, déjà en mettant la méthode post dans la balise <form> et la page formcontact sera bien traitée
Voir la DOC si besoin de plus d'infos sur les FORM:
https://developer.mozilla.org/fr/docs/W ... laire_HTML