besoin aide pour correction formulaire php - PHP - Programmation
MarshPosté le 03-01-2011 à 22:47:11
Bonjour à tous, Alors çà fait 2 mois que j'ai commencé un site pour mon frère (http://www.musiqueencoeur.com) forcément il a fallu que j'apprenne tout (html+css) Maintenant je suis sur le php car il veut un formulaire de contact (visible sur le site) seulement le probleme c'est que quand je renseigne le formulaire et que je clique sur envoyer dans ma messagerie je ne reçoit que 2 variables (objet et message). Est-ce-que quelqu'un pourrais m'aider à corriger mes erreurs sur le code ? merci d'avance. Je poste la page html en premier ensuite la page php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Bienvenue sur Joelle et Ludovic !</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" media="screen" type="text/css" title="pagedevis" href="pagedevis.css" /> </head>
<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div> </form>
</div>
</body> </html>
<?php /* ******************************************************************************************** CONFIGURATION ******************************************************************************************** */ // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule $destinataire = 'monadressemail@qqc.fr';
// 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=\"pagedevis.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; };
// 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; };
// 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="pagedevis.html">Retour au formulaire</a></p>'."\n"; }; }; // fin du if (!isset($_POST['envoi'])) ?>
Marsh Posté le 03-01-2011 à 22:47:11
Bonjour à tous,
Alors çà fait 2 mois que j'ai commencé un site pour mon frère (http://www.musiqueencoeur.com) forcément il a fallu que j'apprenne tout (html+css)
Maintenant je suis sur le php car il veut un formulaire de contact (visible sur le site) seulement le probleme c'est que quand je renseigne le formulaire et que je clique sur envoyer dans ma messagerie je ne reçoit que 2 variables (objet et message). Est-ce-que quelqu'un pourrais m'aider à corriger mes erreurs sur le code ?
merci d'avance.
Je poste la page html en premier ensuite la page php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Bienvenue sur Joelle et Ludovic !</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="pagedevis" href="pagedevis.css" />
</head>
<body>
<div id="en_tete">
<p class="element_tete1"><img src="banniere.gif" alt="bannière"></img></p>
</div>
<div id="menu">
<p class="element_menu1"><a href="index.html"><img src="acceuil.gif" alt="acceuil"></img></a></p>
<p class="element_menu1"><a href="pagephotos.html"><img src="Photos.gif" alt="photos"></img></a></p>
<p class="element_menu1"><a href="pagedevis.html"><img src="Devis.gif" alt="devis"></img></a></p>
<p class="element_menu1"><a href="pagecontact.html"><img src="Contact.gif" alt="contact"></img></a></p>
<p class="element_menu1"><a href="pageoption.html"><img src="Option.gif" alt="option"></img></a></p>
<p class="element_menu1"><a href="pagekaraoke.html"><img src="Karaoke.gif" alt="karaoké"></img></a></p>
<p class="element_menu1"><a href="pagechant.html"><img src="chant.gif" alt="chant"></img></a></p>
</div>
<div id="corps">
<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="prenom">Prénom :</label><input type="text" id="prenom" name="prenom" tabindex="2" /></p>
<p><label for="adresse">Adresse :</label><input type="text" id="adresse" name="adresse" tabindex="3" /></p>
<p><label for="code_postal">Code Postal :</label><input type="text" id="code_postal" name="code_postal" tabindex="4" /></p>
<p><label for="ville">Ville :</label><input type="text" id="ville" name="ville" tabindex="5" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="6" /></p>
<p><label for="telephone">Téléphone :</label><input type="text" id="telephone" name="telephone" tabindex="7" /></p>
</fieldset>
<fieldset><legend>Votre soirée</legend>
<p><label for="date">Date soirée :</label><input type="text" id="date" name="date" tabindex="8" /></p>
<p><label for="type_soiree">Type soirée :</label>
<select name="choix">
<option value="mariage">Mariage</option>
<option value="anniversaire">Anniversaire</option>
<option value="bapteme">Bâptème</option>
<option value="chant">Chant</option>
<option value="autre">Autre</option>
</select></p>
<p><label for="budget">Budget :</label><input type="text" id="budget" name="budget" tabindex="9" /></p>
</fieldset>
<fieldset><legend>Votre message :</legend>
<p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="10" /></p>
<p><label for="message">Message :</label><textarea id="message" name="message" tabindex="11" cols="30" rows="8"></textarea></p>
</fieldset>
<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>
</form>
</div>
</body>
</html>
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'monadressemail@qqc.fr';
// 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=\"pagedevis.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']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$adresse = (isset($_POST['adresse'])) ? Rec($_POST['adresse']) : '';
$code_postal = (isset($_POST['code_postal'])) ? Rec($_POST['code_postal']) : '';
$ville = (isset($_POST['ville'])) ? Rec($_POST['ville']) : '';
$email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
$telephone = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';
$date = (isset($_POST['date'])) ? Rec($_POST['date']) : '';
$type_soiree = (isset($_POST['type_soiree'])) ? Rec($_POST['type_soiree']) : '';
$budget = (isset($_POST['budget'])) ? Rec($_POST['budget']) : '';
$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="pagedevis.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>
Je vous remercie par avance de votre aide