Commentaire(s) Envoyer un email avec un formulaire
- Retour au Tutoriel : « Envoyer un email avec un formulaire »
Commentaire(s)
- #136 Commentaire de tartine posté le 19/10/10 à 09:57:14 :

-
Je trouve tes tutos super bien ecrit et très clair. Je suis une très novice en php et je suis a la recherche de ce que tu n'aborde pas justement dans ta phrase finale.
Pourrais tu me faire parvenir ce code.
je vais envoyer ce lien a tous mon entourage je le trouve très bien fait
Merci.
Ta phrase finale :
"Notez bien que ce tuto sur l'envoie d'un formulaire est juste un formulaire de base. Celui-ci ne vérifie pas si la syntaxe de l'email est correcte et ne ré-affiche pas non plus les données remplies par l'utilisateur si une erreur survient"
- #137 Commentaire de c00lman posté le 19/10/10 à 10:42:07 :

-
Bonjour et merci
,
Si on prend comme exemple "Objet de votre message" correspondant donc au champ1 :
<input name="champ1" size="40" maxlength="100" type="text"/>
On ajoute :
<input name="champ1" value="<?php
//si le champ1 est différent de vide
if (!empty($_POST["champ1"]))
{
//on ré affiche les données
echo stripcslashes(htmlspecialchars($_POST["champ1"],ENT_QUOTES));
}
?>" size="40" maxlength="100" type="text"/>
C'est la même chose pour les autres champs en prenant soin de modifier le nom de la variable $_POST.
stripcslashes : Retourne la chaîne $_POST["champ1"] après avoir supprimé tous les antislashs.
htmlspecialchars : Convertit les caractères spéciaux en entités HTML.
Pour contrôler l'addresse email, il faut utiliser ce que l'on appel un REGEX.
Dans ce tutoriel, le contrôle du champ email ce fait pas l'intermédiaire de la variable nommé $lechamp3 :
else if(empty($lechamp3)){
echo 'Le champ3 est vide.<br/>';
}
On ajoute juste après :
else if (!preg_match("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$lechamp3))
{
echo 'Veuillez insérer un email valide.';
}
- #138 Commentaire de tartine posté le 19/10/10 à 11:15:45 :

-
J'ai fais un premier essai et ça à l'air de fonctionner !!!!!
Quel exploit
Je te remercie beaucoup je vais le faire jusqu'au bout et je te tiens au courant.
Tu es sensationnel !!!!!
(Tu risques de te voir un peu partout (facebook - twitter - etc ..... : q ) désolé : c'est ta faute !
Merci encore
- #139 Commentaire de tartine posté le 19/10/10 à 11:29:24 :

-
TOUT FONCTIONNE correctement à présent ! Je ne suis pas prête de te lâcher...
Merci et à très bientôt.
Tartine
- #141 Commentaire de c00lman posté le 19/10/10 à 19:30:32 :

-
Mais de rien
.
- #442 Commentaire de Theux posté le 10/08/11 à 20:46:13 :

-
Salut dsl mais il y a quelques chose que je comprends pas !
Explication : Quand la pêrsonne a remplit le formulaire et qu'elle clique sur valider comment fait on pour que le php s'exécute ????
- #443 Commentaire de c00lman posté le 10/08/11 à 22:35:01 :

-
Salut Theux,
Pour que PHP fonctionne, il faut disposer d'un environnement PHP comme un serveur web avec le support PHP activé et que les fichiers terminés par l'extension ".php" sont traités par PHP...c'est ce que font normalement la plupart des serveurs web.
Ensuite et si on reprend le début code du tutoriel :
<?phpComme on travail dans un environnement PHP, le code qui commence par <?php indique qu'il y a du code PHP à traiter par le serveur. Vient ensuite la partie if(isset($_POST["Valider"])) qui indique grosso modo : "Si action de Valider" ...on continu l'exécution du script donc le traitement, les vérifications puis l'envoie.
if(isset($_POST["Valider"])) {
//traitement des données
//vérification des données
//envoie des données
}
?>
- #457 Commentaire de luan posté le 08/09/11 à 11:12:29 :

-
Bonjour et merci pour ce code !!!
Il correspond exctement à ce que je cherchais !
J'ai apprécié la clareté du tuto, néanmoins j'ai un petit sousic et coup de main ne serait pas de refus !
Voila, j'ai adapté mon code à un formulaire existant et j'ai du faire une boulette car quand je teste le formulaire en ligne une page vide apprait aprés avoir cliqué sur le bouton "valider" et rien ne me parvient par mail.
Voici mon code :
page HTML :
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="mon_champ_cache" value="_envoi_ok" />
<p>NOM Prénom
<input name="nom" type="text" id="textfield" size="50" />
</p>
<p>
<label>
Activité
<input name="activite" type="text" id="textfield2" size="50" />
</label>
</p>
<p>
<label>Téléphone
<input type="text" name="tel" id="textfield3" />
</label>
</p>
<p>
<label>E-mail
<input type="text" name="mail" id="textfield4" />
</label>
</p>
<p>Votre Projet :</p>
<label>
<textarea name="projet" id="textarea" cols="60" rows="10"></textarea>
</label>
</p>
<p>
<input type="submit" id="button" value="Valider"/>
</p>
</form>
page PHP :
<?php
if(isset($_POST["Valider"]))
{
htmlentities($_POST['projet'], ENT_QUOTES, 'UTF-8');
$formNom = utf8_decode($HTTP_POST_VARS['nom']);
$formActivite = utf8_decode($HTTP_POST_VARS['activite']);
$formTel = utf8_decode($HTTP_POST_VARS['tel']);
$formMail = utf8_decode($HTTP_POST_VARS['mail']);
$formProjet = utf8_decode($HTTP_POST_VARS['projet']);
if(empty($formNom)){
echo 'Le champ nom est vide. <br/>';
}
if(empty($formActivite)){
echo 'Le champ activité est vide. <br/>';
}
if(empty($formTel)){
echo 'Le champ téléphone est vide. <br/>';
}
if(empty($formMail)){
echo 'Le champ mail est vide. <br/>';
}
if(empty($formProjet)){
echo 'Le champ projet est vide. <br/>';
}
else
{
$mon_email = "monmail@yahoo.fr";
$mon_pseudo = "monpseudo";
$mon_url = "http://www.monsite.fr";
$son_email = ''.$formMail.'';
$entete = "From: " . $mon_pseudo . " <" . $son_email . ">\n";
$entete .= "MIME-Version: 1.0";
$entete .='Content-Type: text/plain; charset="utf-8"'." ";
$entete .='Content-Transfer-Encoding: 8bit';
if (@mail($mon_email,$formNom,$formActivite,$formTel,$formMail,$formProjet,$entete))
{
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else
{
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
}
}
?>
Je me demande si le prébème n'ai pas au niveau du "isset" car quand je l'enlève j'ai bien une page qui s'affiche indiquant les champs non rempli mais envoyant en même temps le formulaire (même vide)
Merci à vous si vous pouvez m'éclairer un peu.



