La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  Problème avec script de contact
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  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





Voir le Profil
Répondre avec citation

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 :
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 &laquo; Mon mail &raquo; 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 &laquo; Adresse mail de replis &raquo; 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 &laquo; Votre message &raquo; est vide ou incomplet.</span>";
      $errf_4=1;
   }
   if($f_5==0){
      $erreur.="<li><span class='txterror'>Le champ &laquo; Je m'abonne à la newsletter &raquo; n'a pas été défini.</span>";
      $errf_5=1;
   }
   if($f_6==0){
      $erreur.="<li><span class='txterror'>Le champ &laquo; J'accepte les Conditions Générales d'Utilisation &raquo; 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>&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'>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'

Rapporter au modérateur  

Re:Problème avec script de contact
« Répondre #1 sur: le 31-07-2013 a 22:38:17 »
burtgummer
Habitué
***

Hors-Ligne

Messages: 219





Voir le Profil
Répondre avec citation

bonsoir,

à cette ligne

if(mail("monadresse@monfournisseur.fr", $titre, stripslashes($corps), $tete)){
        $ok_mail="true";

remplacer monadresse@monfournisseur.fr par votre mail

ça devrait fonctionner

Rapporter au modérateur  
Re:Problème avec script de contact
« Répondre #2 sur: le 01-08-2013 a 00:04:55 »
Flomaluso
Membre récent
*

Hors-Ligne

Messages: 17





Voir le Profil
Répondre avec citation

Bonsoir burtgummer,

Merci beaucoup pour votre réponse = ) Mais ce n'est pas cela, j'ai mis cette adresse juste pour pouvoir publier le post, mais dans ma page, j'ai déjà placé mon adresse. Merci tout de même pour votre réponse. J'espère que quelqu'un aura la solution.

A bientôt,
Flo'

Rapporter au modérateur  
Re:Problème avec script de contact
« Répondre #3 sur: le 01-08-2013 a 02:42:20 »
burtgummer
Habitué
***

Hors-Ligne

Messages: 219





Voir le Profil
Répondre avec citation

bonjour,

je viens d'essayer le script sur un hébergement. Tout fonctionne parfaitement mais au bout de 2-3 tests sur chaque boite les messages arrivent dans les spams

(testé sur gmail, boite 1&1, yahoo)

cordialement,

Rapporter au modérateur  
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

Voir le Profil    WWW
Répondre avec citation

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) :
Code:
<?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.

Rapporter au modérateur  

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 »
Flomaluso
Membre récent
*

Hors-Ligne

Messages: 17





Voir le Profil
Répondre avec citation

Bonsoir,

Merci à vous deux pour vos réponses, mais sa n'a visiblement pas décidé de marcher. En tout cas merci beaucoup à vous d'avoir pris un peu de temps pour me répondre. Je me débrouillerai sans se script, temps pi.

Encore merci à vous

Rapporter au modérateur  
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg