Afficher les données d'un formulaire de contact
TeedyBer
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
TeedyBer Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
TeedyBer Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Afficher les données d'un formulaire de contact
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Supprimer les données de navigation - Guide
- Formulaire de reclamation instagram - Guide
- Retrouver un contact supprimé android - Accueil - Android
3 réponses
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.
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.
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 :
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.
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.
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 !
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 !