Formulaire et mail de réponse

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire et mail de réponse

Re: Formulaire et mail de réponse

par Max1970 » 12 avr. 2011, 20:41

Je viens de trouver et c'est bien $tete .= "Reply-to: [email protected]\n"; qu'il fallait mettre mais avec $f_1 à la place de Testmonsite.fr, ce qui donne :

$tete="Reply-to:$f_1\n";

On retrouve bien $f_1 dans la ligne correspondant à la saisi de l'adresse mail par le visiteur :

<tr><td align='right' width='30%'><span class='txtform'>E-mail :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>

Je supposais que ces deux lignes devaient communiquer et donc, par tatonnement, j'y suis arrivé. Merci à tous pour votre aide !

Re: Formulaire et mail de réponse

par Max1970 » 12 avr. 2011, 18:22

Effectivement l'espace ne change rien.

Re: Formulaire et mail de réponse

par misterflo » 12 avr. 2011, 16:01

Logiquement ca ne pose pas de problème qu'il y ai un espace ou non, c'est juste pour une meilleur lecture.

Re: Formulaire et mail de réponse

par Mazarini » 12 avr. 2011, 15:54

Bonjour,

Par hasard, dans $tete="From:[email protected]\n"; il me manquerai pas un blanc derrière le from:
En effet, tu indiques maintenant que le $tete .= "Reply-to: [email protected]\n"; fonctionne avec un blac dans après le Reply-to:

Re: Formulaire et mail de réponse

par Max1970 » 12 avr. 2011, 15:14

Ça ne marche pas non plus mais par contre, si je remplace l'adresse mail par une autre dans ----- $tete .= "Reply-to: [email protected]\n"; ----- genre ----- $tete .= "Reply-to: [email protected]\n"; ----- j'ai bien [email protected] dans la zone A: lorsque je fais Répondre. Donc, peut-être qu'en faisant un lien entre :

<tr><td align='right' width='30%'><span class='txtform'>E-mail :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>

et

$tete .= "Reply-to: [email protected]\n";

...ça devrait marcher ? Merci en tous cas pour votre aide !

Re: Formulaire et mail de réponse

par misterflo » 12 avr. 2011, 13:00

Salut,
essaye de rajouter un Reply-to: dans le $tete
// Création du message
$titre="Message de votre site";
$tete = "From: [email protected]\n";
$tete .= "Reply-to: [email protected]\n";
$corps.="E-mail : ".$f_1."\n";
$corps.="Message : ".$f_2."\n";

Re: Formulaire et mail de réponse

par Mazarini » 12 avr. 2011, 11:20

Bonjour,

Il y a forcement une différence puisque ton client mail ne l'interprète pas de la même facon.

Pour ce qui est de la valeur du champ From, il est possible que ton hébergeur filtre pour que le mail soit forcement issue de ton domaine afin de faciliter les recherches en cas de spam. Eventuellement tu peux peux essayer d'ajouter un "replyto" (nom à vérifier)

Re: Formulaire et mail de réponse

par Max1970 » 12 avr. 2011, 11:13

Y a pas de différence. Je pense que le problème vient du fait que le champs mail est considéré comme un champs texte et peut-être qu'en modifiant la fonction de ce champs ça résoudrait le problème. En même j'ai un doute sur $tete="From:[email protected]\n"; car si on change après "From:" le mail ne part pas.

Re: Formulaire et mail de réponse

par Mazarini » 12 avr. 2011, 09:54

Bonjour,

Sur les clients mail, il y a la possibilité de voir le source du mail et/ou les entêtes. Compare entre le mail que tu envoies et un autre mail pour voir les différences aux alentours de la ligne "from:"

Re: Formulaire et mail de réponse

par Max1970 » 12 avr. 2011, 08:51

Ca ne marche pas.

Re: Formulaire et mail de réponse

par xTG » 12 avr. 2011, 08:05

Essayes à tout hasard avec \r\n à la place de \n à la fin de $tete.

Formulaire et mail de réponse

par Max1970 » 12 avr. 2011, 08:03

Bonjour à tous,

Je suis novice en PHP et j'ai un soucis avec un formulaire : il marche parfaitement sauf que quand je reçois un mail et que je clique sur "Répondre", le mail de l'expéditeur ne s'affiche pas dans le champs "A:". Voici le script en question et merci d’essayer de me dépanner :

AVANT HTML :

<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
// Verification des champs
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:[email protected]\n";
$corps.="E-mail : ".$f_1."\n";
$corps.="Message : ".$f_2."\n";
if(mail("[email protected]", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>

APRES BODY :

<? if($ok_mail=="true"){ ?>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b>&nbsp;ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>E-mail :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Message :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
<? } ?>