|
La Communauté Webmaster 
| Pages: [1] |
 |
|
|
|
Auteur |
Sujet: Problème avec script de contact (Lu 14995 fois) |
|
 |
Problème avec script de contact
« sur: le 31-07-2013 a 19:50:34 » |
|
Flomaluso
Membre récent

Hors-Ligne
Messages: 17

|
Bonsoir à tous 
Je fais de nouveaux appels à vous et à vos grandes connaissances, puisque j'ai de nouveaux un problème, mais sa vous vous en doutiez déjà. 
Alors voilà, je vous l'expose : J'ai mis un script de contact sur le site que j'essaie de faire hier. Le script marchait bien hier, je recevais bien sur ma boite mail les messages que j'ai essayé de m'envoyer pour test; mais aujourd'hui, ça ne marche plus, et je n'arrive pas à trouver ce que j'ai bien pu modifier. Le script m'affiche bel et bien le message me disant que le message et partis, mais il n'arrive jamais sur ma boite mail. J'espère donc que l'un de vous pourra m'aider à résoudre ce problème.
Voici le code : <?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"; $list['f_5']=array("Sélectionnez","Oui","Non merci"); $list['f_6']=array("Sélectionnez","Oui"); 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=strip_tags(trim($f_2)); $f_3=strip_tags(trim($f_3)); // Verification des champs if(strlen($f_2)<2){ $erreur.="<li><span class='txterror'>Le champ « Mon mail » est vide ou incomplet.</span>"; $errf_2=1; }else{ if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'. '[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$', $f_2)){ $erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>"; $errf_2=1; } } if(strlen($f_3)<2){ $erreur.="<li><span class='txterror'>Le champ « Adresse mail de replis » est vide ou incomplet.</span>"; $errf_3=1; }else{ if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'. '[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$', $f_3)){ $erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>"; $errf_3=1; } } if(strlen($f_4)<2){ $erreur.="<li><span class='txterror'>Le champ « Votre message » est vide ou incomplet.</span>"; $errf_4=1; } if($f_5==0){ $erreur.="<li><span class='txterror'>Le champ « Je m'abonne à la newsletter » n'a pas été défini.</span>"; $errf_5=1; } if($f_6==0){ $erreur.="<li><span class='txterror'>Le champ « J'accepte les Conditions Générales d'Utilisation » n'a pas été défini.</span>"; $errf_6=1; } if($erreur==""){ // Création du message $titre="Message de votre site"; $tete="From:Site@Declaration-amoureuse-anonyme-avec-reponse.web44.net\n"; $corps.="Prénom : ".$f_1."\n"; $corps.="Mon mail : ".$f_2."\n"; $corps.="Adresse mail de replis : ".$f_3."\n"; $corps.="Votre message : ".$f_4."\n"; $corps.="Je m'abonne à la newsletter : ".$list['f_5'][$f_5]."\n"; $corps.="J'accepte les Conditions Générales d'Utilisation : ".$list['f_6'][$f_6]."\n"; if(mail("monadresse@monfournisseur.fr", $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>"; } } } ?> <html>
<head> <style type="text/css" media="screen"><!-- INPUT { color: #FFFFFF; font-size: 12px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: ffc150 } SELECT { color: #FFFFFF; font-size: 12px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: ffc150 } TEXTAREA { color: #FFFFFF; font-size: 12px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: ffc150 } .txterror { color: #FFFFFF; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular } .txtform { color: #FFFFFF; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular } --></style> </head>
<body> <style> body {background-color: #778899;} </style>
<? if($ok_mail=="true"){ ?> <table width='100%' border='0' cellspacing='1' cellpadding='1'> <tr><td><span class='txtform'>Votre message nous à bien été transmis.</span></td></tr> <tr><td><span class='txtform'>Nous vous remercions pour ce dernier, nous éssayerons de le traiter dans les plus brefs 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> 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'>Prénom :</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'>Mon mail* :</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%'><span class='txtform'>Adresse mail de replis* :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".
$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Votre message* :</span></td><td><textarea style='width:360 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".
$color_font_warn);}?>;' name='f_4' rows='6' cols='40'><?echo$f_4?></textarea></td></tr> <tr><td align='right' width='30%'><span class='txtform'>Je m'abonne à la newsletter* :</span></td><td><select style='width:200 <?if($errf_5==1){print("; background-color: ".$color_form_warn.";
color: ".$color_font_warn);}?>;' name='f_5' size='1'> <? for($id=0;$id<count($list['f_5']);$id++){ if($id==$f_5){$ct="selected";} print("<option ".$ct." value=".$id.">".$list['f_5'][$id]."</option>"); unset($ct); }?> </select></td></tr> <tr><td align='right' width='30%'><span class='txtform'>J'accepte les Conditions Générales d'Utilisation* :</span></td><td><select style='width:200 <?if($errf_6==1){print("; background-color: ".
$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_6' size='1'> <? for($id=0;$id<count($list['f_6']);$id++){ if($id==$f_6){$ct="selected";} print("<option ".$ct." value=".$id.">".$list['f_6'][$id]."</option>"); unset($ct); }?> </select></td></tr> <tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr> </table> </form> <? } ?> </body> </html>
|
|
Merci par avance pour votre aide  A bientôt Flo' |
|
|
|
|
|
|
 |
Re:Problème avec script de contact
« Répondre #1 sur: le 31-07-2013 a 22:38:17 » |
|
|
|
|
 |
Re:Problème avec script de contact
« Répondre #2 sur: le 01-08-2013 a 00:04:55 » |
|
|
|
|
 |
Re:Problème avec script de contact
« Répondre #3 sur: le 01-08-2013 a 02:42:20 » |
|
|
|
|
 |
Re:Problème avec script de contact
« Répondre #4 sur: le 01-08-2013 a 09:21:55 » |
|
pppplus
Habitué
  
Hors-Ligne
Messages: 482

php / mysql
|
Si vous isolez juste le script du mail, vous aurez plus de réponses. Car là, il faut parcourir pas mal de lignes inutiles avant d'arriver au mail proprement dit.
Pour éviter d'aller en spam automatiquement, il va falloir améliorer le header du mail.
$tete="From:Site@Declaration-amoureuse-anonyme-avec-reponse.web44.net\n";
Est insuffisant. De mémoire, il faut un espace après le From:
Envoyer les mails en SMTP avec signature DKIM 2048bits devient nécessaire pour gmail par exemple, sinon, c'est en spam. Mais au moins, en envoyant avec mail(), il faut un bon header de mail.
Je ne sais pas quelle est votre version php, mais <? ne marche pas à partir de php5.3. Il faut <?php
Exemple de header qui devrait améliorer les choses (avec html et txt) :
<?php $headers=""; $boundary = md5(uniqid (rand()));/*séparation du mail HTML / TEXT*/ $headers .= "Return-Path: ".$expediteur." \r\n"; $headers .= "Date:" . date("D, j M Y G:i:s O") . "\r\n"; $headers .= "Error-To: ".$expediteur." \r\n"; $headers .= "From: ".$expediteur."\r\n"; $headers .= "Reply-to: ".$expediteur."\r\n"; $headers .= "X-Priority: 3\r\n"; $headers .= "X-Mailer: PHP ".phpversion()."\r\n"; $headers .= "Mime-Version: 1.0\r\n"; $headers .= "Content-Type: multipart/alternative;\r\n"; $headers .= " boundary=\"p2".$boundary."\"\r\n"; $headers_sup= "-f".$expediteur;
/*DEBUT DU MESSAGE*/ /*$message="This is a multi-part message in MIME format.\r\n\r\n";*/ $message=""; /*MESSAGE EN TEXTE*/ $message .= "--p2".$boundary."\r\n"; $message .= "Content-Type: text/plain; charset = \"iso-8859-1\"\r\n"; $message .= "Content-Transfer-Encoding: 8bit\r\n\r\n\r\n"; $text=html_entity_decode(strip_tags($email_message)); $message .= $text; $message .= "\r\n\r\n\r\n"; /*MESSAGE EN HTML*/ $message .= "--p2".$boundary."\r\n"; $message .= "Content-Type: text/html; charset = \"iso-8859-1\"\r\n"; $message .= "Content-Transfer-Encoding: 8bit;\r\n\r\n\r\n"; $message.="<html><head><title>".$subject."</title></head><body>"; $message.="<br/>\r\n".$email_message; $message.="</body></html>\r\n\r\n\r\n\r\n"; $message .= "--p2".$boundary."--\r\n"; mail($destinataire,$siteurl." ".mb_encode_mimeheader($subject),$message,$headers,$headers_sup);
?> |
|
Attention : $headers_sup n'est pas supporté par tous les hébergeurs. Donc, enlevez-le si ça bloque. Ce code utilise 4 variables :
$subject le sujet de votre email $email_message qui est votre message au format HTML $expediteur qui est l'adresse qui envoie $destinataire adresse à qui vous envoyez
Voilà, j'espère que ça vous sera utile. Envoyez un mail à check-auth@verifier.port25.com Vous aurez une réponse, quant au score spam, dkim ...
Dernière chose : l'adresse expéditeur devrait être une "vraie" adresse disponible sur le domaine d'envoi, et pas une adresse gmail, free, live.... Ca n'empêche pas d'envoyer le mail, ça empêche juste la bonne réception. |
capsules rechargeables Dolce Gusto et Nespresso jeux flash gratuits avec la plus grosse boutique cadeaux du net Accessoires cuisine pratiques |
|
|
 |
Re:Problème avec script de contact
« Répondre #5 sur: le 05-08-2013 a 22:36:05 » |
|
|
|
|
| Pages:
[1] |
|
|
|
| |
|
|