Ajouter un champ dans un formulaire php [Résolu/Fermé]

Signaler
Messages postés
9
Date d'inscription
mardi 7 juin 2011
Statut
Membre
Dernière intervention
24 juin 2011
-
 Profil bloqué -
Salut à tous,
Ca fait un certain temps que je viens sur ce site et j'y ai déja trouvé bon nombre de réponse qui m'ont facilité la vie. Aujourd'hui j'ai une question pratique...
Je débute dans le webmastering et je souhaite faire un formulaire php.
Celui que j'ai trouvé marche parfaitement (j'ai testé beaucoup de générateur qui ne fonctionnent pas) je voudrais seulement ajouter un champ téléphone...
J'ai essayé de le bidouiller mais rien n'y fait.
Si une âme charitable pouvait me dire quelles lignes de code modifier je lui en serais gré.
Voici le code php :




<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'xxx@xxx';

// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"index.html\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/

// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}

// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};

/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};

// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';


// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};

// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);

// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>




Merci beaucoup d'avance...


7 réponses

<form id="contact" method="post" action="contact.php">
<fieldset><legend>Vos coordonnées</legend>
<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
<p><label for="telephone">Tel :</label><input type="text" id="telephone" name="telephone" tabindex="1" /></p>

...
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Profil bloqué
+1 Tu avais nommé deux éléments différents par le même nom, donc un peu compliqué pour le navigateur ^^'

Salut,

C'est le code de la page qui reçoit les données du form, il nous faut la page du form, qu'on puisse y insérer ton champ.

PS je sais pas trop pourquoi tu as un code aussi long pour un form si tu débutes, mais je ne peux que te conseiller le siteduzero.com si tu veux en faire un simple, pour apprendre, que tu personnaliseras comme tu voudras.
Messages postés
9
Date d'inscription
mardi 7 juin 2011
Statut
Membre
Dernière intervention
24 juin 2011

Merci pour la rapidité de ta réponse varaldi q.
Voila le formulaire html, tu verra que j'ai déja rajouté le champ téléphone, mais quand je le test en ligne, seul nom, objet, mail et message marchent, je ne recoit rien pour le champ téléphone, pourtant je le rempli...
C'est fascinant et térriblement compliqué :)
Je vais aller faire un tour aussi sur le site que tu me conseille.
voila le code :

<form id="contact" method="post" action="contact.php">
<fieldset><legend>Vos coordonnées</legend>
<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p>
</fieldset>

<fieldset><legend>Votre message :</legend>
<p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="3" /></p>
<p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8"></textarea></p>
<p><label for="message">Téléphone :</label><textarea id="message" name="Téléphone" tabindex="5" cols="30" rows="1"></textarea></p>
</fieldset>

<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>
</form>



Merci à toi
<p><label for="message">Téléphone :</label><textarea id="message" name="Téléphone" tabindex="5" cols="30" rows="1"></textarea>

ton id tu l'as laissé à "message"...
et évite les majuscules et accents dans les balises id ou name !!
Et dans les tests...

// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$tel = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';

...
Messages postés
9
Date d'inscription
mardi 7 juin 2011
Statut
Membre
Dernière intervention
24 juin 2011

Salut à vous,
J'ai effectué les modifs que vous m'avez conseillés, mais quand je test le formulaire, ce que j'ai écris dans le champ téléphone n'apparaît pas dans le mail que je reçoit...
Effectivement j'avais fait pas mal d'erreur, merci pour les corrections, malgré ça ça ne marche pas...
Profil bloqué
Renvoies tout ton code propre du formulaire, ainsi que de la page qui reçoit ^^'

On est un peu perdus là ^^
Messages postés
9
Date d'inscription
mardi 7 juin 2011
Statut
Membre
Dernière intervention
24 juin 2011

:) OK
Alors voila mon formulaire HTML :


<!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>
</head>

<body>
<div align="center">SITE EN CONSTRUCTION
</div>
<form id="contact" method="post" action="traitement_formulaire.php">
<fieldset><legend>Vos coordonnées</legend>
<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
<p><label for="telephone">Tel :</label><input type="text" id="telephone" name="telephone" tabindex="1" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p>
</fieldset>

<fieldset><legend>Votre message :</legend>
<p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="3" /></p>
<p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8"></textarea></p>

</fieldset>

<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>
</form>
</body>
</html>


Et voila mon : traitement_formulaire.php


<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'mog.eric@gmail.com';

// copie ? (envoie une copie au visiteur)
$copie = 'oui'; // 'oui' ou 'non'

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";

// Messages d'erreur du formulaire
$message_erreur_formulaire = "Vous devez d'abord <a href=\"index.html\">envoyer le formulaire</a>.";
$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";

/*
********************************************************************************************
FIN DE LA CONFIGURATION
********************************************************************************************
*/

// on teste si le formulaire a été soumis
if (!isset($_POST['envoi']))
{
// formulaire non envoyé
echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
}
else
{
/*
* cette fonction sert à nettoyer et enregistrer un texte
*/
function Rec($text)
{
$text = trim($text); // delete white spaces after & before text
if (1 === get_magic_quotes_gpc())
{
$stripslashes = create_function('$txt', 'return stripslashes($txt);');
}
else
{
$stripslashes = create_function('$txt', 'return $txt;');
}

// magic quotes ?
$text = $stripslashes($text);
$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
$text = nl2br($text);
return $text;
};

/*
* Cette fonction sert à vérifier la syntaxe d'un email
*/
function IsEmail($email)
{
$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
return (eregi($pattern,$email)) ? true : false;
};

// formulaire envoyé, on récupère tous les champs.
$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$tel = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';


// On va vérifier les variables et l'email ...
$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré

if (($nom != '') && ($email != '') && ($objet != '') && ($message != ''))
{
// les 4 variables sont remplies, on génère puis envoie le mail
$headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";

// envoyer une copie au visiteur ?
if ($copie == 'oui')
{
$cible = $destinataire.','.$email;
}
else
{
$cible = $destinataire;
};

// Remplacement de certains caractères spéciaux
$message = str_replace("'","'",$message);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
$message = str_replace('<br>','',$message);
$message = str_replace('<br />','',$message);
$message = str_replace("<","<",$message);
$message = str_replace(">",">",$message);
$message = str_replace("&","&",$message);

// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}
else
{
echo '<p>'.$message_non_envoye.'</p>'."\n";
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>



Ce formulaire est long parceque je l'ai pris sur un site déja tout fait... Comme tu peux t'en apercevoir, je suis pas encore près à faire mes propres php :)
Profil bloqué
Lol,

tu voudrais que le tel s'affiche où ?

Car ici, tu utilises la fonction mail, mais tu ne passes pas tel en paramètre..

Au lieu de ça

$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$tel = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';

Mets ça

$nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
$tel = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
if (isset($_POST['message']) && isset($_POST['telephone']))
{
$message = $message."</br>Tel : ".$tel;
}

ça marche ?
Messages postés
9
Date d'inscription
mardi 7 juin 2011
Statut
Membre
Dernière intervention
24 juin 2011

CA MARCHE !!!!
Varaldi Q tu me sauve, je te remercie infiniment...
C'est vraiment sympa de ta part et de celle de lpz de m'avoir aidé si rapidement.
Encore merci...
Profil bloqué
de rien ^^

oublie pas résolu en haut à droite