Pb, Formulaire / Mail

Signaler
Messages postés
10
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
1 mars 2010
-
Messages postés
3
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
28 février 2010
-
Bonjour,
Je viens de mettre un formulaire / mail sur mon site, et j'ai un petit problème avec la fonction mail, c'est à dire que je reçois bien le mail, mais il est vide toute les informations rentrée dedans sont abscentes... Si vous pourriez m'éclairer sur le problème sachant que je suis heberger sous Free.

--------------------------------------------
Partie Formulaire :
--------------------------------------------
<form action="send.php" method="post" enctype="text/plain">
<td width="299"></td>
</tr>
<tr>
<td>
Pr&eacute;nom :
</td>
<td></td>
</tr>
<tr>
<td>
Speudo :
</td>
<td>
</td>
</tr>
<tr>
<td>
Email :
</td>
<td>
</td>
</tr>
<tr>
<td>
Mot de passe :
</td>
<td>
</td>
</tr>
<tr>
<td>
Ville :
</td>
<td>
</td>
</tr>
<tr>
<td>
Date de naissance :
</td>
<td>
jj/mm/aaa
</td>
</tr>
<tr>
<td>
Sexe :
</td>
<td>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>



</td>
</tr>
</table>

</form>

-----------------------------------------------------
Partie Php
-----------------------------------------------------

<?php


$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$speudo = $_POST['speudo'];
$motdepasse = $_POST['motdepasse'];
$ville = $_POST['ville'];
$date = $_POST['date'];
$sexe = $_POST['sexe'];


$message = "Nom: $nom\n";
$message = "Prenom: $prenom\n";
$message = "Email: $email\n";
$message = "Speudo: $speudo\n";
$message = "Mot de passe : $motdepasse\n";
$message = "Ville: $ville\n";
$message = "Date de naissance: $date\n";
$message = "Sexe: $sexe\n";


$recipient = "[mailto:adresse@mail.com adresse@mail.com]";
$subject = "Formulaire contact";



$mailheaders = "From:".$email." \n";
$mailheaders .= "Reply-To: $email\n\n";



echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "Merci,
";
echo "";
echo "Votre message a bien été envoyé.

";
echo "</HTML>";



?>

------------------

Merci

16 réponses

Messages postés
10
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
1 mars 2010

<form action="send.php" method="post" enctype="text/plain">
<td width="299"></td>
</tr>
<tr>
<td>
Pr&eacute;nom :
</td>
<td></td>
</tr>
<tr>
<td>
Speudo :
</td>
<td>
</td>
</tr>
<tr>
<td>
Email :
</td>
<td>
</td>
</tr>
<tr>
<td>
Mot de passe :
</td>
<td>
</td>
</tr>
<tr>
<td>
Ville :
</td>
<td>
</td>
</tr>
<tr>
<td>
Date de naissance :
</td>
<td>
jj/mm/aaa
</td>
</tr>
<tr>
<td>
Sexe :
</td>
<td>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>



</td>
</tr>
</table>

</form>
Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

Salut,
bon, déja la fonction mail n'est pas présente dans la partie PHP, mais si tu recois le mail, je suppose que dans ton script elle y est...
Ce que j'ai remarqué, c'est la façon dont tu utilise les variables qui est bizzard :

$message = "Nom: $nom\n";
$message = "Prenom: $prenom\n";
$message = "Email: $email\n";
$message = "Speudo: $speudo\n";
$message = "Mot de passe : $motdepasse\n";
$message = "Ville: $ville\n";
$message = "Date de naissance: $date\n";
$message = "Sexe: $sexe\n";

Or si tu procède de cette façon, il y a un problème car au final $message sera égal à $sexe, mais pas au reste puisque tu replace à chaque fois le contenu de la variable... tu devrai faire comme ca je pense :

$message = "Nom: $nom\n";
$message .= "Prenom: $prenom\n";
$message .= "Email: $email\n";
$message .= "Speudo: $speudo\n";
$message .= "Mot de passe : $motdepasse\n";
$message .= "Ville: $ville\n";
$message .= "Date de naissance: $date\n";
$message .= "Sexe: $sexe\n";

Et dernière petite chose, je ne sais pas si c'est encore d'actualité mais il y a encore un an ou un peu plus, les serveurs de free ne permettaient pas l'envoie de mail... à voir...

Bonne chance et bonne dev @+


----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
-----------------
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

ouais envoi nous le code en entier...



ensuite, remplace les " par des ' : tu les utilises de la même façon, sauf que les ' sont plus rapides...



ensuite, plutot que de faire plein de lignes pour ton $message, tu peux en faire plusieurs, mais en une seule instruction :



$message='

sujet : '.$sujet.'



message : '.$message.'







';

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
10
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
1 mars 2010

----
Partie Formulaire
----


<form action="send.php" method="post" enctype="text/plain">
<td width="299"></td>
</tr>
<tr>
<td>
Prénom :
</td>
<td></td>
</tr>
<tr>
<td>
Speudo :
</td>
<td>
</td>
</tr>
<tr>
<td>
Email :
</td>
<td>
</td>
</tr>
<tr>
<td>
Mot de passe :
</td>
<td>
</td>
</tr>
<tr>
<td>
Ville :
</td>
<td>
</td>
</tr>
<tr>
<td>
Date de naissance :
</td>
<td>
jj/mm/aaa
</td>
</tr>
<tr>
<td>
Sexe :
</td>
<td>
</td>
</tr>
<tr>
<td> </td>
<td>



</td>
</tr>
</table>

</form>


---
Partie PHP
---


<?php


$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$speudo = $_POST['speudo'];
$motdepasse = $_POST['motdepasse'];
$ville = $_POST['ville'];
$date = $_POST['date'];
$sexe = $_POST['sexe'];


$message =
'Nom: .$nom.'
'Prenom: .$prenom.'
'Email: .$email.'
'Speudo: .$speudo.'
'Mot de passe : .$motdepasse.'
'Ville: .$ville.'
'Date de naissance: .$date.'
'Sexe: .$sexe.'


message :'.$message.'

',


$recipient = [mailto:'adresse@mail.com' 'adresse@mail.com'];
$subject = 'Formulaire contact';



$mailheaders = 'From:'.$email.' \n';
$mailheaders .= 'Reply-To: $email\n\n';


mail($recipient, $subject, $message);


echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "Merci,
";
echo "";
echo "Votre message a bien été envoyé.

";
echo "</HTML>";



?>

----
End
----

Voilà le code 'entier' comme il était au départ avec les diverses modifications que chacun d'entre vous m'a expliqué, c'est correct ou non ?

Donc je l'ai transferé sur le Ftp, et j'ai cette erreur là à l'envoie du formulaire :

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/sdc/d/7/masenco/FormailPlus/send.php on line 23

Line 23 : 'Mot de passe : .$motdepasse.'

Merci.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

déja, remplace :



$mailheaders .= 'Reply-To: $email\n\n';
mail($recipient, $subject, $message);



echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "Merci,
";
echo "";
echo "Votre message a bien été envoyé.

";
echo "</HTML>";




par :



$mailheaders .= 'Reply-To: '.$email.'



';

mail($recipient, $subject, $message);

echo '<HTML><HEAD>

<TITLE>Formulaire envoyé!</TITLE></HEAD>

Merci,




Votre message a bien été envoyé.


</HTML>';


ça fera un code plus propre et déja plus simple à lire... ensuite,
je te demandais de cibler le problème... pas de reposter le code en
séparant les parties... la partie html, on s'en tape... sauf un
formulaire qui peut être utile, mais t'étais pas obligé de tout
remettre... ça rend la lecture difficile...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
10
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
1 mars 2010

Ok, Ok, Bon le problème c'est la ligne 23 que j'ai mis en Gras de couleur Rouge, voilà, peut-être plus clair maintenant :S

<?php


$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$speudo = $_POST['speudo'];
$motdepasse = $_POST['motdepasse'];
$ville = $_POST['ville'];
$date = $_POST['date'];
$sexe = $_POST['sexe'];


$message =
'Nom: .$nom.'
'Prenom: .$prenom.'
'Email: .$email.'
'Speudo: .$speudo.'
'Motdepasse: .$motdepasse.'
'Ville: .$ville.'
'Date de naissance: .$date.'
'Sexe: .$sexe.'


message :'.$message.'


';


$recipient = [mailto:'adresse@mail.com' 'adresse@mail.com'];
$subject = 'Formulaire contact';



$mailheaders .= 'Reply-To: '.$email.'


';
mail($recipient, $subject, $message);
echo '<HTML><HEAD>
<TITLE>Formulaire envoyé!</TITLE></HEAD>
Merci,

Votre message a bien été envoyé.

</HTML>';



?>

----
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,


$message =
'Nom: '.$nom.'
'Prenom: '.$prenom.'
'Email: '.$email.'
'Speudo: '.$speudo.'
'Motdepasse: '.$motdepasse.'
'Ville: '.$ville.'
'Date de naissance: '.$date.'
'Sexe: '.$sexe.'



message :'.$message.'



';



regardes tes quotes...



je crois qu'ici, ta variable $message n'est pas remplie, t'as aussi du oublier avant un truc genre :



$message =$_POST['message'];

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
10
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
1 mars 2010

Voilà le dernier code que j'ai mis en ligne, donc là je reçois bien le mail avec tous les champs mais petit problème que je ne comprends pas, je reçois ceux ci comme moi mail :

Nom: $nom Prenom: $prenom Email: $email Speudo: $speudo

Mot de passe : $motdepasse Ville: $ville Date de naissance: $date Sexe: $sexe








Au Lieu des informations remplis par l'internaute :X






---


Code Php


---




<?php


$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$speudo = $_POST['speudo'];
$motdepasse = $_POST['motdepasse'];
$ville = $_POST['ville'];
$date = $_POST['date'];
$sexe = $_POST['sexe'];
$message =$_POST['message'];


$message = 'Nom: $nom';
$message .= 'Prenom: $prenom';
$message . = 'Email: $email';
$message .= 'Speudo: $speudo';
$message .= 'Mot de passe : $motdepasse';
$message . = 'Ville: $ville';
$message .= 'Date de naissance: $date';
$message .= 'Sexe: $sexe';


$recipient = [mailto:'adresse@mail.com' 'adresse@mail.com'];
$subject = 'Formulaire contact';


$mailheaders .= 'Reply-To: '.$email.'


';
mail($recipient, $subject, $message);



echo '<HTML><HEAD>
<TITLE>Formulaire envoyé!</TITLE></HEAD>
Merci,


Votre message a bien été envoyé.

</HTML>';


?>
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

t'as pas lu mon dèrnier message : tes quotes sont mal positionnées !!!






$message =
'Nom: '.$nom.'
'Prenom: '.$prenom.'
'Email: '.$email.'
'Speudo: '.$speudo.'
<gras>'Motdepasse: '.$motdepasse.'</gras>
'Ville: '.$ville.'
'Date de naissance: '.$date.'
'Sexe: '.$sexe.'



message :'.$message.'



';



In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
10
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
1 mars 2010

Si si j'avais lu ta derniére réponse mais en faisant ainsi j'obtiens une erreur à la line 24


Soit :


'Prenom: '.$prenom.'


pour cette erreur là :


Parse error: parse error, unexpected T_STRING in /var/www/sdc/d/7/masenco/FormailPlus/send.php on line 24

Et j'ai vu qu'en passant comme j'ai fait je n'obtiens plus ce message d'erreur, je reçois le mail mais c'est là que sa cloche..
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,


oulala autant pour moi...


$message =
'Nom: '.$nom.'
Prenom: '.$prenom.'
Email: '.$email.'
Speudo: '.$speudo.'
<gras>Motdepasse: '.$motdepasse.'</gras>
Ville: '.$ville.'
Date de naissance: '.$date.'
Sexe: '.$sexe.'
message :'.$message.'
';



In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
10
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
1 mars 2010

Messages postés
10
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
1 mars 2010

Bah j'ai envie de te dire qu'aprés les maintes manipulation et la bonne volonté que j'y ai mise et de ta patience et conseil cela ne marche toujours pas :S !
Messages postés
10
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
1 mars 2010

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
Salut,

quel est le message d'erreur ???

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
Messages postés
3
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
28 février 2010

Formulaire tu dois le corigie comme ça:

<form action="send.php" method="post" enctype="text/plain">
<td width="299"></td>
</tr>
<tr>
<td>
Prénom :
</td>
<td></td>
</tr>
<tr>
<td>
pseudo :
</td>
<td>
</td>
</tr>
<tr>
<td>
Email :
</td>
<td>
</td>
</tr>
<tr>
<td>
Mot de passe :
</td>
<td>
</td>
</tr>
<tr>
<td>
Ville :
</td>
<td>
</td>
</tr>
<tr>
<td>
Date de naissance :
</td>
<td>">

</td>
</tr>
<tr>
<td>
Sexe :
</td>
<td>
</td>
</tr>
<tr>
<td> </td>
<td>



</td>
</tr>
</table>




</form>

-----------------------------------------------------
Partie Php
-----------------------------------------------------

<?php

$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$speudo = $_POST['pseudo'];
$motdepasse = $_POST['passe'];
$ville = $_POST['ville'];
$date = $_POST['date'];
$sexe = $_POST['sexe'];

$message = "Nom: \t$nom\n";
$message = "Prenom: \t$prenom\n";
$message = "Email: \t$email\n";
$message = "Speudo: \t$pseudo\n";
$message = "Mot de passe : \t$passe\n";
$message = "Ville: \t$ville\n";
$message = "Date de naissance: \t$date\n";
$message = "Sexe: \t$sexe\n";

$recipient = "adresse@mail.com";
$subject = "Formulaire contact";


$mailheaders = "From:".$email." \n";
$mailheaders .= "Reply-To: $email\n\n";

mail( $recipient, $subject, $message, $mailheaders);
echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "Merci,
";
echo "";
echo "Votre message a bien été envoyé.

";
echo "</HTML>";


?>



boyss