> 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
155,99 €SSD externe portable USB 3.1 SanDisk Extreme 1 To NVME (1050 Mo/s) à 155,99 €
Valable jusqu'au 14 Mai

Amazon fait une promotion sur le SSD externe portable USB 3.1 SanDisk Extreme 1 To NVME qui passe à 155,99 € alors qu'on trouve le SSD à 200 € ailleurs. Le disque SSD SanDisk Extreme NVME Portable 1 To permet, grâce à sa connectique USB 3.1, des haute vitesse de transfert pouvant aller jusqu'à 1050 Mo/s grâce au disque NVMe qu'il contient. Sa coque robuste et certifiée IP55 (eau et poussière) protège vos données partout où vous allez. Vous ne craindrez pas de l'emporter partout avec vous grâce à sa conception robuste et résistante avec un coeur de SSD résistant aux chocs. Le logiciel SanDisk inclu SecureAccess peut crypter vos fichiers personnels. Garantie 5 ans. Interface : USB 3.1 Type A et C.


> Voir l'offre
24,99 €Souris Logitech G402 Hyperion à 24,99 €
Valable jusqu'au 14 Mai

Cdiscount propose actuellement la souris Logitech G402 Hyperion à 24,99 € alors qu'on la trouve ailleurs à partir de 40 €. Une belle réduction pour une très bonne souris filaire dédiée aux joueurs (capteur 4000 dpi, résolution ajustable, 8 boutons programmables).


> Voir l'offre
149,95 €Ecran 23,8 pouces Acer EG240YPbipx (FullHD, IPS, 1ms, 165 Hz, FreeSync) à 149,95 €
Valable jusqu'au 16 Mai

LDLC fait une promotion sur l'écran 23,8 pouces Acer EG240YPbipx qui passe à 149,95 € alors qu'on le trouve ailleurs à partir de 200 €. Cet écran dédié aux joueurs dispose d'une dalle IPS Full HD de 1920x1080 pixels. Grâce à sa compatibilité Freesync (165 Hz) et son temps de réponse rapide de 1 ms, ce moniteur Acer offre une excellente fluidité d'affichage. Interfaces : 2 x HDMI, DP (1.2), Sortie de ligne audio.


> 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