Aller au contenu

Sujets conseillés

Posté (modifié)

Bonjour,

Besoin d'un petit aide svp, j'ai pris le formulaire de contact sur le hub et je voulais ajouter des champs

<?php
// Dans la ligne qui suit, remplacer webmaster_AT_domaine.tld par l'adresse email du webmaster, à laquelle les messages devront être envoyés
$email_webmaster = "dayassine_AT_gmail.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["prenom"])) {
$_POST["prenom"]=trim(stripslashes($_POST["prenom"]));
}

if (isset($_POST["societe"])) {
$_POST["societe"]=trim(stripslashes($_POST["societe"]));
}

if (isset($_POST["adresse"])) {
$_POST["adresse"]=trim(stripslashes($_POST["adresse"]));
}

if (isset($_POST["postal"])) {
$_POST["postal"]=trim(stripslashes($_POST["postal"]));
}

if (isset($_POST["tel"])) {
$_POST["tel"]=trim(stripslashes($_POST["tel"]));
}

if (isset($_POST["fax"])) {
$_POST["fax"]=trim(stripslashes($_POST["fax"]));
}

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...";
}
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 =======================================================
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Formulaire de contact</title>
</head>
<body>
<h1>Devis gratuit</h1>
<?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><label for="email_expediteur">Votre adresse e-mail *:</label><br />
<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);
}
?>" />
</p>

<p><label for="nom">Nom :</label><br />
<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);
}
?>" />
</p>

<p>
<label for="prenom">Prénom :</label>
<br />
<input type="text" size="40" name="prenom" id="prenom" value="<?php
if (!empty($_POST["prenom"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["prenom"],ENT_QUOTES);
}
?>" />
</p>

<p>
<label for="societe">Société :</label>
<br />
<input type="text" size="40" name="societe" id="societe" value="<?php
if (!empty($_POST["societe"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["societe"],ENT_QUOTES);
}
?>" />
</p>

<p><label for="adresse">Adresse :</label><br />
<textarea name="adresse" id="adresse" cols="40" rows="5"><?php
if (isset($_POST["adresse"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["adresse"],ENT_QUOTES);
}
?></textarea>
</p>

<p><label for="postal">Code postal :</label><br />
<input type="text" size="40" name="postal" id="postal" value="<?php
if (!empty($_POST["postal"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["postal"],ENT_QUOTES);
}
?>" />
</p>

<p>
<label for="tel">Téléphone :</label>
<br />
<input type="text" size="40" name="tel" id="tel" value="<?php
if (!empty($_POST["tel"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["tel"],ENT_QUOTES);
}
?>" />
</p>

<p><label for="fax">Fax :</label><br />
<input type="text" size="40" name="fax" id="postal" value="<?php
if (!empty($_POST["fax"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["fax"],ENT_QUOTES);
}
?>" />
</p>

<p><label for="message">Message (obligatoire):</label><br />
<textarea name="message" id="message" cols="40" rows="5"><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?></textarea>
</p>
<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["nom"],$_POST["prenom"],$_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";
}
}
?>
</body>
</html>

voila quand le code et je pense que l'erreur vient de la if (@mail($email_webmaster,$_POST["nom"],$_POST["prenom"],$_POST["message"],$entete))

puisque quand j'ajoute mes autres champs comme nom, prenom ... ca me donne erreur

Si quelqu'un voit d'ou vient mon probleme.

Merci

Modifié par captain_torche
Pour présenter des codes longs, il vaut mieux utiliser la balise CODEBOX (captain_torche, modérateur)
Posté (modifié)

La fonction mail(); ne prend pas autant d'arguments. C'est juste

mail('moi_AT_ego.com', 'mon sujet', 'mon message');

EDIT:Utilise les codebox la prochaine fois!

Modifié par theprogrammeur
Posté

Effectivement, tu utilises mal la fonction mail() de PHP.

Elle devrait ressembler à ça :

mail($email_webmaster,'sujet',$_POST["message"],$entete)

Les nom et prénom doivent soit être rajoutés au message, soit dans les en-têtes (pour compléter le From actuel, par exemple).

Par contre, tel qu'il est utilisé, ton formulaire n'est pas sécurisé : on peut s'en servir pour envoyer du spam.

Si tu es anglophone, je te conseille de lire cet article : Email injection

Posté

Merci pour vos conseils,

ca fait rien c'est juste un test et mieux connaitre les methodes d'utilisation.. voila j'ai testé celui la qui marche tres bien. mais je voulais juste savoir comment faire aprés l'envoi de se rédiriger vers la page d'accueil par exemple.

<?php
if($Click == 'on') { // On a donc cliqué sur "Envoyer"
$MonEmail = 'dayassine_AT_gmail.com' ;

if(trim($nom) == '') $Erreur['nom'] = 'Veuillez saisir votre nom' ;
if(trim($prenom) == '') $Erreur['prenom'] = 'Veuillez saisir votre prénom' ;
if(trim($societe) == '') $Erreur['societe'] = 'Veuillez saisir le nom de votre société' ;
if(trim($adresse) == '') $Erreur['adresse'] = 'Veuillez saisir votre adresse' ;
if(trim($postal) == '') $Erreur['postal'] = 'Veuillez saisir votre code postal' ;
if(trim($tel) == '') $Erreur['tel'] = 'Veuillez saisir votre N° de téléphone' ;
if(trim($fax) == '') $Erreur['fax'] = 'Veuillez saisir votre N° de fax' ;
if (ereg ('@', $email)) { // Vérification de l'email
$domaine = split ('@', $email, 2);
$domaine = str_replace('>', '', trim ($domaine[1]));
if (!checkdnsrr($domaine) OR $domaine == '') $Erreur["email"] = 'L\'email saisie n\'existe pas !' ;
}
else $Erreur['email'] = 'Veuillez saisir votre email correctement' ;
if(trim($commentaire) == '') $Erreur['commentaire'] = 'Veuillez saisir votre commentaire' ;

if(!isset($Erreur)) { // il n'y a pas d'erreur
$SujetEmail = "Formulaire en ligne" ; // sujet du formulaire
$MsgEmail = "Bonjour,\n" // contenu du email
."Un visiteur vient de remplir votre devis en ligne,\n"
."------------------ Contenu ------------------\n"
."Nom : ".$nom."\n"
."Prénom : ".$prenom."\n"
."Société : ".$societe."\n"
."Adresse : ".$adresse."\n"
."Code postal : ".$postal."\n"
."Téléphone : ".$tel."\n"
."Fax : ".$fax."\n"
."Email : ".$email."\n"
."Commentaire : ".$commentaire."\n"
."----------------------------------------------\n"
."" ;
$HeaderEmail = "From: ".$email."" ;
mail($MonEmail, $SujetEmail, $MsgEmail, $HeaderEmail); //envoi d'un email au client
$Confirmation= TRUE ; // création pour écrire un message de confirmation
} // fermeture de (il n'y a pas d'erreur)
} // fermture de (On a donc cliqué sur "Envoyer")
?>

<FORM ACTION="<?php echo $PHP_SELF ; ?>" METHOD="post" NAME="MonFormulaire">
<INPUT TYPE="hidden" NAME="Click" VALUE="on">
<TABLE BORDER=1 WIDTH="100%" CELLSPACING=0 CELLPADDING=1>
<?php
if($Confirmation == TRUE) { // Il y a une confirmation
echo '<TR>'
.'<TD COLSPAN=2>Le Formulaire a été envoyé avec succés...</TD>'
.'</TR>' ;
}
if($Erreur['nom'] !='') { // le champ nom est vide
echo '<TR>'
.'<TD></TD>'
.'<TD>'.$Erreur['nom'].'</TD>'
.'</TR>' ;
}
?>
<TR>
<TD>Nom* : </TD>
<TD><INPUT TYPE="text" NAME="nom" VALUE="<?php echo $nom ; ?>" SIZE="20"></TD>
</TR>
<?php
if($Erreur['prenom'] !='') { // le champ prénom est vide
echo '<TR>'
.'<TD></TD>'
.'<TD>'.$Erreur['prenom'].'</TD>'
.'</TR>' ;
}
?>
<TR>
<TD>Prénom* : </TD>
<TD><INPUT TYPE="text" NAME="prenom" VALUE="<?php echo $prenom ; ?>" SIZE="20"></TD>
</TR>
<?php
if($Erreur['email'] !='') { // le champ email est vide
echo '<TR>'
.'<TD></TD>'
.'<TD>'.$Erreur['email'].'</TD>'
.'</TR>' ;
}
?>
<TR>
<TD>Société :</TD>
<TD><input type="text" name="societe" value="<?php echo $societe ; ?>" size="20" /></TD>
</TR>
<TR>
<TD>Adresse :</TD>
<TD><textarea name="adresse" rows="5" cols="30"><?php echo $adresse ; ?></textarea></TD>
</TR>
<TR>
<TD>Code postal :</TD>
<TD><input type="text" name="postal" value="<?php echo $postal ; ?>" size="20" /></TD>
</TR>
<TR>
<TD>Tél :</TD>
<TD><input type="text" name="tel" value="<?php echo $tel ; ?>" size="20" /></TD>
</TR>
<TR>
<TD>Fax :</TD>
<TD><input type="text" name="fax" value="<?php echo $fax ; ?>" size="20" /></TD>
</TR>
<TR>
<TD>Email* : </TD>
<TD><INPUT TYPE="text" NAME="email" VALUE="<?php echo $email ; ?>" SIZE="20"></TD>
</TR>
<?php
if($Erreur['commentaire'] !='') { // le champ commentaire est vide
echo '<TR>'
.'<TD></TD>'
.'<TD>'.$Erreur['commentaire'].'</TD>'
.'</TR>' ;
}
?>
<TR>
<TD>Commentaire* : </TD>
<TD><TEXTAREA NAME="commentaire" ROWS="5" COLS="30"><?php echo $commentaire ; ?></TEXTAREA></TD>
</TR>
<TR>
<TD></TD>
<TD><INPUT TYPE="submit" VALUE="Envoyer"></TD>
</TR>
<TR>
<TD COLSPAN=2>* Champs Obligatoires</TD>
</TR>
</TABLE>
</FORM>

Merci

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...