Problème envoi formulaire
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Depuis hier mon formulaire de contact sur mon site ne fonctionne plus. Je n'ai fait aucune modification mais je ne reçois plus les formulaires remplis sur le site.
voici mon formulaire:
<form method="post" action="formmail.php">Nom : <input name="Nom" value="" type="text" /> <span style="color: rgb(255, 0, 0);">*</span><br /> Prénom : <input name="Prenom" value="" type="text" /> <br /> code postal: <input name="code" value="" type="text" /><br /> adresse mail: <input name="email" value="" type="text" /> <span style="color: rgb(255, 0, 0);">*</span><br /> <br /> <span style="text-decoration: underline;">Vous souhaitez :</span><br /> <input name="exp" value="Cde a expedier" type="radio" />une demande de renseignement<br /> <input name="exp" value="Cde a expedier" type="radio" />passer une commande à expédier<br /> <input name="exp" value="Cde recuperee " type="radio" /> passer une commande à venir retirer à<br /> <br /> <p>Ecrivez vos questions ou votre commande :<br /> <textarea name="commande" rows="8" cols="55"> </textarea></p> <p> <input value="Envoyer" type="submit" /> </p> </form>
voici le formail.php:
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
$TO = "***@***";
//$email=$_POST['email'];
//$header= 'From:'.$email.'';
$headers = "From: ".$_POST['email'] ."";
//$headers .= "X-Mailer: PHP/" . phpversion();
$subject="www.monsite.fr";
$message = "";
foreach($_POST as $key=>$val){
$message .= "$key : $val\n";
}
//test si bien envoyé
if(mail($TO, $subject, $message, $headers)){
Header("Location: merci.html");
}else{
echo "pb d'envoi du formulaire!
merci de nous contacter directement par mail: ***@***";
}
?>
Comme vous pouvez vous en douter en voyant ma question, je suis un débutant voir en dessous d'un débutant en php...
Si quelqu'un avait une solution à mon problème ca serait génial ;-)
Bonne journée,
Mathieu
- Confirmer le nouvel envoi du formulaire err_cache_miss
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Envoi impossible messenger - Forum Facebook Messenger
- Formulaire de reclamation instagram - Guide
- Formulaire de contact le bon coin introuvable - Forum Réseaux sociaux
2 réponses
j'ai trouvé d'où venait le problème mais pas la solution pour le résoudre!
J'arrive à envoyer le formulaire si je n'affiche pas l'expéditeur dans le mail.
Dans la ligne:
if(mail($TO, $subject, $message, $headers)){
si j'enlève
$headers
ca envoie bien le mail... mais l'expéditeur ne s'affiche pas dans mes mails.
Donc je suppose que le problème vient de:
$headers = "From:" .$_POST['email']."";
Merci de votre aide...
L'IA qui aime les défis est là !
Le problème peut venir de plusieurs sources. Tout d'abord, vérifie si le fichier "formmail.php" est correctement situé dans le même répertoire que ton formulaire.
Une autre possibilité est que le service d'envoi de mails PHP puisse être désactivé sur ton serveur. Tu peux le vérifier en contactant ton hébergeur.
Ensuite, assure-toi que l'adresse email "$TO" dans le fichier PHP est correctement saisie.
Si tout semble correct, je te suggère d'essayer quelques tests de débogage supplémentaires. Par exemple, vérifie si le formulaire envoie bien les données à PHP en ajoutant une ligne pour imprimer toutes les variables $_POST. Tu peux aussi utiliser la fonction "error_get_last()" après la fonction mail() pour obtenir des détails sur toute erreur potentielle.
Finalement, je recommanderais de vérifier le code de ton fichier PHP. Ce n'est pas une bonne pratique de désactiver l'affichage des erreurs en production. Tu peux utiliser la fonction "error_reporting(E_ALL)" et "ini_set('display_errors', '1')" pour afficher toutes les erreurs, mais assure-toi de les désactiver sur le serveur de production une fois tout débogué.
bonjour
pour limiter les tentatives de pishing et le spam, les serveurs limitent (voir bloquent) les mails dont l'adresse du from ne correspond pas au domaine du site.
places donc l'email de l'expéditeur dans le corps du mail au lieu d'essayer de le mettre dans ton headers
Merci pour cette réponse!
Le problème c'est que c'était bien pratique de recevoir le formulaire avec son adresse mail dans la ligne expéditeur...
Pour trier les mails c'etait quand même plus pratique que de recevoir tous les formulaires avec comme expéditeur: ***@***
Je sais bien ... mais là, faut voir avec ton hébergeur ^^
Ce n'est pas un souci de "code"