problème d envoie de message

girafe62
Invité n'ayant pas de compte PHPfrance

19 sept. 2012, 21:22

bonsoir à tous,

sur mon site web à cette page j'ai un soucis , voila le lien http://www.davidmagnetiseur.com/temoignez.html

Le soucis est que ça m'envoie des mails mais vide sans l adresse mail de la personne etc .

je vous met aussi le code php :

<?php
$nom=$HTTP_POST_VARS['nom'];
$mail=$HTTP_POST_VARS['mail'];
$objet=$HTTP_POST_VARS['objet'];
$message=$HTTP_POST_VARS['message'];

/////voici la version Mine
$headers = "MIME-Version: 1.0\r\n";

//////ici on détermine le mail en format text
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";

////ici on détermine l'expediteur et l'adresse de réponse
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP";

$subject="$objet";
$destinataire="[email protected]"; //remplacez "[email protected]" par votre adresse e-mail
$body="$message";
if (mail($destinataire,$subject,$body,$headers)) {
echo "Votre mail a été envoyé<br>";
} else {
echo "Une erreur s'est produite";
}
?></p>
<p align="center">Vous allez bientot etre redirigé vers la page d'acceuil<br>
Si vous n'etes pas redirigé au bout de 5 secondes cliquez <a href="http://www.davidmagnetiseur.com">ici
</a></p>

Merci d'avance .

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 sept. 2012, 21:49

salut,

avant toute chose, $HTTP_POST_VARS ne devrait plus être utilisée depuis, heu 10 ans :)

utilise plutôt $_POST

As tu vérifier le contenu de tes variables ?
pour cela utilise var_dump
par exemple avec un var_dump($_POST); en haut de ton fichier cible (action du formulaire)

tu peux aussi l'utiliser pour voir ce que contiennent les variables avant d'utiliser la fonction mail.


@+
Il en faut peu pour être heureux ......

girafe62
Invité n'ayant pas de compte PHPfrance

19 sept. 2012, 22:32

merci , je vais essayer ca .

Bonne soirée .

girafe62
Invité n'ayant pas de compte PHPfrance

19 sept. 2012, 22:57

voila ce que ca a marquer mais je comprends pas : array(5) { ["departement"]=> string(2) "13" ["prenom"]=> string(0) "" ["email"]=> string(13) "Adresse email" ["motif"]=> string(29) "Indiquez ici votre temoignage" ["envoi"]=> string(1) "1" } Votre mail a été envoyé


Merci d'avance .

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 sept. 2012, 13:27

ce que tu a c'est le contenu des ce le formulaire envoie au serveur
array(5) {
["departement"]=> string(2) "13"
["prenom"]=> string(0) ""
["email"]=> string(13) "Adresse email"
["motif"]=> string(29) "Indiquez ici votre temoignage"
["envoi"]=> string(1) "1"
}
il s'agit d'un tableau qui à cinq valeurs (le (5) après array)
dans les [] se sont les index du tableau (departement, prenom etc)
après les => il s'agit du type de la valeur (ici string, c'est un chaîne de caractère) puis la valeur entre "

donc pour ["email"]=> string(13) "Adresse email"
index : email
valeur : Adresse email
c'est une chaîne de caractère (normal les formulaire ne donnent que des chaines de caractères).

Donc la je sais que tu a choisis un département et que tu cliqué sur le bouton sans remplir d'autre champs.

le message "Votre mail a été envoyé" indique que la fonction mail à fait son boulot (c'est a dire fournir les info du mail démon d'envoie du mail).

as tu ajouté var_dump($destinataire,$subject,$body,$headers); juste avant le if(mail .....) ?

s'il y a une différence entre celui ci que indique la et le var_dump ci dessus, c'est qu'il te faut revoir ta méthode de récupération des variables (dont le changement de HTTP_POST_VARS vers _POST !)


@+
Il en faut peu pour être heureux ......

girafe62
Invité n'ayant pas de compte PHPfrance

20 sept. 2012, 21:37

bonsoir le problème est résolu merci à tous .