Php envoyer un e-mail
julienptr
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
ifisch Messages postés 188 Date d'inscription Statut Membre Dernière intervention -
ifisch Messages postés 188 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai ecrit ce code php pour que l'utilisateur puisse ecrir un e-mail a partir d'un formulaire mais je recoi e-mail sans les variables que j'ai crée quel qu'un peut t-il m'aider ?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
$Nom1 = $_POST['nom'];
$prenom2 = $_POST['prenom'];
$text = $_POST['text'];
$EMail = $_POST['EMail'];
$adresse = "test@gmail.com";
$sujet = "test";
$contenu_msg = " nom : $Nom1, prenom : $prenom2, e-mail client: $EMail, texte: $text" ;
$adresse_exp = "From: entreprise@test.fr";
mail($adresse, $sujet, $nom, $adresse_exp);
echo mail();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
$Nom1 = $_POST['nom'];
$prenom2 = $_POST['prenom'];
$text = $_POST['text'];
$EMail = $_POST['EMail'];
$adresse = "test@gmail.com";
$sujet = "test";
$contenu_msg = " nom : $Nom1, prenom : $prenom2, e-mail client: $EMail, texte: $text" ;
$adresse_exp = "From: entreprise@test.fr";
mail($adresse, $sujet, $nom, $adresse_exp);
echo mail();
?>
A voir également:
- Php envoyer un e-mail
- Gmail envoyer un mail - Guide
- É majuscule - Guide
- Envoyer un mail en cci - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
31 réponses
Tu accèdes bien à cette page après avoir cliquer sur le bouton "Envoyer" d'un formulaire en method="post" ?
Mais tu accèdes bien à cette page après l'avoir envoyé ou tu tappes directement l'url dans la barre d'adresse.
Essaye avec ça :
Essaye avec ça :
$contenu_msg = 'Nom : '.$Nom1."\n"; $contenu_msg .= 'Prénom : '.$prenom2."\n"; $contenu_msg .= 'E-mail client : '.$EMail."\n"; $contenu_msg .= 'Texte : '.$text;
une fois que j'ai rempli le formulaire je recoi un e-mail avec écrit :
nom: , prénom: , E-mail client: , texte:
merci je vais asseiller comme sa.
nom: , prénom: , E-mail client: , texte:
merci je vais asseiller comme sa.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
moi aussi j'ai le même prob. J'ai mis une question hier mais je n'ai pas eu de réponse
Merci de m'aider
Merci de m'aider
Avec ce que tu me donnes, impossible de trouver d'erreur.
Soit les name de tes champs sont incorrectes, soit tu n'utilises pas la méthode POST ou tu accèdes directement à la page sans remplir le formulaire.
Soit les name de tes champs sont incorrectes, soit tu n'utilises pas la méthode POST ou tu accèdes directement à la page sans remplir le formulaire.
oui mon formulaire est le suivent :
<fieldset>
<form action="mail2.php" method="post" enctype="texte/plain">
<p>
<label for="nom">Nom : </label>
<input type="text" name="Nom1" id="Nom1" accesskey="n" />
</p>
<p>
<label for="prenom">Prénom :</label>
<input type="text" name="prenom" id="prenom" accesskey="p" />
</p>
<p>
<label for="e-mail">E-mail</label>
<input type="text" name="EMail" id="EMail" accesskey="m" />
</p>
<p>
<textarea name="text" cols="60" rows="15" id="text" accesskey="m"></textarea>
</p>
<p>
<input type="submit" name="Envoyer" id="envoyer" value="Envoyer" />
</p>
</form>
</fieldset>
<fieldset>
<form action="mail2.php" method="post" enctype="texte/plain">
<p>
<label for="nom">Nom : </label>
<input type="text" name="Nom1" id="Nom1" accesskey="n" />
</p>
<p>
<label for="prenom">Prénom :</label>
<input type="text" name="prenom" id="prenom" accesskey="p" />
</p>
<p>
<label for="e-mail">E-mail</label>
<input type="text" name="EMail" id="EMail" accesskey="m" />
</p>
<p>
<textarea name="text" cols="60" rows="15" id="text" accesskey="m"></textarea>
</p>
<p>
<input type="submit" name="Envoyer" id="envoyer" value="Envoyer" />
</p>
</form>
</fieldset>
Bonjour
Dans ton formulaire, enctype="text/plain" et non pas texte avec un e. Mais ça n'explique pas ton erreur.
ton champ nom s'appelle Nom1 et non pas nom. Tu devrais donc avoir dans le traitement :
$Nom1 = $_POST['Nom1'];
Enfin, beaucoup plus bizarre, d'après ton script tu crées ton message dans la variable $contenu_msg, mais tu n'envoies pas cette variable, car ton instruction est mail($adresse, $sujet, $nom, $adresse_exp);. C'est donc incroyable que tu réussisses à recevoir un message avec nom: , prénom: , E-mail client: , texte: dedans...
Je ne crois pas que la version de script que tu as donnée envoie ce message. Peux-tu donner la dernière version de ton script et le dernier comportement ?
Dans ton formulaire, enctype="text/plain" et non pas texte avec un e. Mais ça n'explique pas ton erreur.
ton champ nom s'appelle Nom1 et non pas nom. Tu devrais donc avoir dans le traitement :
$Nom1 = $_POST['Nom1'];
Enfin, beaucoup plus bizarre, d'après ton script tu crées ton message dans la variable $contenu_msg, mais tu n'envoies pas cette variable, car ton instruction est mail($adresse, $sujet, $nom, $adresse_exp);. C'est donc incroyable que tu réussisses à recevoir un message avec nom: , prénom: , E-mail client: , texte: dedans...
Je ne crois pas que la version de script que tu as donnée envoie ce message. Peux-tu donner la dernière version de ton script et le dernier comportement ?
Bonjour le père
Moi aussi j'ai un double problème avec mon formulaire, je reçois aussi un mail mais sans aucune donnée il n'y a que 5 étoiles.
Peux-tu m'aider , le script se trouve à l'adresse du forum:
https://forums.commentcamarche.net/forum/affich-16286466-recuperation-de-donnees-d-un-formulaire-maile#10#dernier
Merci d'avance
Moi aussi j'ai un double problème avec mon formulaire, je reçois aussi un mail mais sans aucune donnée il n'y a que 5 étoiles.
Peux-tu m'aider , le script se trouve à l'adresse du forum:
https://forums.commentcamarche.net/forum/affich-16286466-recuperation-de-donnees-d-un-formulaire-maile#10#dernier
Merci d'avance
Bonjour Miss_socrates
Peux-tu créer ton propre fil et ne pas venir perturber celui de julienptr ?
Tu n'as peut-être pas l'habitude des forums et tu ne le sais sans doute pas, mais ça ne se fait pas du tout.
Pour créer un nouveau fil, écris ton message qund tu fois la liste des messages du forum, la fenêtre de saisie s'appelle "créer un nouveau message" et non pas "répondre"
Peux-tu créer ton propre fil et ne pas venir perturber celui de julienptr ?
Tu n'as peut-être pas l'habitude des forums et tu ne le sais sans doute pas, mais ça ne se fait pas du tout.
Pour créer un nouveau fil, écris ton message qund tu fois la liste des messages du forum, la fenêtre de saisie s'appelle "créer un nouveau message" et non pas "répondre"
lorsque je j'envoi ce formulaire a la page mail2.php :
<fieldset>
<form action="mail2.php" method="post" enctype="texte/plain">
<p>
<label for="nom">Nom : </label>
<input type="text" name="Nom1" id="Nom1" accesskey="n" />
</p>
<p>
<label for="prenom">Prénom :</label>
<input type="text" name="prenom" id="prenom" accesskey="p" />
</p>
<p>
<label for="e-mail">E-mail</label>
<input type="text" name="EMail" id="EMail" accesskey="m" />
</p>
<p>
<textarea name="text" cols="60" rows="15" id="text" accesskey="m"></textarea>
</p>
<p>
<input type="submit" name="Envoyer" id="envoyer" value="Envoyer" />
</p>
</form>
</fieldset>
je recoi cette e-mail:
Nom :
Prénom :
E-mail client :
Texte :
la page mail2.php est :
<?php
$M1 = $_POST['Nom1'];
$prenom2 = $_POST['prenom'];
$text = $_POST['text'];
$EMail = $_POST['EMail'];
$adresse = " test@gmail.com";
$sujet = "test";
$contenu_msg = 'Nom : '.$Nom1."\n";
$contenu_msg .= 'Prénom : '.$prenom2."\n";
$contenu_msg .= 'E-mail client : '.$EMail."\n";
$contenu_msg .= 'Texte : '.$text;
$adresse_exp = "From: mon_test@test.fr";
mail($adresse, $sujet, $contenu_msg, $adresse_exp);
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<body>
<?php
<fieldset>
<form action="mail2.php" method="post" enctype="texte/plain">
<p>
<label for="nom">Nom : </label>
<input type="text" name="Nom1" id="Nom1" accesskey="n" />
</p>
<p>
<label for="prenom">Prénom :</label>
<input type="text" name="prenom" id="prenom" accesskey="p" />
</p>
<p>
<label for="e-mail">E-mail</label>
<input type="text" name="EMail" id="EMail" accesskey="m" />
</p>
<p>
<textarea name="text" cols="60" rows="15" id="text" accesskey="m"></textarea>
</p>
<p>
<input type="submit" name="Envoyer" id="envoyer" value="Envoyer" />
</p>
</form>
</fieldset>
je recoi cette e-mail:
Nom :
Prénom :
E-mail client :
Texte :
la page mail2.php est :
<?php
$M1 = $_POST['Nom1'];
$prenom2 = $_POST['prenom'];
$text = $_POST['text'];
$EMail = $_POST['EMail'];
$adresse = " test@gmail.com";
$sujet = "test";
$contenu_msg = 'Nom : '.$Nom1."\n";
$contenu_msg .= 'Prénom : '.$prenom2."\n";
$contenu_msg .= 'E-mail client : '.$EMail."\n";
$contenu_msg .= 'Texte : '.$text;
$adresse_exp = "From: mon_test@test.fr";
mail($adresse, $sujet, $contenu_msg, $adresse_exp);
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<body>
<?php
Ce script marche chez moi malgré les erreurs :
espace en trop dans l'adresse $adresse = " test@gmail.com";
erreur dans le nom de la variable $contenu_msg = 'Nom : '.$Nom1."\n"; : c'est $M1 qui contient le nom, pas $Nom1
Ce qui suit le ?> est incomplet je suppose ? On ne devrait quand même pas trouver <body> sans avoir vu passer le </head>
En mettant aussi une adresse correcte dans From:
Confirmes-tu que tu reçois le mail sans les variables ? Je comprendrais que tu ne reçoives rien du tout à la rigueur, mais là ça m'étonne.
autre détail : dans le formulaire, enctype="text/plain", pas "texte/plain"
espace en trop dans l'adresse $adresse = " test@gmail.com";
erreur dans le nom de la variable $contenu_msg = 'Nom : '.$Nom1."\n"; : c'est $M1 qui contient le nom, pas $Nom1
Ce qui suit le ?> est incomplet je suppose ? On ne devrait quand même pas trouver <body> sans avoir vu passer le </head>
En mettant aussi une adresse correcte dans From:
Confirmes-tu que tu reçois le mail sans les variables ? Je comprendrais que tu ne reçoives rien du tout à la rigueur, mais là ça m'étonne.
autre détail : dans le formulaire, enctype="text/plain", pas "texte/plain"
Y a-t-il autre chose dans mail2.php avant la partie que tu montres ? Il y a peut-être un problème dans ce que tu ne montres pas ...
Autre idée : au début de mail2.php, juste après le <?php, ajoute :
print_r($_POST);
Autre idée : au début de mail2.php, juste après le <?php, ajoute :
print_r($_POST);
Le problème est sans doute dans le enctype : corriges-le et si ça ne fonctionne toujours pas retire-le.
pour déclare la variable nom j'écrit
$M1 = print_r($_POST)['Nom1'];
ou
$M1 = print_r($_POST['Nom1'] );
$M1 = print_r($_POST)['Nom1'];
ou
$M1 = print_r($_POST['Nom1'] );
Oui $M1 = $_POST['Nom1'];" suffit
mais ensuite, il faut faire $contenu_msg = 'Nom : '.$M1."\n"; et non pas $contenu_msg = 'Nom : '.$Nom1."\n";
mais ensuite, il faut faire $contenu_msg = 'Nom : '.$M1."\n"; et non pas $contenu_msg = 'Nom : '.$Nom1."\n";