Traitement php et envoi par mail 1formulaire
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai trouvé ce code sur un site, il s'agit du code a mettre sur la page du traitement d'un formulaire (page en .php)
C'est lui :
<?php
$exp = $_POST['mail'];
$objet = stripslashes($_POST['objet']);
$msg = stripslashes($_POST['msg']);
$envoi=mail("*******@yahoo.fr", $objet, $msg,"From: $exp\r\n"."Reply-To: $exp\r\n");
if($envoi) echo"Le mail a bien été envoyé !";
else echo"L'envoi a échoué, merci de renouveller l'opération !";
?>
mon problème : Je reçois bien le mail dans ma boite mail, mais le contenu de ce mail est blanc.
Donc je recherche "ce qu'il faut écrire" de plus dans ce code pour récupérer ce que l'urtilisateur a écrit précedement avant de cliquer sur envoyer, et que je vois ce qu'il a écrit dans mon mail.Enfin bref, pour que ce soit un vrai formulaire :)
Et aussi, je me demandais à quoi servait cette ligne : $msg = stripslashes($_POST['msg']);
Merci d'avance à tous !
PS : Je m'en fou si le contenu n'est pas vérifié, si les champs sont tous bie remplis, car comme s'est mon prmier Php j'est peur de m'embrouiller davantage ....
.
J'ai trouvé ce code sur un site, il s'agit du code a mettre sur la page du traitement d'un formulaire (page en .php)
C'est lui :
<?php
$exp = $_POST['mail'];
$objet = stripslashes($_POST['objet']);
$msg = stripslashes($_POST['msg']);
$envoi=mail("*******@yahoo.fr", $objet, $msg,"From: $exp\r\n"."Reply-To: $exp\r\n");
if($envoi) echo"Le mail a bien été envoyé !";
else echo"L'envoi a échoué, merci de renouveller l'opération !";
?>
mon problème : Je reçois bien le mail dans ma boite mail, mais le contenu de ce mail est blanc.
Donc je recherche "ce qu'il faut écrire" de plus dans ce code pour récupérer ce que l'urtilisateur a écrit précedement avant de cliquer sur envoyer, et que je vois ce qu'il a écrit dans mon mail.Enfin bref, pour que ce soit un vrai formulaire :)
Et aussi, je me demandais à quoi servait cette ligne : $msg = stripslashes($_POST['msg']);
Merci d'avance à tous !
PS : Je m'en fou si le contenu n'est pas vérifié, si les champs sont tous bie remplis, car comme s'est mon prmier Php j'est peur de m'embrouiller davantage ....
.
A voir également:
- Traitement php et envoi par mail 1formulaire
- Programmer envoi mail gmail - Guide
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Envoi mail cci - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
13 réponses
Salut!
ton message blanc... et bien c'est $msg! dans ton formulaire ajoute ça pour le message:
<input type="text" name="msg" id="msg">
ou
<textarea name="msg"></textarea>
C'est le plus important.. Après, j'ai modifié un peu ton script pour avoir quelquechose d'un peu plus net, tu peux copier/coller, ça devrait marcher sans souci par contre là oui, tu dois renseigner les champ si non remplace la ligne if($exp != "" && $ob...) par if($msg != "") pour au moins qu'il y ait un message!
<?php
$exp = $_POST['mail']; ### adresse de l'expéditeur
$objet = stripslashes($_POST['objet']); ### sujet du mail
$msg = stripslashes(nl2br(htmlspecialchars($_POST["msg"]))); ### message du mail!
if($exp != "" && $objet != "" && $msg != "")
{
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: $exp <$exp>\r";
$body = "<html><body>$msg</body></html>";
mail("ton_mail@yahoo.fr", "$objet", "$body", "$headers");
echo"Le mail a bien été envoyé !";
exit;
}else{
echo"Echec de l'envoi du mail!";
exit;
}
?>
Bon dév!
~W~
ton message blanc... et bien c'est $msg! dans ton formulaire ajoute ça pour le message:
<input type="text" name="msg" id="msg">
ou
<textarea name="msg"></textarea>
C'est le plus important.. Après, j'ai modifié un peu ton script pour avoir quelquechose d'un peu plus net, tu peux copier/coller, ça devrait marcher sans souci par contre là oui, tu dois renseigner les champ si non remplace la ligne if($exp != "" && $ob...) par if($msg != "") pour au moins qu'il y ait un message!
<?php
$exp = $_POST['mail']; ### adresse de l'expéditeur
$objet = stripslashes($_POST['objet']); ### sujet du mail
$msg = stripslashes(nl2br(htmlspecialchars($_POST["msg"]))); ### message du mail!
if($exp != "" && $objet != "" && $msg != "")
{
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: $exp <$exp>\r";
$body = "<html><body>$msg</body></html>";
mail("ton_mail@yahoo.fr", "$objet", "$body", "$headers");
echo"Le mail a bien été envoyé !";
exit;
}else{
echo"Echec de l'envoi du mail!";
exit;
}
?>
Bon dév!
~W~
Merci wenijah !
Mais je ne veut pas voir forcement que la zone de texte msg mais tout ce qui y est comprit dans les balises form de mon formulaire.
Sinon, je vais essayer ton code maintenant !
Mais je ne veut pas voir forcement que la zone de texte msg mais tout ce qui y est comprit dans les balises form de mon formulaire.
Sinon, je vais essayer ton code maintenant !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re !
Je vient de tester, mais la page me dit : Echec de l'envoi du mail
Que dois-je paramétrer pour que ça marche ?
Je vient de tester, mais la page me dit : Echec de l'envoi du mail
Que dois-je paramétrer pour que ça marche ?
Okkk je vois.. En bref:
Sur ta page de fomulaire :
tous les <input type="??" name="nom_du_champ"> sont le champs de formulaire que tu vas envoyer
Sur ta page d'envoi
tous les $?? = $_POST["??"]; correspondent aux champs de formulaire, $_POST signifie que tu les récupères depuis un formulaire de type POST (cf. method="post")
donc pour chaque champ de formulaire, tu as un name spécifique et pour chaque champ de formulaire tu as, sur la page d'envoi, un $_POST spécifique.. Après tu les gères comme tu veux..
Pour ton formulaire, à chaque fois que tu veux ajouter un champ, peut importe la sorte, tu dois le renseigner et lui donner un nom, Exemple:
ton formulaire.php
<form method="post" action="envoi.php">
<input type="text" name="exp"><br> ### dans ton formulaire actuel, c'est l'adresse de l'expéditeur
<input type="text" name="objet"><br> ### toujours dans ton form actuel, c'est l'objet du mail
<textarea name="msg"></textarea><br> ### encore dans ton form actuel, c'est le message
<input type="text" name="mon_nouveau_champ_1"><br> ### ça c'est un nouveau truc, ce que tu veux
<input type="text" name="mon_nouveau_champ_2"><br> ### idem
<input type="text" name="mon_nouveau_champ_3"><br> ### idem
<input type="submit" value="envoyer">
</form>
ta page envoi.php
<?php
$exp = $_POST['mail']; ### adresse de l'expéditeur
$objet = stripslashes($_POST['objet']); ### sujet du mail
$msg = stripslashes(nl2br(htmlspecialchars($_POST["msg"]))); ### message du mail
$nouveau_champ_1 = $_POST['mon_nouveau_champ_1']; ### le nouveau truc que tu récupères
$nouveau_champ_2 = $_POST['mon_nouveau_champ_2']; ### le 2nd nouveau truc que tu récupères
$nouveau_champ_3 = $_POST['mon_nouveau_champ_3']; ### le 3e nouveau truc que tu récupères
if($exp != "" && $objet != "" && $msg != "")
{
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: $exp <$exp>\r";
$body = "<html>
<body>
Message : $msg
Nouveau champ 1 : $nouveau_champ_1
Nouveau champ 2 : $nouveau_champ_2
Nouveau champ 3 : $nouveau_champ_3
### Ici, tu peux rajouter tout ce que tu veux... tu peux reporter tout les $... = $_POST["..."];
</body>
</html>";
mail("ton_mail@yahoo.fr", "$objet", "$body", "$headers");
echo"Le mail a bien été envoyé !";
exit;
}else{
echo"Echec de l'envoi du mail!";
exit;
}
?>
Tu vois le truc?
Sur ta page de fomulaire :
tous les <input type="??" name="nom_du_champ"> sont le champs de formulaire que tu vas envoyer
Sur ta page d'envoi
tous les $?? = $_POST["??"]; correspondent aux champs de formulaire, $_POST signifie que tu les récupères depuis un formulaire de type POST (cf. method="post")
donc pour chaque champ de formulaire, tu as un name spécifique et pour chaque champ de formulaire tu as, sur la page d'envoi, un $_POST spécifique.. Après tu les gères comme tu veux..
Pour ton formulaire, à chaque fois que tu veux ajouter un champ, peut importe la sorte, tu dois le renseigner et lui donner un nom, Exemple:
ton formulaire.php
<form method="post" action="envoi.php">
<input type="text" name="exp"><br> ### dans ton formulaire actuel, c'est l'adresse de l'expéditeur
<input type="text" name="objet"><br> ### toujours dans ton form actuel, c'est l'objet du mail
<textarea name="msg"></textarea><br> ### encore dans ton form actuel, c'est le message
<input type="text" name="mon_nouveau_champ_1"><br> ### ça c'est un nouveau truc, ce que tu veux
<input type="text" name="mon_nouveau_champ_2"><br> ### idem
<input type="text" name="mon_nouveau_champ_3"><br> ### idem
<input type="submit" value="envoyer">
</form>
ta page envoi.php
<?php
$exp = $_POST['mail']; ### adresse de l'expéditeur
$objet = stripslashes($_POST['objet']); ### sujet du mail
$msg = stripslashes(nl2br(htmlspecialchars($_POST["msg"]))); ### message du mail
$nouveau_champ_1 = $_POST['mon_nouveau_champ_1']; ### le nouveau truc que tu récupères
$nouveau_champ_2 = $_POST['mon_nouveau_champ_2']; ### le 2nd nouveau truc que tu récupères
$nouveau_champ_3 = $_POST['mon_nouveau_champ_3']; ### le 3e nouveau truc que tu récupères
if($exp != "" && $objet != "" && $msg != "")
{
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: $exp <$exp>\r";
$body = "<html>
<body>
Message : $msg
Nouveau champ 1 : $nouveau_champ_1
Nouveau champ 2 : $nouveau_champ_2
Nouveau champ 3 : $nouveau_champ_3
### Ici, tu peux rajouter tout ce que tu veux... tu peux reporter tout les $... = $_POST["..."];
</body>
</html>";
mail("ton_mail@yahoo.fr", "$objet", "$body", "$headers");
echo"Le mail a bien été envoyé !";
exit;
}else{
echo"Echec de l'envoi du mail!";
exit;
}
?>
Tu vois le truc?
On va faire plus simple...
Copie et colle les 2 codes suivants et crées les pages que je t'indiquerai, ok?
A créer : formulaire.html
Copie et colle :
--- début du 1er code ---
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulaire</title>
</head>
<body>
<form method="post" action="envoi.php">
<input type="text" name="mail" value="essai@ccm.com"><br>
<input type="text" name="objet" value="un mail!"><br>
<textarea name="msg">Ton message</textarea><br>
<input type="submit" value="envoyer">
</form>
</body>
</html>
--- fin du 1er code ---
A créer : envoi.php
Copie et colle :
--- début du 2e code ---
<?php
$exp = $_POST['mail']; ### adresse de l'expéditeur
$objet = stripslashes($_POST['objet']); ### sujet du mail
$msg = stripslashes(nl2br(htmlspecialchars($_POST["msg"]))); ### message du mail!
if($exp != "" && $objet != "" && $msg != "")
{
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: $exp <$exp>\r";
$body = "<html><body>$msg</body></html>";
mail("*******@yahoo.fr", "$objet", "$body", "$headers");
echo"Le mail a bien été envoyé !";
exit;
}else{
echo"Echec de l'envoi du mail!";
exit;
}
?>
--- fin du 2e code ---
Et là, ça fonctionne ;)
Copie et colle les 2 codes suivants et crées les pages que je t'indiquerai, ok?
A créer : formulaire.html
Copie et colle :
--- début du 1er code ---
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulaire</title>
</head>
<body>
<form method="post" action="envoi.php">
<input type="text" name="mail" value="essai@ccm.com"><br>
<input type="text" name="objet" value="un mail!"><br>
<textarea name="msg">Ton message</textarea><br>
<input type="submit" value="envoyer">
</form>
</body>
</html>
--- fin du 1er code ---
A créer : envoi.php
Copie et colle :
--- début du 2e code ---
<?php
$exp = $_POST['mail']; ### adresse de l'expéditeur
$objet = stripslashes($_POST['objet']); ### sujet du mail
$msg = stripslashes(nl2br(htmlspecialchars($_POST["msg"]))); ### message du mail!
if($exp != "" && $objet != "" && $msg != "")
{
$headers .= "Content-type: text/html; charset=utf-8\r\n";
$headers .= "From: $exp <$exp>\r";
$body = "<html><body>$msg</body></html>";
mail("*******@yahoo.fr", "$objet", "$body", "$headers");
echo"Le mail a bien été envoyé !";
exit;
}else{
echo"Echec de l'envoi du mail!";
exit;
}
?>
--- fin du 2e code ---
Et là, ça fonctionne ;)
Bouhhh
Je n'ai vraiment pas de chance ^^
Avec la solution que tu m'as donnée ci-dessus, la page de traitement php affiche :
Parse error: syntax error, unexpected '@' in /mnt/125/sda/6/8/*****/envoi.php on line 11
Je n'ai vraiment pas de chance ^^
Avec la solution que tu m'as donnée ci-dessus, la page de traitement php affiche :
Parse error: syntax error, unexpected '@' in /mnt/125/sda/6/8/*****/envoi.php on line 11
Salut!
Le problème était le "*****@yahoo.fr" et je l'ai fixé... Télécharge le fichier ci-dessous, c'est le formulaire et il fonctionne ;)
Formulaire: http://deposit.mysharingbox.com/426/MGpdpI/Form_graphox.rar
Bon dév!
Le problème était le "*****@yahoo.fr" et je l'ai fixé... Télécharge le fichier ci-dessous, c'est le formulaire et il fonctionne ;)
Formulaire: http://deposit.mysharingbox.com/426/MGpdpI/Form_graphox.rar
Bon dév!
Il me dit ça : \r"; $body = "$msg"; mail($dest, "$objet", "$body", "$headers"); echo"Le mail a bien été envoyé !"; exit; }else{ echo"Echec de l'envoi du mail!"; exit; } ?>