> Tous les forums > Forum des Webmasters
 Probleme formulaire contact PHP
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
cortobm
  Posté le 28/01/2008 @ 13:06 
Aller en bas de la page 
Petit astucien

Salut à tous,

J'ai un petit problème avec un formulaire de contact PHP, j'ai 5 champs de données que voici :

- Nom

-E-mail

-Telephone

- Titre

- Message

Et quand j'envoie un mail avec, seul le message apparait dans le mail, l'adresse mail apparait en expediteur ainsi que le titre. Mais les champs Nom et telephone n'apparaissent pas. J'ai bien essayé de modifier le code php, mais ça ne fonctionne plus ensuite.

Quelqu'un pourrait-il m'indiquer quelles lignes modifier dans le code suivant pour que dans les mails reçus, tous les champs apparaissent dans le contenu du mail avant le message, un peu de la sorte :

NOM : "donnée nom"

Adresse mail : "donnée mail"

Telephone "donnée telephone"

Message

Merci d'avance !

<?php
// Dans la ligne qui suit, remplacer webmaster@domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
$email_webmaster = "monadresse@truc.com";
// === traitement des données du formulaire ============================================================
if (isset($_POST["envoyer"])){
// le formulaire a été soumis
$etat = "erreur";
// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
// --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
if (isset($_POST["email_expediteur"])) {
$_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
}
if (isset($_POST["nom"])) {
$_POST["nom"]=trim(stripslashes($_POST["nom"]));
}
if (isset($_POST["numero_telephone"])) {
$_POST["numero_telephone"]=trim(stripslashes($_POST["numero_telephone"]));
}
if (isset($_POST["titre"])) {
$_POST["titre"]=trim(stripslashes($_POST["titre"]));
}
if (isset($_POST["message"])) {
$_POST["message"]=trim(stripslashes($_POST["message"]));
}
// --- test de la validité des champs saisis ---
if (empty($_POST["email_expediteur"])) {
// il manque l'email de l'expéditeur
$erreur="Saisissez votre adresse email...";
}
if (empty($_POST["nom"])) {
// il manque l'email de l'expéditeur
$erreur="Saisissez votre nom...";
}
elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email_expediteur"])){
// l'adresse e-mail n'est pas valide
$erreur="Votre adresse e-mail n'est pas valide...";
}
elseif (empty($_POST["message"])) {
// le message est vide
$erreur="Saisissez un message...";
}
else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
$etat="ok";
}
}
else {
// --- le formulaire n'a pas été soumis ---
$etat="attente";
}
// === fin de traitement des données du formulaire =======================================================
?>

<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
}
?>

<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<p>&nbsp;</p>
<table>
<tr><td> <span class="Style8">* : champs obligatoires pour envoyer un mail</span></td></tr></table>
<table>

<tr>
<td><div align="left"><span class="Style8">Votre Nom : *</span></div></td>
<td><input type="text" size="40" name="nom" id="nom" value="<?php
if (!empty($_POST["nom"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["nom"],ENT_QUOTES);
}
?>" /></td></tr>
<tr><td>
<div align="left">

<label for="email_expediteur"><span class="Style8">Votre Email : *</span></td>
<td> <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
}
?>" /></div></td></tr>


<tr><td>
<div align="left">

<label for="email_expediteur"><span class="Style8">Telephone :</span></td>
<td> <input type="text" size="40" name="numero_telephone" id="numero_telephone" value="<?php
if (!empty($_POST["numero_telephone"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["numero_telephone"],ENT_QUOTES);
}
?>" /></div></td></tr>


<tr><td><label for="titre">
<div align="left"><span class="Style8">Titre du message :</span></div>
</label></td>
<td><input type="text" size="40" name="titre" id="titre" value="<?php
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
}
?>" /></td></tr><br /><tr><td></td></tr>



<tr><td colspan=2><br /><div align="left"><label for="message"><span class="Style8"><span class="Style8">Message : *</div></span></label>
<br>
<textarea name="message" id="message" cols="50" rows="5"><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?></textarea>
</td>
</tr>
</table>

<p><input type="submit" name="envoyer" value="Envoyer" />
</p>
</form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$_POST["titre"],$_POST["message"],$entete)){
// mail envoyé
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
}
}
?>

Publicité
fox54270
 Posté le 29/01/2008 à 15:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

voila j'ai couriger ton code et j'ai ajouter qulque amélioration tu rocopier le code suivant et tu le nom comme tu veux mais avec l'extention .php exmple contact.php

les lignes en rouge tu les modifier avec tes donner a toi

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=strip_tags(trim($f_2));
$f_3=trim(eregi_replace("[^0-9\ +]", "", $f_3));
$f_4=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_4)));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Nom &raquo; est vide ou incomplet.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; E-mail &raquo; est vide ou incomplet.</span>";
$errf_2=1;
}else{
if(!ereg('^[-!#$%&\\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_2)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_2=1;
}
}
if(strlen($f_5)<2){
$erreur.="<li><span class='txterror'>Le champ &laquo; Message &raquo; est vide ou incomplet.</span>";
$errf_5=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:Site@Toto.fr\n";
$corps.="Nom : ".$f_1."\n";
$corps.="E-mail : ".$f_2."\n";
$corps.="Telephone : ".$f_3."\n";
$corps.="Titre : ".$f_4."\n";
$corps.="Message : ".$f_5."\n";
if(mail("toto@toto.fr", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
<!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=utf-8" />
<title>Document sans nom</title>
<style type="text/css" media="screen"><!--
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: black; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
</head>

<body>
<? if($ok_mail=="true"){ ?>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b>&nbsp;ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Nom* :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>E-mail* :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Telephone :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Titre :</span></td><td><input type='text' style='width:200 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' value='<?echo stripslashes($f_4);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Message* :</span></td><td><textarea style='width:360 <?if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' rows='6' cols='40'><?echo$f_5?></textarea></td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'>&nbsp;&nbsp;<input type="reset" border="0" value="Effacer" name="reset"/> </td>
</tr>
</table>
</form>
<? } ?>
</body>
</html>

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
199,96 €Box Android Nvidia Shield TV Pro 2019 16 Go avec télécommande à 199,96 €
Valable jusqu'au 20 Juin

Amazon fait une promotion sur l'excellente box Android Nvidia Shield TV Pro 2019 16 Go avec sa télécommande à 199,96 €. On trouve ailleurs ce pack à partir de 219 €. Compatible FullHD et 4K, vous pourrez utiliser vos applications Android, jouer et regarder des films et des séries en très haute résolution sur votre TV (compatible Kodi, Molotov, Netflix, YouTube ...). La box permet également de jouer à vos jeux PC diffusés en streaming directement avec une très faible latence.  La livraison est gratuite.


> Voir l'offre
163,53 €Tablette 10.4 pouces Samsung Galaxy Tab A7 2020 (8 coeurs, 32Go, WUXGA+, RAM 3 Go) à 163,53 € livrée
Valable jusqu'au 20 Juin

Amazon Espagne fait une promotion sur la tablette 10.4 pouces Samsung Galaxy Tab A7 2020 qui passe à 157,88 € (avec la TVA ajustée). Comptez 5,65 € pour la livraison en France soit un total de 163,53 € livrée. On la trouve ailleurs à plus de 200 €. Cette tablette possède un écran 10.4 pouces WUXGA+ (2000x1200 pixels), un processeur octa-core 2 GHz, 3 Go de RAM, un espace de stockage de 32 Go extensible par MicroSD, le WiFi, le bluetooth et tourne sous Android 10.

La tablette pourra être mise en français dès le premier démarrage et vous bénéficiez d'une garantie européenne de 2 ans. Vous pouvez utiliser votre compte Amazon France sur Amazon Espagne et il n'y a pas de douane.


> Voir l'offre
999,99 €Portable 15,6' Lenovo Legion 5 (Ryzen 5, 8Go, SSD 512Go, RTX3060) à 999,99 €
Valable jusqu'au 20 Juin

Cdiscount fait une promotion sur le PC portable Lenovo Legion 5 (15ACH6H) dédié aux joueurs qui passe à 999,99 € avec le code promo LENOVOLIVE au lieu de 1300 €. Ce PC portable très bien équipé possède un écran 15,6 pouces LED Full HD, un processeur AMD Ryzen 5 5600H, 8 Go de RAM, un SSD de 512 Go et une carte graphique GeForce RTX 3060 6 Go dédiée qui avalera tous vos jeux sans broncher. Il est fourni sans OS, mais vous pouvez facilement installer Windows 10.


> Voir l'offre

Sujets relatifs
Problème pour recevoir infos formulaire
formulaire contact
probleme formulaire php
Insérer un formulaire dans page " Contact"
Formulaire de contact html/php
Formulaire de contact
Formulaire de Contact - Referencement
Problème de formulaire html (Orange)
où placer le formulaire de contact dans DW 8
Formulaire de contact e-mail
Plus de sujets relatifs à Probleme formulaire contact PHP
 > Tous les forums > Forum Forum des Webmasters