Afficher les données d'un formulaire de contact

Fermé
TeedyBer Messages postés 2 Date d'inscription mercredi 15 janvier 2014 Statut Membre Dernière intervention 16 janvier 2014 - 15 janv. 2014 à 17:20
TeedyBer Messages postés 2 Date d'inscription mercredi 15 janvier 2014 Statut Membre Dernière intervention 16 janvier 2014 - 16 janv. 2014 à 10:58
Bonjour,
Je suis débutant en php, et je souhaite faire un formulaire de contact sur une page internet.
J'arrive à l'afficher, mais, j'ai quelques problèmes à la réception :
-je ne vois pas le message ni les infos que je remplis
- les mails arrivent mais avec un retard de 1h30 à 3h

Voici le code que j'utilise (trouvé dans un tuto et "adapté")

Code dans ma page html :

<form id="contact_form" action="formulaire.php" method="post" enctype="text/plain" name="envoi" target="_blank">
<input type="hidden" name="subject" value="">
<div><intro>Remplissez le formulaire de contact et nous vous répondrons dans les meilleurs délais.</intro></div>
<div>
<label for="nom">Nom :</label>
<input type="text" id="nom" name="user_name" />
</div>
<div>
<label for="prenom">Prénom :</label>
<input type="text" id="prenom" name="user_firstname" />
</div>
<div>
<label for="courriel">Email :</label>
<input type="email" id="courriel" name="user_email" />
</div>
<div>
<label for="sujet">Sujet :</label>
<input type="text" id="sujet" name="user_subject" />
</div>
<div>
<label for="message">Message :</label>
<textarea id="message" name="user_message"></textarea>
</div>

<div class="button">
<button type="submit" ><intro>Envoyer votre message</intro></button>
</div>
</form>

Code sur la page formulaire.php :


<?php

$to = "petitber1@hotmail.com";
$sujet = "Formulaire de contact du site";
$from = $_POST['nom'];
$message =$_POST['message'];
$nom =$_POST['nom'];
$prenom =$_POST['prenom'];
while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}
mail($adresse, $sujet, $message, $nom, $prenom, $from);
header("Location:index.html");?>


Si quelqu'un si connaît et à une idée de ce qui ne va pas...
Merci d'avance pour votre aide

A voir également:

3 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
Modifié par Nhay le 15/01/2014 à 19:56
Bonjour,
Pour tes POST tu a confondu ID et name, $_POST["message"] n'existe pas dans ton cas, $_POST["user_message"], oui.

Pour le délai, ça viens surement du serveur SMTP, donc à priori, la meilleurs chose à faire est de contacter ton hébergeur.
0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
Modifié par Xavierdu34 le 15/01/2014 à 22:26
Comme le dit Nhay, tu as confondu les ids et les names.

Soit tu inverses id et name ... ce qui serait logique, les id devant être unique sur tout le document et les name uniquement dans ce formulaire. il vaudrait mieux utiliser le préfixe sur les ids.

soit tu changes comme te l'as indiqué Nhay.

ensuite je t'invite à aller voir la doc de la fonction mail().
https://www.php.net/manual/en/function.mail.php

Qui t'indique que le 4ème paramètre rajoute des informations à la fin du header.

Autant dire que $nom ne doit pas avoir une valeur adéquate pour ce paramètre, $prenom de la même manière, et le 6ème paramètre n'est carrement pas pris en compte.

Il te faut construire une string pour les headers en 4ème param, pour les bcc, cc etc ...

et je pense que le 5 ème param est inutile ds ton cas.

en clair ta fonction mail simplifié doit être je pense :

$mailbody = "$nom $prenom \r\n <br />$message";
mail($adresse, $sujet, $mailbody);


bon il n'y aura pas le from mais déjà ton mail devrait fonctionner.
Bon j'ai pas tester mais de tête je dirais que comme ça ce sera ok.
0
TeedyBer Messages postés 2 Date d'inscription mercredi 15 janvier 2014 Statut Membre Dernière intervention 16 janvier 2014
16 janv. 2014 à 10:58
Salut,
et merci beaucoup pour votre aide.
J'ai changé les id et les name comme tu l'as dit Nhay
et rajouter ce que tu m'a dit Xavier.

Je peux pas vous dire tout de suite si ca a marché, le mail n'etant pas encore arrivé. je vais regarder la doc sur la fonction mail en attendant.

Merci a tous les 2 !
0