Traitement php et envoi par mail 1formulaire

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 ....
.
A voir également:

13 réponses

wenijah Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   6
 
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~
1
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
re,

as-tu regardé celui de CCM ?
il est prêt à l'emploi !!!
0
Utilisateur anonyme
 
Je viens de regarder ccm , ça ne marche pas !
Comment faire ?
0
Utilisateur anonyme
 
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
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 ?
0
wenijah Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   6
 
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?
0
wenijah Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   6
 
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 ;)
0
Utilisateur anonyme
 
Ui je vois !
Je vais préparer tout ça !

En tout cas énorme merci !

Nico
0
Utilisateur anonyme
 
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
0
wenijah Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   6
 
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!
0
Utilisateur anonyme
 
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; } ?>
0
wenijah Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   6
 
T'as téléchargé le fichier rar? Tout fonctionne =)
0
Utilisateur anonyme
 
Ben non ça ne marche pas ! il met ç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; } ?>

A+
0