Problème envoi formulaire
jordane45 Messages postés 30426 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
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
$headersca 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...
-
Bonjour !
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é.