IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire et caractères spéciaux


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Formulaire et caractères spéciaux
    Salut à tous, j'ai trouvé un générateur de formulaire assez efficace sur la toile, notamment en ce qui concerne les controles de saisies, mais le seul souci c'est lorsque celà arrive par mail, les caractères accentués, apostrophes... ne sont pas traités



    Je vous mets ci-dessous le code utilisé. J'imagine que c'est pas évident en vous mettant tout ce pâté et je comprendrais que vous ne puissiez pas m'aider. Mais c'est juste au cas où ça se joue à un détail évident (qui ne l'est pas pour moi vu que ce n'est pas mon domaine du tout). Par avance merci.

    Voici ma page contact :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <?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 !
    $list['f_7']=array("Choix option 1","Choix option 2");
    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)));
    	$f_3=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_3)));
    	$f_4=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_4)));
    	$f_5=strip_tags(trim($f_5));
    	$f_6=trim(eregi_replace("[^0-9\ +]", "", $f_6));
    	// Verification des champs
    	if(strlen($f_1)<2){
    		$erreur.="<li><span class='txterror'>Le champ &laquo; Nom &raquo; est vide ou incomplet.</span>";
    		$errf_1=1;
    	}
    	if(strlen($f_5)<2){
    		$erreur.="<li><span class='txterror'>Le champ &laquo; E-Mail &raquo; est vide ou incomplet.</span>";
    		$errf_5=1;
    	}else{
    		if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
    		'@'.
    		'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
    		'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
    		$f_5)){
    			$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
    			$errf_5=1;
    		}
    	}
    	if(strlen($f_6)<2){
    		$erreur.="<li><span class='txterror'>Le champ &laquo; Téléphone &raquo; est vide ou incomplet.</span>";
    		$errf_6=1;
    	}
    	if($f_7==""){
    		$erreur.="<li><span class='txterror'>Le champ &laquo; Je &raquo; n'a pas été défini.</span>";
    		$errf_7=1;
    	}
    	if(strlen($f_8)<2){
    		$erreur.="<li><span class='txterror'>Le champ &laquo; Votre demande &raquo; est vide ou incomplet.</span>";
    		$errf_8=1;
    	}
    	if($erreur==""){
    		// Création du message
    		$titre="Message de votre site";
    		$tete="From:Site@monsite.fr/pages/contact.php\n";
    		$corps.="Nom : ".$f_1."\n";
    		$corps.="Prenom : ".$f_2."\n";
    		$corps.="Entreprise : ".$f_3."\n";
    		$corps.="Localisation : ".$f_4."\n";
    		$corps.="E-Mail : ".$f_5."\n";
    		$corps.="Téléphone : ".$f_6."\n";
    		$corps.="Je : ".$list['f_7'][$f_7]."\n";
    		$corps.="Votre demande : ".$f_8."\n";
    		if(mail("monmail@fai.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>";
    		}
    	}
    }
    ?>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <? 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{ ?>
    <div class="formulaire"><form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
      <table width='100%' border='0' cellspacing='3' cellpadding='3'>
     
     
      <tr>
      <td align='right' width='11%'><span class='txtform'>Nom :</span></td><td width="24%"><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>
      <td width="36%" rowspan="2"><table border='0' cellspacing='0' cellpadding='0'>
    <? for($id=0;$id<count($list['f_7']);$id++){
    if($id==$f_7){$ct="checked";}
    print("<tr><td><input ".$ct." type='radio' name='f_7' value=".$id." border='0'></td><td><span class='txtform'>".$list[f_7][$id]."</span></td></tr>");
    unset($ct);
    }?>
    </table></td>
      <td width="29%" rowspan="7"><table><? if($erreur){ ?><tr>
        <td colspan='4' bgcolor='red'><span class='txterror'><font color='white'><b>&nbsp;</b></font></span><span style="font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; font-size: 11px;"><font color='white'><b>V</b></font></span><span class='txterror'><font color='white'><b>otre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='4'><ul><?echo$erreur?></ul></td></tr><?}?></table></td>
    </tr>
    <tr><td align='right' width='11%'><span class='txtform'>Prenom :</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='11%'><span class='txtform'>Entreprise :</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>
      <td rowspan="5"><span class='txtform'>Votre demande :</span><br /><textarea style='width:280 <?if($errf_8==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_8' rows='6' cols='40'><?echo$f_8?></textarea></td>
      </tr>
    <tr><td align='right' width='11%'><span class='txtform'>Localisation :</span></td><td><input type='text' style='width:200 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' value='<?echo stripslashes($f_4);?>' size='24' border='0'></td>
      </tr>
    <tr><td align='right' width='11%'><span class='txtform'>E-Mail :</span></td><td><input type='text' style='width:200 <?if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' value='<?echo stripslashes($f_5);?>' size='24' border='0'></td>
      </tr>
    <tr><td align='right' width='11%'><span class='txtform'>Téléphone :</span></td><td><input type='text' style='width:200 <?if($errf_6==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_6' value='<?echo stripslashes($f_6);?>' size='24' border='0'></td>
      </tr>
    <tr><td align='right' width='11%'></td><td>
     
    </td>
      </tr>
    <tr valign="top"><td align='right' width='11%'></td><td valign="top" align="right" colspan="2">
      <input type='submit' name='submit' value='Envoyer' border='0'><img src="../images/spacer.gif" width="40" height="1" /><br />
     
        </td>
      <td align="right">&nbsp;</td>
    </tr>
     
    </table>
    </form></div>
    <? } ?>
    Cordialement.

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    apparemment c'est juste l'e-mail qui ne s'affiche pas correctement.
    essaye de mettre ça pour la ligne "$tete" pour indiquer que l'e-mail est en UTF-8
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tete = "From: Site@monsite.fr\nContent-type: text/plain; charset=UTF-8\n";

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Ca marche, t'es un malade toi non ?

    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire et caractères spéciaux
    Par zefox dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2008, 17h05
  2. Problème formulaire et caractères spéciaux
    Par dolf13 dans le forum Langage
    Réponses: 2
    Dernier message: 25/10/2006, 10h08
  3. parametre de formulaire dont la valeur contient de caractères spéciaux
    Par jakouz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/04/2006, 14h29
  4. Réponses: 10
    Dernier message: 31/03/2006, 20h46
  5. Réponses: 3
    Dernier message: 27/11/2004, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo