Comment créer 1 formulaire de contact simple.

Résolu
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
bg62 Messages postés 23732 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
j'ai lu les autres problèmes relatifs au mien mais je ne suis pas satisfait c'est pourquoi vous allez m'excuser SVP de poser la même question.
N.B: je suis débutant et je travaille avec Dreamweaver CS3 (j'accepterai que vous tirez sur moi mais pas tros quand même ;) )

en fait, pour être plus précis, j'aimerais créer un formulaire de contact simple. comprenant les champs suivant: civilité, nom/prénom, adresse e-mail, sujet, message.
le message devra être envoyé à l'adresse webmaster@westtravel.biz

on m'a conseillé le tuto suivant https://a-pellegrini.developpez.com/tutoriels/php/mail/#L4

le problème c'est: quels sont les valeurs que je dois modifier dans ces codes qui me sont donnés (en clair, quel est le code final que je dois avoir et qui comprendra l'adresse e-mail de destination et du site web)

Merci d'avance.
A voir également:

9 réponses

bg62 Messages postés 23732 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
vois ici :
https://www.commentcamarche.net/faq/4516-webmaster-un-formulaire-de-contact-pour-votre-site
ou
https://www.unesourisetmoi.info/formulaire/nuls2.php
;)
0
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Merci

mais j'ai essayé avec la première réponse mais une boîte de dialogue s'affiche "Pour prévisualiser les pages contenant du code côté serveur, il vous faut un serveur d'évaluation. Voulez-vous le spécifier maintenant ?"
ça signifie quoi?
0
bg62 Messages postés 23732 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
essaie les liens que je t'ai mis ...
0
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai essayé avec le premier lien, mais une boîte de dialogue s'affiche "Pour prévisualiser les pages contenant du code côté serveur, il vous faut un serveur d'évaluation. Voulez-vous le spécifier maintenant ?"
ça signifie quoi?
0
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
voici le code que j'ai utilisé, mais une boîte de dialogue s'affiche "Pour prévisualiser les pages contenant du code côté serveur, il vous faut un serveur d'évaluation. Voulez-vous le spécifier maintenant ?"
ça signifie quoi?

<?php
//Ecrivez votre adresse e-mail entre les guillemets
$destinataire='webmaster@westtravel.biz';
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
<title>Contact</title>
<style type="text/css">
form#contact{border:2px solid red;width:70%;padding:1em}
p#msg,p#adr,p#obj{border:2px solid green;margin-right:10%;padding:10px}
p#msg textarea{border:2px solid blue;height:30em;width:80%}
p#adr input,p#obj input{border:2px solid blue}
p.bt{text-align:center}
p.bt input{border:1px red solid;width:50%}
</style>
<meta http-equiv="content-type" content="Content-type:text/html;charset=iso-8859-1">
</head>
<body style="direction: ltr;">
<h1>Contact</h1>
<?php
$Previsualiser='<p class="bt">
<input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser"></p>';
$Envoi="\n".'<p class="bt">
<input name="envoi" tabindex="4" value="Envoyer" type="submit"></p>';
if (isset($_POST['message']))
{
// La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne
$verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
//quelques remplacements pour les specialchars
$message=preg_replace('#(<|>)#', '-', $_POST['message']);
$message=str_replace('"', "'",$message);
$message=str_replace('&', 'et',$message);
$objet=preg_replace('#(<|>)#', '-', $_POST['objet']);
$objet=str_replace('"', "'",$objet);
$objet=str_replace('&', 'et',$objet);
// On assigne et/ou protège nos variables
$votremail=stripslashes(htmlentities($_POST['votremail']));
$message=stripslashes(htmlspecialchars($message));
$objet=stripslashes(htmlspecialchars($objet));
//input envoi/previsualiser
$envoi=htmlentities($_POST['envoi']);
$previsualiser=htmlentities($_POST['previsualiser']);
//on enlève les espaces
$votremail=trim($votremail);
$message=trim($message);
$objet=trim($objet);

$apercu_resultat='<p>Aperçu du résultat :</p>';

/*On vérifie si l'e mail et le message sont pleins, et on agit en fonction.
(on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/
//Si ca ne vas pas (mal rempli, mail non valide...)
if((empty($message))or(empty($objet))or(!preg_match($verif,$votremail)))
{
//les 3 champs sont vides
if(empty($votremail)and(empty($message))and(empty($objet)))
{
echo '<p>Tous les champs sont vides.</p>';
$message='';$votremail='';$objet='';$apercu_resultat='';
}
//un des champs est vide
else
{
if(!preg_match($verif,$votremail))
echo'<p>Votre adresse e-mail n\'est pas valide.</p>';
else
{
echo'<p>Il faut remplir tous les champs !</p>';
if(empty($message))
$apercu_resultat='';
}
}
}
//Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi
else
{
$domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail);
$DomaineMailExiste=checkdnsrr($domaine,'MX');
if(!$DomaineMailExiste)
echo'<p>Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.</p>';
elseif(!empty($previsualiser))
{
$apercu_resultat='<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés.
<br>Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer".<br>Prévisualisation :</p>';
$Previsualiser='';
}
elseif(!empty($envoi))
{
$objet='[SITE] : '.$objet;
$headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/plain;charset=iso-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i');
if(mail($destinataire,$objet,$message,$headers))
{
echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>';
$Envoi='';
$Previsualiser='';
}
else
echo'<p>Un problème est survenu durant l\'envoi du mail.</p>';
}
else
echo'<p>Une condition innatendue est survenue lors de l\'exécution du script.</p>';
}
echo $apercu_resultat;
}
else
{
echo '<p>Vous pouvez utiliser ce formulaire pour me contacter.</p>';
$votremail='';$message='';
}
$bas_formulaire=$Previsualiser.$Envoi;
?>
<form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
<p id='obj'><label for='objet'>Objet de votre message :<br>
<input type='text' name='objet' id='objet' tabindex='10' size='30'></label></p>

<p id="adr"><label for="mail">Votre Adresse E-mail<br>
<input name="votremail" tabindex="20" size="30" type="text" id="mail" value="<?php echo $votremail; ?>"></label></p>

<p id="msg"><label for="message">Votre message<br>
<textarea tabindex="30" rows="20" cols="120" name="message" id="message"><?php echo $message; ?></textarea>
</label></p>
<?php echo $bas_formulaire;?>
</form>
</body>
</html>
0
bg62 Messages postés 23732 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
que tu utilises du php, donc il faut le tester en ligne ;)
0
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Merci
J'ai réussi à mettre en ligne mais impossible d'envoyer un message, ça affiche "un problème est survenu durant l'envoi du mail" il doit y avoir un problème au niveau du code mais je sais pas où.
0

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

Posez votre question
9911 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   6
 
Slt, il te faut une page .html qui contienne ton formulaire puis une page en .php qui contienne un code qui va permettre d'envoyer le message soit

On appellera la page html par exemple contact.html :

 <form method="POST" action="envoi.php" id="post" name="post">
 
 ici tu place tés champ du formulaire

 </form>


Puis on va créer une page :
envoi.php
:

<?

$email = "tonmail@gmail.com";
$page = "page pour la redirection";;

// Décompose le tableau
while (list($key, $val) = each($HTTP_POST_VARS)) {
    $message .= "$key : $val\n";
}

// Envoi du mail
mail($email, "Sujet du mess", $message);

// Renvoi l'utilisateur vers une page
Header("Location: ".$page); 

?>


Dit moi si sa marche
0
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
$page = "page pour la redirection"; ? j'ai pas bien pigé
0
9911 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   6
 
"page pour la redirection" => l'adresse ver laquelle seront redirectionner les utilisateur après l'envoi du form.
0
bg62 Messages postés 23732 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
faut arrêetr de dire 'html' et de mettre du "php" !!!
deux solutions :
- https://www.commentcamarche.net/faq/4516-webmaster-un-formulaire-de-contact-pour-votre-site
- générateur(s) : https://www.unesourisetmoi.info/pages/formulaires.php
:)
0
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
sans problème sauf que ça ne marche pas. lorsqu'on envoi un message ça affiche "un problème est survenu durant l'envoi du mail"
pourquoi ce message? j'ai pourtant recopié le code tel qu'il se présente en modifiant bien sûr l'adresse e-mail
0
bg62 Messages postés 23732 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
à partir de quel lien ?
les deux donnent un code impec ;)
vérifie quand même le copier/coller ... il suffit souvent d'une seule petite erreur et hop !!!
0
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
Voici le code que j'ai utilisé, je l'ai pris à partir du 1er lien. j'ai fais du copier/coller et j'ai modifié juste l'adresse e-mail
Essaye d'envoyer un message. http://westtravel.biz/WESTTRAVEL.BIZ/envoi.php


<?php
//Ecrivez votre adresse e-mail entre les guillemets
$destinataire='webmaster@westtravel.biz';
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
<title>Contact</title>
<style type="text/css">
form#contact{border:2px solid red;width:70%;padding:1em}
p#msg,p#adr,p#obj{border:2px solid green;margin-right:10%;padding:10px}
p#msg textarea{border:2px solid blue;height:30em;width:80%}
p#adr input,p#obj input{border:2px solid blue}
p.bt{text-align:center}
p.bt input{border:1px red solid;width:50%}
</style>
<meta http-equiv="content-type" content="Content-type:text/html;charset=iso-8859-1">
</head>
<body style="direction: ltr;">
<h1>Contact</h1>
<?php
$Previsualiser='<p class="bt">
<input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser"></p>';
$Envoi="\n".'<p class="bt">
<input name="envoi" tabindex="4" value="Envoyer" type="submit"></p>';
if (isset($_POST['message']))
{
// La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne
$verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
//quelques remplacements pour les specialchars
$message=preg_replace('#(<|>)#', '-', $_POST['message']);
$message=str_replace('"', "'",$message);
$message=str_replace('&', 'et',$message);
$objet=preg_replace('#(<|>)#', '-', $_POST['objet']);
$objet=str_replace('"', "'",$objet);
$objet=str_replace('&', 'et',$objet);
// On assigne et/ou protège nos variables
$votremail=stripslashes(htmlentities($_POST['votremail']));
$message=stripslashes(htmlspecialchars($message));
$objet=stripslashes(htmlspecialchars($objet));
//input envoi/previsualiser
$envoi=htmlentities($_POST['envoi']);
$previsualiser=htmlentities($_POST['previsualiser']);
//on enlève les espaces
$votremail=trim($votremail);
$message=trim($message);
$objet=trim($objet);

$apercu_resultat='<p>Aperçu du résultat :</p>';

/*On vérifie si l'e mail et le message sont pleins, et on agit en fonction.
(on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/
//Si ca ne vas pas (mal rempli, mail non valide...)
if((empty($message))or(empty($objet))or(!preg_match($verif,$votremail)))
{
//les 3 champs sont vides
if(empty($votremail)and(empty($message))and(empty($objet)))
{
echo '<p>Tous les champs sont vides.</p>';
$message='';$votremail='';$objet='';$apercu_resultat='';
}
//un des champs est vide
else
{
if(!preg_match($verif,$votremail))
echo'<p>Votre adresse e-mail n\'est pas valide.</p>';
else
{
echo'<p>Il faut remplir tous les champs !</p>';
if(empty($message))
$apercu_resultat='';
}
}
}
//Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi
else
{
$domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail);
$DomaineMailExiste=checkdnsrr($domaine,'MX');
if(!$DomaineMailExiste)
echo'<p>Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.</p>';
elseif(!empty($previsualiser))
{
$apercu_resultat='<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés.
<br>Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer".<br>Prévisualisation :</p>';
$Previsualiser='';
}
elseif(!empty($envoi))
{
$objet='[SITE] : '.$objet;
$headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/plain;charset=iso-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i');
if(mail($destinataire,$objet,$message,$headers))
{
echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>';
$Envoi='';
$Previsualiser='';
}
else
echo'<p>Un problème est survenu durant l\'envoi du mail.</p>';
}
else
echo'<p>Une condition innatendue est survenue lors de l\'exécution du script.</p>';
}
echo $apercu_resultat;
}
else
{
echo '<p>Vous pouvez utiliser ce formulaire pour me contacter.</p>';
$votremail='';$message='';
}
$bas_formulaire=$Previsualiser.$Envoi;
?>
<form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
<p id='obj'><label for='objet'>Objet de votre message :<br>
<input type='text' name='objet' id='objet' tabindex='10' size='30'></label></p>

<p id="adr"><label for="mail">Votre Adresse E-mail<br>
<input name="votremail" tabindex="20" size="30" type="text" id="mail" value="<?php echo $votremail; ?>"></label></p>

<p id="msg"><label for="message">Votre message<br>
<textarea tabindex="30" rows="20" cols="120" name="message" id="message"><?php echo $message; ?></textarea>
</label></p>
<?php echo $bas_formulaire;?>
</form>
</body>
</html>
0
bg62 Messages postés 23732 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
essaie en mettant ceci en tout premier:
<?php
if (!isset($_SESSION))
{
session_start(); // Restaure la session précédente ou démarre ou nouvelle session
}
?> 
0
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
ça ne marche toujours pas.
0
safraxater Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
merci à vous tous pour votre aide.
0
bg62 Messages postés 23732 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
résolu ... :)
tant pieux, mais pas la peine de faire 36 forums pour ça ...
les liens et aides ici sont plus que fiables ...
bonne chance ;)
0