Formulaire contact
RésoluSam -
<form enctype="multipart/form-data" method="post" action="/cgi-bin/mailer">
<div align="center">
<table width="520">
<tr>
<td width="268"><div align="center"><font color="#000000" face="Harrington"><b>Votre
adresse E-mail:</b></font></div></td>
<td width="240"><input maxlength="35" name="FROM" size="40" value=""></td>
</tr>
<tr>
<td><div align="center"><font color="#000000"></font></div></td>
<td><input maxlength="35" name="TO" size="40" value="webmaster@stevehart-news.com"></td>
</tr>
<tr>
<td width="268" valign="top"> <div align="center"><font color="#000000"><b><font face="Harrington">Vos
Commentaires, questions, (etc.) au webmaster :</font></b></font></div></td>
<td width="240"> <textarea name="COMMENTS" cols="30" rows="4"></textarea></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" value="Envoyer">
<input type="reset" value="Effacer">
</div></td>
</tr>
</table>
<input type="hidden" name="GOTOURL" value="http://stevehart-news.com/">
</div>
</form>
7 réponses
Un formulaire de contact pose problème lorsque l'envoi du message ne fonctionne pas, et la solution vise à faire transiter correctement les données pour les traiter. La solution prévoit deux pages distinctes : contact.html pour le formulaire et envoi.php qui reçoit les données, vérifie que pseudo, mail et message sont renseignés et filtre les valeurs avant d'envoyer. Le script envoie le mail au destinataire défini et peut afficher une alerte confirmant l'envoi, tout en gérant les champs vides et les éventuelles erreurs. Cette approche repose sur PHP et la fonction mail(), ce qui nécessite un serveur capable d'envoyer des courriels et peut être renforcée par des validations côté serveur.
-
Salut,
Inutile de faire des double-post, je t'ai répondu sur la discussion précédente : http://www.commentcamarche.net/forum/affich-18167222-formulaire-de-contact#p18167289
Cordialement -
Là je ne peux pas te donner le mien, j'ai eu des problèmes avec mes données persos donc je n'y ai pas encore accès, Mais !!
Je viens de fouiner le forum, et j'ai retrouvé un post auquel j'avais apporté mon aide,
voilà un formulaire de contact<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Contact</title> </head> <body> <form method="POST" action="contact.php?envoi=1"> <br> Nom : <input type="text" name="pseudo"><br /> <br>Mail : <input type="text" name="mail"><br /> <br><textarea cols="70" rows="10" name="message" onFocus="if(this.value=='Entrez ici votre message')this.value=''">Entrez ici votre message</textarea> <br> <input type="submit" value="Envoyer"/> <?php if($envoi == 1) { if(isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['message']) ) { if($_POST['pseudo'] != NULL AND $_POST['mail'] != NULL AND $_POST['message'] != NULL) { $pseudo = htmlspecialchars($_POST['pseudo']); $mail = htmlspecialchars($_POST['mail']); $message = htmlspecialchars(stripslashes($_POST['message'])); $destinataire = 'contacts@johnsoncertification.com'; $sujet = 'Un message de : '.$pseudo; $entetes = 'From: '.$mail; $contenu = $pseudo.' envoie le msg suivant: '.$message.' E-mail du destinataire : '.$mail; mail($destinataire, $sujet, $contenu, $entetes); ?> <script language="JavaScript1.2"> { alert('Votre message a bien été envoyé. Nous tâcherons d\'y répondre dans les plus brefs délais.'); } </script> <?php } else { ?> <script language="JavaScript1.2"> { alert('Tous les champs sont obligatoires. Veuillez recommencer.'); } </script> <?php } } } ?> </form> </body>
Si tu rencontres des problèmes, voici de quelle discussion il provient : https://forums.commentcamarche.net/forum/oldest/17386770-pb-de-reception-de-mail-par-formulaire
Cordialement
-
-
-
-
-
<form method="POST" action="contact.php?envoi=1">
<br> <td width="300"><div align="center">
<font color="#FFFFFF"> <strong>Your Name : </strong> </font>
<input type="text" name="pseudo"><br />
<br>
<font color="#FFFFFF"> <strong><strong>Your E-mail address: </strong> </strong> :</font>
<input type="text" name="mail"><br />
<br><textarea cols="70" rows="10" name="message" onFocus="if(this.value=='Entrez ici votre message')this.value=''">Leave your message</textarea> <br>
<input type="submit" value="Send"/>
<?php
if($envoi == 1)
{
if(isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['message']) )
{
if($_POST['pseudo'] != NULL AND $_POST['mail'] != NULL AND $_POST['message'] != NULL)
{
$pseudo = htmlspecialchars($_POST['pseudo']);
$mail = htmlspecialchars($_POST['mail']);
$message = htmlspecialchars(stripslashes($_POST['message']));
$destinataire = 'sandrine.castien@laposte.net';
$sujet = 'Un message de : '.$pseudo;
$entetes = 'From: '.$mail;
$contenu = $pseudo.' envoie le msg suivant:
'.$message.'
E-mail du destinataire : '.$mail;
mail($destinataire, $sujet, $contenu, $entetes);
?>
<script language="JavaScript1.2">
{
alert('Your message has been sent. I will answer it soon.');
}
</script>
<?php
}
else
{
?>
<script language="JavaScript1.2">
{
alert('Every parts are required. Please do it again.');
}
</script>
<?php
}
}
}
?>
</form>
-
-
Comment s'appelle ta page ?
Il faut :
* SOIT que tu la renommes en contact.php
* SOIT que tu changes la valeur de l'attribut Name de la balise Form par tapage.php?envoi=1
Cordialement -
Ok,
Bon on va essayer quelque chose
Dans ta page contact.html tu va remplacer l'ancien formulaire par ceci :<form method="POST" action="envoi.php"> <br> Your Name : <input type="text" name="pseudo"><br /> <br>Your Mail adresse: <input type="text" name="mail"><br /> <br><textarea cols="70" rows="10" name="message" onFocus="if(this.value=='Leave your message')this.value=''">Leave your message</textarea> <br> <input type="submit" value="Send"/>
Et SUR UNE AUTRE PAGE que tu vas appeler envoi.php
tu vas mettre ceci :
if(isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['message']) ) { if($_POST['pseudo'] != NULL AND $_POST['mail'] != NULL AND $_POST['message'] != NULL) { $pseudo = htmlspecialchars($_POST['pseudo']); $mail = htmlspecialchars($_POST['mail']); $message = htmlspecialchars(stripslashes($_POST['message'])); $destinataire = 'rocco@roccotheacrobat.com'; $sujet = 'Un message de : '.$pseudo; $entetes = 'From: '.$mail; $contenu = $pseudo.' envoie le msg suivant: '.$message.' E-mail du destinataire : '.$mail; mail($destinataire, $sujet, $contenu, $entetes); ?> <script language="JavaScript1.2"> { alert('Your message has been sent. I will answer it soon.'); } </script> <?php } else { ?> <script language="JavaScript1.2"> { alert('Every parts are required. Please do it again.'); } </script> <?php } }
Normalement, ça devrait être bon
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
Effectivement, je n'avais pas trop fait gaffe à ça. Mais comme je te dis, je n'ai pas mes outils pour coder, et donc je codais ici-même. Or avec NotePad++ j'ai les couleurs, et je l'aurais vu immédiatement, comme quoi ... Bref, encore désolé, c'est ma faute.
Pour la redirection, essaye de mettre ceci tout à la fin :header('loaction:contact.html');
Enfin tout à la fin non, mais juste avant le dernier?>
Cordialement -
Ok alors dans la page envoi.php rajoute ceci tout en haut, même avant le premier <?php
<html> <head> <meta http-equiv="refresh" content="2; url=http://www.roccotheacrobat.com/contact.html" /> </head> <body>
Et tout à la fin, après le dernier ?> rajoute ceci :
</body> </html>
Il redirigera l'utilisateur sur la page de contact au bout de deux secondes.
Tu pourrais donc indiquer dans l'alerte qui dit que le message a bien été envoyé, que l'utilisateur sera renvoyé vers la page de contact dans 2 secondes (ou d'accueil, mais dans ce cas il faut changer l'adresse dans le <meta> d'en haut)
Cordialement -
Impeccable !!
Encore désolé pour l'erreur d'hier soir, mais si j'avais une config normale hier, tout aurait été réglé hier ...
Bonne continuation
Cordialement
a70m