Téléchargement
illégal
Posez votre question Signaler

Remplacement de ereg par preg_match pour PHP5

VINCENTNINI - Dernière réponse le 13 févr. 2012 à 19:20
Bonjour,
devant transformer une vérification de formulaire pour tourner sous PHP5, je suis obligé d'utiliser preg_match en lieu et place de ereg.
Apres avoir fait ce remplacement j' ai cette ligne
if(!preg_match((''[[A-Za-z0-9_]]{4,20}),$_POST[TB_Nom_Utilisateur]))
{
echo "Votre nom d utilisateur doit comporter entre 4 et 20 caractères";
echo "L utilisation de l underscore est autorisée";
}
elseif.........................
run donne un message d'erreur suivant :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE in .... ligne 19 soit la ligne modifiée.
Je suis peut etre aveugle mais je ne trouve pas l'erreur !!
Une idée serait la bienvenue !
Merci d'avance
Lire la suite 

Remplacement de ereg par preg_match pour PHP5 »

1 réponses
Réponse
+0
moins plus
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 http://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
Ajouter un commentaire
Ce document intitulé « remplacement de ereg par preg_match pour PHP5 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?