Remplacement de ereg par preg_match pour PHP5
Fermé
VINCENTNINI
-
Modifié par VINCENTNINI le 13/02/2012 à 17:34
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 13 févr. 2012 à 19:20
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 13 févr. 2012 à 19:20
A voir également:
- Remplacement de ereg par preg_match pour PHP5
- Coco chat remplacement - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Uptobox remplacement - Accueil - Services en ligne
- Remplacer disque dur par ssd - Guide
- Remplacer par word - Guide
1 réponse
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 13/02/2012 à 19:20
Modifié par [Dal] le 13/02/2012 à 19:20
Salut VINCENTNINI,
- Il y a '' qui se balade au début de expression
- l'expression n'est pas entre guillemets
- l'expression n'est pas délimitée par des "/"
- les parenthèses dans l'expression ne sont pas nécessaires puisque tu ne captures rien
Cela fait beaucoup par rapport à la syntaxe décrite au manuel https://www.php.net/manual/en/function.preg-match.php
Une version corrigée serait :
Cependant, je ne comprend pas très bien que ce ton expression vérifie, et je ne crois pas qu'elle fasse ce qu'elle est supposée faire.
Là elle va chercher dans la chaîne s'il y a une suite quelconque de 4 à 20 caractères qui remplissent la condition.
Par exemple si la chaîne vaut "&2+45 } 6789012345678901234 56", l'expression passera, car elle va rencontrer "6789012345678901234" qui remplit les conditions posées.
Si tu veux que cette condition soit vraie pour tous les caractères de la chaîne, il faut préciser que l'expression débute au début de la chaîne et se termine à la fin.
Comme cela :
Mais bon, c'est toi qui vois, car je ne fais qu'essayer de deviner ce que tu veux faire.
Ai-je bien deviné ?
Dal
- Il y a '' qui se balade au début de expression
- l'expression n'est pas entre guillemets
- l'expression n'est pas délimitée par des "/"
- les parenthèses dans l'expression ne sont pas nécessaires puisque tu ne captures rien
Cela fait beaucoup par rapport à la syntaxe décrite au manuel https://www.php.net/manual/en/function.preg-match.php
Une version corrigée serait :
if ( !preg_match("/[A-Za-z0-9_]{4,20}/",$_POST[TB_Nom_Utilisateur]) )
Cependant, je ne comprend pas très bien que ce ton expression vérifie, et je ne crois pas qu'elle fasse ce qu'elle est supposée faire.
Là elle va chercher dans la chaîne s'il y a une suite quelconque de 4 à 20 caractères qui remplissent la condition.
Par exemple si la chaîne vaut "&2+45 } 6789012345678901234 56", l'expression passera, car elle va rencontrer "6789012345678901234" qui remplit les conditions posées.
Si tu veux que cette condition soit vraie pour tous les caractères de la chaîne, il faut préciser que l'expression débute au début de la chaîne et se termine à la fin.
Comme cela :
if ( !preg_match("/^[A-Za-z0-9_]{4,20}$/",$_POST[TB_Nom_Utilisateur]) )
Mais bon, c'est toi qui vois, car je ne fais qu'essayer de deviner ce que tu veux faire.
Ai-je bien deviné ?
Dal