Problème envoi formulaire

mathieu_n Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -  
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&eacute;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 &agrave; exp&eacute;dier<br />

  <input name="exp" value="Cde recuperee " type="radio" /> passer une commande &agrave; venir
retirer &agrave;<br />

  <br />

  <p>Ecrivez vos questions ou votre commande :<br />

  <textarea name="commande" rows="8" cols="55">
  </textarea></p>

  <p>&nbsp;<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

mathieu_n Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   14
 

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...

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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 

1
mathieu_n Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   14 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 

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: ***@***

 

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > mathieu_n Messages postés 65 Date d'inscription   Statut Membre Dernière intervention  
 

Je sais bien ...  mais là, faut voir avec ton hébergeur ^^

Ce n'est pas un souci de "code"

1
BoBot Messages postés 6038 Date d'inscription   Statut Modérateur Dernière intervention   382
 
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é.

-1