Bonjour,
Ma consultation des forums ne m’as pas fourni de solution à mon problème.
J’ai développé un formulaire d’inscription en HTML (<meta charset="utf-8">) et PHP, qui fonctionne tour à fait correctement, sauf la validation des caractères accentués.
Les saisies des informations dans le formulaire sont du type
Cette saisie fait l’objet d’une vérification de ce type :
La saisie d’un nom comportant un caractère accentué provoque l’erreur :
La syntaxe de votre nom est incorrecte.
Alors que dans le preg_match les caractères accentués sont déclarés.
Lors de l’affichage de cette erreur les données saisies dans le formulaire sont conservées et affichées, toutefois les caractères accentués s’affiche d’une autre façon, exemple é s’affiche é.
Merci de m’expliquer ce problème ou de me donner au moins une piste de solution.
Cordialement
Patrick Mara
Ma consultation des forums ne m’as pas fourni de solution à mon problème.
J’ai développé un formulaire d’inscription en HTML (<meta charset="utf-8">) et PHP, qui fonctionne tour à fait correctement, sauf la validation des caractères accentués.
Les saisies des informations dans le formulaire sont du type
<?php if($nom_oblig=="oui") {echo "<span class=\"obligatoire\">* </span>";} else {echo " ";}
<input type="text" name="nom" id="nom" placeholder="Votre nom (sans accent)" size="25" value="<?php echo( $nom ); ?>
Cette saisie fait l’objet d’une vérification de ce type :
$nom = filter_input( INPUT_POST, 'nom', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW );
if( $nom_oblig == "oui" )
{if( $nom === NULL OR $nom === false OR empty( $nom ) OR $nom === MAIL_NOM ) // si l'objet fourni est vide, invalide ou égale à la valeur par défaut
{
$errors[] = 'Veuillez saisir votre Nom.';
}
else {
if (!preg_match('/^[a-zéèàùûêâôë]{1}[a-zéèàùûêâôë -]*[a-zéèàùûêâôë]$/i',$nom))
{
$errors[] = 'La syntaxe de votre nom est incorrecte.';
}}
}
La saisie d’un nom comportant un caractère accentué provoque l’erreur :
La syntaxe de votre nom est incorrecte.
Alors que dans le preg_match les caractères accentués sont déclarés.
Lors de l’affichage de cette erreur les données saisies dans le formulaire sont conservées et affichées, toutefois les caractères accentués s’affiche d’une autre façon, exemple é s’affiche é.
Merci de m’expliquer ce problème ou de me donner au moins une piste de solution.
Cordialement
Patrick Mara