Formulaire - mail reçu totalement vide

Fermé
mattkar Messages postés 1 Date d'inscription mardi 14 juillet 2015 Statut Membre Dernière intervention 14 juillet 2015 - Modifié par jordane45 le 14/07/2015 à 19:28
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 14 juil. 2015 à 19:36
Bonjour,

je viens vers vous dans l'espoir de trouver une réponse.

Mon soucis est que le mail que je reçois avec mon formulaire est totalement vide.
En objet est écrit (pas d'objets) et dans "De" est écrit <>

Mon incompréhension viens du fait que j'ai fait un copier/coller d'un autre site que j'ai crée et pour lequel le formulaire marche très bien.

Je vous mets ci-dessous les codes des pages contact.php et envoi.php (j'ai même testé avec contact.html)

PAGE contact.php
<form action="envoi.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire">
              <tr>
                <td colspan="3"><strong>Envoyer un message</strong></td>
              </tr>
              <tr>
                <td width="22%"><div align="left">Votre nom :</div></td>
                <td colspan="2"><input name="nom" type="text" value="" size="50"></td>
              </tr>
              <tr>
                <td><div align="left">Votre prénom :</div></td>
                <td colspan="2"><input type="text" name="prénom" size="50" maxlength="100"></td>
              </tr>
              <tr>
                <td><div align="left">Votre téléphone :</div></td>
                <td colspan="2"><input type="text" name="téléphone" size="50" maxlength="100"></td>
              </tr>
              <tr>
                <td><div align="left">Votre mail :</div></td>
                <td colspan="2"><input name="mail" type="text" value="" size="50"></td>
              </tr>
              <tr>
                <td><div align="left">Sujet : </div></td>
                <td colspan="2"><input name="objet" type="text" value="" size="50"></td>
              </tr>
              <tr>
                <td valign="top"><div align="left">Message : </div></td>
                <td colspan="2"><textarea name="message" cols="50" rows="10"></textarea></td>
              </tr>
              <tr>
                <td></td>
                <td width="35%"><center>
                    <input type="reset" name="Submit" value="Réinitialiser le formulaire">
                  </center></td>
                <td width="43%"><center>
                    <input type="submit" name="Submit" value="Envoyer">
                  </center></td>
              </tr>
            </form>



PAGE envoi.php
<?php 
$nom=$HTTP_POST_VARS['nom'];
$prénom=$HTTP_POST_VARS['prénom']; 
$téléphone=$HTTP_POST_VARS['téléphone'];
$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="contact@XXXX-XXXX.fr"; //remplacez "webmaster@votre-site.com" par votre adresse e-mail
$body="
$nom
$prénom
$téléphone
$mail

$objet

$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="../index.html">ici



Si quelqu'un arrive à me dire d'où viens l'erreur je lui en suit très reconnaissant.

Merci d'avance a ceux qui prendront le temps de m'aider


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Merci d'y penser dans tes prochains messages.
.
A voir également:

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
14 juil. 2015 à 19:36
Bonjour,

1 - Ne pas utiliser de caractères accentués dans le nom des variables !

2 - Tu peux ajouter un print de ta variable POST pour voir si elle contient bien les infos souhaitées.

3 - Penses à vérifier avec la fonction ISSET ou EMPTY que tes variables existent AVANT de les utiliser...


<?php 

// Pour les tests :
print_r($_POST);

//Récupération PROPRE des variables
$nom=!empty($_POST['nom']) ? $_POST['nom'] : '';
$prenom=!empty($_POST['prenom']) ? $_POST['prenom'] : '';
$telephone=!empty($_POST['telephone']) ? $_POST['telephone'] : '';
$mail=!empty($_POST['mail']) ? $_POST['mail'] : ''; 
$objet=!empty($_POST['objet']) ? $_POST['objet']: ''; 
$message=!empty($_POST['message']) ? $_POST['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="contact@XXXX-XXXX.fr"; //remplacez "webmaster@votre-site.com" par votre adresse e-mail
$body="
			$nom
			$prenom
			$telephone
			$mail

			$objet

			$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="../index.html">ici

0