Problème envoi formulaire

mathieu_n Messages postés 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 - 14 févr. 2024 à 12:39
jordane45 Messages postés 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 - 19 févr. 2024 à 15:37

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 vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 14
16 févr. 2024 à 19:43

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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 696
17 févr. 2024 à 09:56

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 vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024 14 > jordane45 Messages postés 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024
19 févr. 2024 à 12:14

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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 696 > mathieu_n Messages postés 65 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 19 février 2024
19 févr. 2024 à 15:37

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

Ce n'est pas un souci de "code"

1
BoBot Messages postés 4005 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 7 novembre 2024 259
18 févr. 2024 à 19:19
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