Traitement php et envoi par mail 1formulaire

Fermé
Utilisateur anonyme - 6 nov. 2007 à 15:54
 Utilisateur anonyme - 7 nov. 2007 à 12:24
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 mercredi 20 juin 2007 Statut Membre Dernière intervention 26 janvier 2012 6
6 nov. 2007 à 16:27
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
6 nov. 2007 à 16:24
re,

as-tu regardé celui de CCM ?
il est prêt à l'emploi !!!
0
Utilisateur anonyme
6 nov. 2007 à 16:31
Je viens de regarder ccm , ça ne marche pas !
Comment faire ?
0
Utilisateur anonyme
6 nov. 2007 à 16:35
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
6 nov. 2007 à 16:43
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 mercredi 20 juin 2007 Statut Membre Dernière intervention 26 janvier 2012 6
6 nov. 2007 à 16:48
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 mercredi 20 juin 2007 Statut Membre Dernière intervention 26 janvier 2012 6
6 nov. 2007 à 16:55
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
6 nov. 2007 à 16:58
Ui je vois !
Je vais préparer tout ça !

En tout cas énorme merci !

Nico
0
Utilisateur anonyme
6 nov. 2007 à 17:03
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 mercredi 20 juin 2007 Statut Membre Dernière intervention 26 janvier 2012 6
7 nov. 2007 à 00:30
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
7 nov. 2007 à 08:13
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 mercredi 20 juin 2007 Statut Membre Dernière intervention 26 janvier 2012 6
7 nov. 2007 à 10:07
T'as téléchargé le fichier rar? Tout fonctionne =)
0
Utilisateur anonyme
7 nov. 2007 à 12:24
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