> Tous les forumsForum des Webmasters

 Probleme formulaire contact PHP
Statut du sujet : NON RESOLU Imprimer
 cortobm
  Posté le 28/01/2008 @ 13:06  
 Petit astucien

15 Messages

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";
}
}
?>

 Afficher le profil de cortobmEnvoyer un message privé à cortobm
 
 
Publicité
 fox54270  Posté le 29/01/2008 à 15:48  
Petit astucien

163 Messages

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>

Afficher le profil de fox54270Envoyer un message privé à fox54270
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Les sujets pertinents liés
Formulaire : Le mail part mais pas de message!!
[projet] site ,conseil et probleme
Probleme formulaire avec php
[Résolu] Qui peu compléter mon formulaire
Des \ indésirables....
Erreur mySQL pour l'ouverture de session
formulaire
Problème script formulaire php
problème compatibilité javascript firefox / IE
formulaire mail avec plusieurs contacts
Pb encodage pour fiche de contact
aide pour un formulaire de contact
formatage formulaire contact
afficher remerciement formulaire dans même frame
formulaire email dans site crée sous dreramweaver8
probleme avec punbb??
Formulaire Dreamweaver
 
Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !



 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page