Dans cette leçon, nous découvrirons la fonction mail(), en utilisant l'exemple de la création formes retour en PHP suivi de l'envoi des données reçues par email.
Pour ce faire, nous allons créer deux fichiers - format.php Et mail.php. Le premier fichier contiendra uniquement un formulaire avec des champs permettant à l'utilisateur de saisir des données. À l'intérieur d'une balise formulaire- bouton "Envoyer" et attribut action qui fait référence au gestionnaire - mail.php, c'est à cela que l'on accède aux données du formulaire lorsque l'on appuie sur le bouton "Envoyer". Dans notre exemple, les données du formulaire sont envoyées vers une page Web appelée "/mail.php". Cette page contient un script pour PHP qui traite les données du formulaire :
Voici à quoi ressemble visuellement le formulaire dans le navigateur.
Ensuite, nous écrivons le code du fichier mail.php. Nous trouvons nos propres noms pour les variables. DANS PHP la variable commence par un signe $ suivi du nom de la variable. Valeur du texte La variable est placée entre guillemets. À l'aide de variables, le contenu du formulaire est envoyé à l'e-mail de l'administrateur en plaçant simplement le nom de l'élément du formulaire entre crochets - la valeur nom.
$à = " [email protégé]"; // email du destinataire des données du formulaire
$tema = "Formulaire de commentaires en PHP"; // sujet de l'email reçu
$message = "Votre nom : ".$_POST["name"]."
";//attribuer à la variable la valeur obtenue à partir du formulaire nom=nom
$message .= "E-mail : ".$_POST["email"]."
"; //obtenu à partir du formulaire nom=email
$message .= "Numéro de téléphone : ".$_POST["phone"]."
"; //obtenu à partir du formulaire nom=téléphone
$message .= "Message : ".$_POST["message"]."
"; //obtenu à partir du formulaire nom=message
$headers = "Version MIME : 1.0" . "\r\n" ; // l'en-tête correspond au format plus le caractère de nouvelle ligne
$headers .= "Type de contenu : texte/html; charset=utf-8" . "\r\n" ; // indique le type de contenu envoyé
mail($à, $tema, $message, $headers); //envoie les valeurs des variables au destinataire par email
?>
Ainsi, les données du tableau $_POST sera transmis aux variables correspondantes et envoyé par email à l'aide de la fonction mail. Remplissez notre formulaire et appuyez sur le bouton Soumettre. N'oubliez pas d'inclure votre email. La lettre est arrivée instantanément.
Bonjour chers lecteurs, aujourd'hui je souhaite vous expliquer comment je crée des formulaires pour obtenir les coordonnées des utilisateurs.
Aujourd'hui, , fait partie de la structure de la page de destination. Après tout, c’est l’un des moyens d’accepter une commande ou d’envoyer un catalogue de vos produits, après avoir reçu au préalable l’e-mail du visiteur.
Création d'un formulaire de commentaires - balisage HTML
J'ai généralement besoin de trois champs, et dans la plupart des cas, j'utilise ce balisage pour créer un formulaire de contact :
Essayez de l'ouvrir dans votre navigateur ce code et regardez ce que vous obtenez, selon le navigateur Internet que vous utilisez, cela devrait ressembler à ceci :
Si vous avez des questions sur le balisage, n'hésitez pas à les poser dans les commentaires, j'essaierai d'y répondre en détail, et je ne décrirai pas chaque élément dans l'article pour ne pas augmenter sa taille. De plus, les éléments sont assez simples.
Création d'un formulaire de commentaires - balisage CSS
Stylisons notre formulaire et rendons-le lisible :
/* Styles de formulaire */ #application ( largeur : 475px ; marge : 0 auto ; ) /* Styles de champ de saisie */ #applicationName, #applicationEmail, #applicationTelephone ( largeur : 100% ; hauteur : 73px ; arrière-plan : aucun ; marge - haut : 25 px ; bordure : 1 px solide #fff ; border-radius : 40 px ; text-align : center ; couleur : #fff ; font-size : 24px ; ) /*Styles des champs en cliquant dessus*/ #applicationName:focus , #applicationEmail:focus, #applicationTelephone:focus ( bordure : 1px solide #30ad64 ; ) /*Styles de texte affiché dans l'espace réservé*/ ::-webkit-input-placeholder ( couleur : #efefef ; font-family : "PT Sans ", sans-serif; text-shadow : 0 1px 1px rgba(0, 0, 0, .3); ) ::-moz-placeholder ( couleur : #fff ; font-family : "PT Sans", sans-serif ; text-shadow : 0 1px 1px rgba(0, 0, 0, .3); ) /* Firefox 19+ */ :-moz-placeholder ( couleur : #fff ; font-family : "PT Sans", sans- serif; text-shadow : 0 1px 1px rgba(0, 0, 0, .3); ) /* Firefox 18- */ :-ms-input-placeholder ( couleur : #fff ; font-family : "PT Sans" , sans empattement ; text-shadow : 0 1px 1px rgba(0, 0, 0, .3); ) ::placeholder ( couleur : #fff ; text-shadow : 0 1px 1px rgba(0, 0, 0, .3); ) /*Styles de boutons*/ .applicationButton ( margin-top : 25px ; arrière-plan : #30ad64 ; bordure : aucune ; largeur : 100 % ; hauteur : 73 px ; rayon de bordure : 40 px ; couleur : #fff ; taille de police : 24 px ; transformation de texte : majuscules ; famille de polices : "PT Sans", sans-serif ; curseur : pointeur; ) .applicationButton:hover ( arrière-plan: #d68c18; )
Si vous souhaitez que la couleur du bouton change en douceur, ajoutez la ligne suivante à .applicationButton et .applicationButton:hover :
Transition : 0,6 s ;
Où,6s est la durée de l'animation en millisecondes.
Maintenant, notre forme a acquis belle vue, maintenant ça ressemble à ça :
Création d'un formulaire de commentaires - balisage php
Nous devons maintenant créer le fichier application.php. Il recevra les paramètres saisis depuis le formulaire et nous les enverra par email.
Sa structure est comme un fichier HTML classique ; il peut s'agir d'une page sur laquelle vous écrivez « Merci, votre candidature a été acceptée. Après traitement de la demande, nos responsables vous contacteront"
Autrement dit, lorsque l'utilisateur clique sur le bouton, il sera redirigé vers la page application.php. Il s'agit d'une page entière et vous devez la styler en conséquence.
"; $msg .= "
Message du site
\r\n"; $msg .= "De qui:".$nom d'utilisateur."
\r\n"; $msg .= "Mail:".$usermail."
\r\n"; $msg .= "Site web:".$usertel."
\r\n"; $msg .= ""; // envoi d'un message if (@mail($sendto, $subject, $msg, $headers)) ( echo "Expliquons un peu le code :
$envoyerà = " [email protégé]"; // mail auquel la lettre sera envoyée $username = $_POST["name"]; // sauvegarde les données reçues du champ portant le nom dans une variable $usertel = $_POST["telephone"]; / / sauvegarde les données dans une variable reçue du champ avec un numéro de téléphone $usermail = $_POST["email"]; // sauvegarde les données reçues du champ avec une adresse email dans une variable
Ici, je pense que c'est clair.
Créons maintenant l'en-tête de la lettre.
$sujet = "Nouveau message" ; $headers = "De : " . strip_tags($usermail) . "\r\n" ; $headers .= "Réponse à : ". strip_tags($usermail) . "\r\n" ; $headers .= "Version MIME : 1.0\r\n" ; $headers .= "Content-Type : text/html;charset=utf-8 \r\n";
Doubler $sujet = "Nouveau message" ;— est responsable du sujet de la lettre, peut y écrire : « Candidature depuis le site » ou ce qui vous convient le mieux.
Je propose de m'assurer que la lettre arrive de l'adresse indiquée dans le champ input type="email". C'est-à-dire celui à partir duquel l'utilisateur est entré en remplissant le formulaire. Pour ce faire, nous écrivons les lignes suivantes :
$headers = "De : " . strip_tags($usermail) . "\r\n" ;
Autrement dit, nous remplacerons les données de la variable $usermail, où sont stockées les informations du champ responsable de la saisie de l'adresse e-mail.
Définissons maintenant l'apparence de la lettre. Vous pouvez le concevoir comme bon vous semble, mais je suggère la structure suivante :
$msg = "
"; $msg .= "Message du site
\r\n"; $msg .= "De qui:".$nom d'utilisateur."
\r\n"; $msg .= "Mail:".$usermail."
\r\n"; $msg .= "Téléphone:".$usertel."
\r\n"; $msg .= "";
La première ligne définit la police des lettres. Deuxièmement, nous affichons un message, par exemple : « Demande depuis le formulaire de commentaires sur le premier écran ». Les troisième, quatrième et cinquième lignes transmettent les données du formulaire. Chacun sur une nouvelle ligne.
Vous devez maintenant envoyer une lettre à l'aide de la fonction de courrier et déterminer ce qui se passera si la lettre est envoyée avec succès ou non :
Si (@mail($sendto, $subject, $msg, $headers)) ( echo "
J'ai fait en sorte que dans tous les cas, une image avec le texte correspondant soit affichée. Vous pouvez afficher une page entière au lieu d'une image. Écrivez simplement le code au lieu de l'image.
Quelques secondes après l'affichage de l'image, je redirige (redirection automatique) vers page d'accueil. Vous pouvez le faire en insérant la ligne suivante entre les balises head ;
Autrement dit, après 4 secondes, l'utilisateur sera automatiquement renvoyé à la page principale !
Je ne suis pas un expert en PHP - c'est un langage de programmation back-end ; j'ai été attiré par l'apprentissage du front-end toute ma vie. Alors ne jugez pas durement. Oui, ici vous pouvez effectuer des vérifications pour remplir les formulaires de contact, etc., mais cela m'a toujours suffi, donc si quelqu'un a une suggestion sur la façon d'améliorer ce code, veuillez l'écrire dans les commentaires ou par e-mail, je corrigerai le leçon, merci!
À propos, si vous avez besoin d'un formulaire de commentaires sans recharger la page, vous pouvez découvrir comment l'installer dans
Peut-être que certaines personnes ne comprennent pas très bien le contenu, mais si vous répétez exactement mes étapes, votre formulaire de contact fonctionnera certainement. Si vous avez des questions, écrivez dans les commentaires, j'essaierai d'y répondre ! Rendez-vous sur le blog !
P.s. Depuis que j'ai commencé à recevoir très souvent des questions sur les raisons pour lesquelles le formulaire ne fonctionne pas et que les e-mails n'arrivent pas, j'ai décidé de décrire plusieurs des raisons les plus courantes pour lesquelles cela peut se produire :
- Vous testez le formulaire pas sur le serveur.
- Testez le formulaire sur un hébergement gratuit.
- Vous testez le formulaire sur un hébergement payant, mais pendant la période d'essai gratuite.
Dans ces cas, les lettres ne seront pas envoyées à votre adresse e-mail.
Si vous êtes trop paresseux pour le comprendre et créer le formulaire vous-même, je vous recommande d'y prêter attention.
23/07/2014 12/07/2018
dimadv7