PHP : Valider NOM PRÉNOM avec accent exp rég
Résolu
katarina999
Messages postés
68
Date d'inscription
Statut
Membre
Dernière intervention
-
ktm620enduro Messages postés 293 Date d'inscription Statut Membre Dernière intervention -
ktm620enduro Messages postés 293 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit problème concernant la validation d'un nom (idem pour prénom, ville) contenant que des lettres minuscules, majuscules avec ou sans accent.
Voici mon code
Mon message d'erreur s'affiche quand je fais le test avec René par exemple.
J'avais utilisé ce code pour une insertion dans un base de données et actuellement je le réutilise pour un formulaire de contact. Mais bizarrement, il ne fonctionne pas comme je l'espère.
Merci de bien vouloir me porter secours.
Katarina999 ;)
J'ai un petit problème concernant la validation d'un nom (idem pour prénom, ville) contenant que des lettres minuscules, majuscules avec ou sans accent.
Voici mon code
//nom $nom = ucfirst($_POST["nom"]); //regex pour le nom if (preg_match("/^([a-zA-Z'àâéèêôùûçÀÂÉÈÔÙÛÇ[:blank:]-]{1,75})$/", $nom)) $regex_nom = true; else $regex_nom = false; //si le nom est invalide if (!empty($nom) and ($regex_nom == false)) $msg .= 'Nom invalide <br />';
Mon message d'erreur s'affiche quand je fais le test avec René par exemple.
J'avais utilisé ce code pour une insertion dans un base de données et actuellement je le réutilise pour un formulaire de contact. Mais bizarrement, il ne fonctionne pas comme je l'espère.
Merci de bien vouloir me porter secours.
Katarina999 ;)
A voir également:
- Regex nom prenom
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
4 réponses
Voici mon code, qui pourrait trouver le bug qui s'y cache ?
Et voici le formulaire qui est dans un fichier form.php
Ce code fonctionnait pour un formulaire qui entrait le données reçues dans une BDD. Mais cette fois-ci, mon code ne valide plus les accents, pourtant il ne s'agit d'un copier coller de mon ancien code !
Merci d'avance !
<?php if (isset($_POST['envoyer'])) { //VARIABLE //initialise la variable de messages d'erreurs à vide $msg = ''; //nom $nom = ucfirst($_POST["nom"]); //regex pour le nom if(preg_match("/^([a-zA-Z'àâéèêôùûçÀÂÉÈÔÙÛÇ[:blank:]-]{1,75})$/", $nom)) $regex_nom = true; else $regex_nom = false; //ERREURS //si données manquantes if (empty($nom) or empty($prenom)) { $msg .= 'Remplir le form. <br />'; } //si le nom n'est pas valide if ((!empty($nom)) and ($regex_nom == false)) $msg .= 'Nom invalide <br />'; if (empty($msg)) { echo 'Nom : '.$nom.'<br />'; } else { echo $msg; include('form.php'); } } else { include('form.php'); } ?>
Et voici le formulaire qui est dans un fichier form.php
<form method="post" action=""> <p>Nom * : <input name="nom" size="30" maxlength="40" /></p> <p><input type="submit" value="Envoyer" name="envoyer"</p> </form>
Ce code fonctionnait pour un formulaire qui entrait le données reçues dans une BDD. Mais cette fois-ci, mon code ne valide plus les accents, pourtant il ne s'agit d'un copier coller de mon ancien code !
Merci d'avance !
Bonjour,
Le test effectué fonctionne pourtant très bien :
Bien entendu, le prénom Anaïs ne satisfait pas le masque car le ï n'est pas pris en compte dans le masque ainsi que le ë de Noël et le ü de Güdrun (minuscules et capitales).
Le test effectué fonctionne pourtant très bien :
<?php //$nom = 'Hervé'; //$nom = 'Gérard'; //$nom = 'René'; //$nom = 'Anaïs'; //$nom = 'Noël'; //$nom = 'Güdrun'; $nom = 'Jean louis'; if(preg_match("/^([a-zA-Z'àâéèêôùûçÀÂÉÈÔÙÛÇ[:blank:]-]{1,75})$/", $nom)) echo "$nom satisfait le masque"; else echo "$nom ne satisfait pas le masque"; ?>
Bien entendu, le prénom Anaïs ne satisfait pas le masque car le ï n'est pas pris en compte dans le masque ainsi que le ë de Noël et le ü de Güdrun (minuscules et capitales).
Mon fichier en utf8:
Johan
Je vais faire le test et je te dirai si cela marche avec mon formulaire.
Comme tu l'avais dit, mon encodage était UTF-8. Je l'ai donc passé en iso-8859-1 et tout fonctionne.
Cependant, j'ai souvent ce genre de problème lorsque je code en PHP. Je ne sais pas s'il faut être en UTF-8 ou en iso-8859-1. Que me conseillerais-tu ?
Merci.