Programmer le formulaire de contact d'un template HTML

Résolu
franck3007 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je suis en train de créer un site internet vitrine en HTML5/CSS.
J'ai acheté un template pour ne pas avoir à commencer from scratch mais je n'arrive pas à faire fonctionner le formulaire de contact. J'ai cherché un peu partout mais je n'y arrive pas car je n'ai pas de connaissances en php.
Mon formulaire se trouve dans un fichier "contact.html" et se présente comme ça :


<div class="input-container active">
<div class="wrapper">
<h3 class="title">Contactez nous!</h3>
<input type="text" name="nom" placeholder="Nom">
<input type="text" name="mail" placeholder="E-mail">
<input type="text" name="tel" placeholder="Téléphone">
<textarea name="message" placeholder="Message"></textarea>
<button name="send">ENVOYER</button>
</div>
</div>

Je n'arrive pas à éditer le fichier php pour l'envoie ni le lien entre le fichier mon fichier contact.html et contact.php

Si quelqu'un peut m'aider,
Merci beaucoup,
A voir également:

6 réponses

Utilisateur anonyme
 
Il te faut déjà changer ce code ci :



<div class="input-container active">
<div class="wrapper">
<h3 class="title">Contactez nous!</h3>
<form method="POST" action="envoi.php">
<input type="text" name="nom" placeholder="Nom">
<input type="text" name="mail" placeholder="E-mail">
<input type="text" name="tel" placeholder="Téléphone">
<textarea name="message" placeholder="Message"></textarea>
<button name="send">ENVOYER</button>
</form>
</div>
</div>


Ensuite concernant l'envois, il te faut tout d'abord te renseigner sur le PHP (pour ici la fonction POST pour savoir l'utiliser ainsi que la fonction qui envoit des mails en PHP.

Je pourrais te donner un code tout fait mais je ne vois pas l'interêt ^^

Après si tu veux tout faire sur la même page, tu peux changer le action="".

Regarde ici : https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913099-transmettez-des-donnees-avec-les-formulaires

Et ici : http://fr.openclassrooms.com/informatique/cours/e-mail-envoyer-un-e-mail-en-php

Voilà ;)
0
franck3007 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup pour tes explications,
Je ne pense pas être loin.

Je reçois le mail mais tout est vide. J'ai essayé de changer pleins de valeurs mais sans réussite.
Voila le code de mon fichier envoi.php.
Qu'est-ce qui ne va pas ?

Je n'ai ni l'expéditeur, ni l'objet du mail mais par contre un mail avec :

de:
tel:
mail:
message:

sans rien d'autre.

<?php
$mail = 'franck@gmail.com'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "de : $_post_nom<p>tel : $_post_tel<p>mail : $_post_mail<p>message : $_post_message";
$message_html = "<html><head></head><body>de : $_post_nom<p>tel : $_post_tel<p>mail : $_post_mail<p>message : $_post_message</body></html>";
//==========

//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========

//=====Définition du sujet.
$sujet = "Formulaire de contact";
//=========

//=====Création du header de l'e-mail.
$header = "From: $_post_nom <$_post_mail>".$passage_ligne;
$header.= "Reply-to: $_post_nom <$_post_mail>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========

//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========

//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
//==========
?>

Merci beaucoup,
0
Utilisateur anonyme
 

Moi j'utilise ce code :
 

 
 $entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: <$emailadmin>\r\n";
$entete .= "Reply-To: $emailadmin\r\n";
mail(destinataire@qqchose.fr,'Titre du message' , message, $entete); 
0
franck3007 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Ça ne marche pas.
Je viens de le mettre dans mon fichier php en modifiant
$emailadmin --> $mail
destinataire@qqchose.fr --> mon mail
Titre du message --> formulaire de contact
message --> $message
$entete --> $header

mais rien ne se passe et je n'ai même pas de mail

J'ai pourtant fais cette page php avec le cours openclassroom que tu m'a envoyé.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Bonjour,

Tes variables qui récupèrent le contenu du formulaire sont mal définies dans le fichier php.

Tu dois avoir $_POST['nom'] et non pas $_post_nom
->même chose pour $_POST['tel'], $_POST['mail'] et $_POST['message'].
0
franck3007 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir,

Je viens de changer toutes mes variable comme tu me l'a dit plus haut mais :

Si j'utilise les [ ], il y a pleins d'erreur qui apparaissent sur dreamweaver et lorsque j'essaye, j'ai : message d'erreur + pas de mail

Si j'utilise les ( ), il n'y a plus d'erreur sur dreamwerver et lorsque j'essaye, jai :
Pas de message d'erreur + mail mais le mail est :

de : Array('nom')
tel : Array('tel')

mail :

message :

Ça correspond a quoi ces Array('xxx') ??
J'ai essayé de chercher sur internet et ils parlent de tableaux et de correspondance avec plusieurs occurrences.
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Je n'ai jamais utilisé Dreamwaver, je ne sais pas quel genre de message d'erreur ça te donne, mais c'est le façon de récupérer des données issues d'un formulaire de type "post". Tu peux éditer des fichiers .php avec Notepad++

Essaye cela et dis-moi si ça fonctionne.
0
franck3007 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai refait tout mon fichier php avec notepad++ mais c'est exactement la même chose.
Je ne sais pas du tout comment procéder pour recevoir le mail de ce formulaire quand les utilisateurs clic sur "ENVOYER".

Pour rappel, voila le code HTML de mon formulaire :

        <div class="input-container active">
<div class="wrapper">
<h3 class="title">Contactez nous!</h3>
<form method="POST" action="envoi.php">
<input type="text" name='nom' placeholder="Nom">
<input type="text" name='mail' placeholder="E-mail">
<input type="text" name='tel' placeholder="Téléphone">
<textarea name='message' placeholder="Message"></textarea>
<button name="send">ENVOYER</button>
</form>
</div>
</div>

Il y a t'il une erreur dans ce code ?

Ensuite, j'ai créer un fichier php : envoi.php mais ce sont les commandes que je dois écrire dans ce fichier que je n'arrive pas a correctement écrire.

Merci
0
franck3007 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
Quelqu'un aurait-il une idée pour m'aider avec ce formulaire de contact ?
Vraiment je suis coincé.

Merci beaucoup
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Je regarde ça de mon côté en testant ton code html et php et je te reviens.
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Bon, j'ai corrigé ton code. L'erreur venait du fait que tu n'avais pas mis tes variables $_POST[''] entre { } alors qu'elles étaient sur une ligne de texte. C'est pour cela que son contenu n'était pas récupéré. J'ai corrigé les erreurs, j'ai mis ton code sur un serveur et l'envoi du courriel a fonctionné (j'avais changé ton adresse courriel pour la mienne).

Voici donc ton code corrigé (seulement le fichier .php, ton html est correct).


<?php
$mail = 'franck@gmail.com'; // Déclaration de l'adresse de destination.
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
{
$passage_ligne = "\r\n";
}
else
{
$passage_ligne = "\n";
}
//=====Déclaration des messages au format texte et au format HTML.
$message_txt = "de : {$_POST['nom']}<br/>tel : {$_POST['tel']}<br/>mail : {$_POST['mail']}<br/>message : {$_POST['message']}";
$message_html = "<html><head></head><body>de : {$_POST['nom']}<p>tel : {$_POST['tel']}</p><p>mail : {$_POST['mail']}</p><p>message : {$_POST['message']}</p></body></html>";
//==========

//=====Création de la boundary
$boundary = "-----=".md5(rand());
//==========

//=====Définition du sujet.
$sujet = "Formulaire de contact";
//=========

//=====Création du header de l'e-mail.
$header = "From: {$_POST['nom']} <{$_POST['mail']}>".$passage_ligne;
$header.= "Reply-to: {$_POST['nom']} <{$_POST['mail']}>".$passage_ligne;
$header.= "MIME-Version: 1.0".$passage_ligne;
$header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
//==========

//=====Création du message.
$message = $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format texte.
$message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_txt.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary.$passage_ligne;
//=====Ajout du message au format HTML
$message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
$message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
$message.= $passage_ligne.$message_html.$passage_ligne;
//==========
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
$message.= $passage_ligne."--".$boundary."--".$passage_ligne;
//==========

//=====Envoi de l'e-mail.
mail($mail,$sujet,$message,$header);
//==========
?>
0
franck3007 Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
MERCI BEAUCOUP GrifOli !

Ca marche nikel.

Super.
0
GrifOli Messages postés 2111 Date d'inscription   Statut Membre Dernière intervention   591
 
Ça m'a fait plaisir! Mets le sujet en résolu :)
0