Bloquer des nombre dans un champs texte

Eléphant du PHP | 136 Messages

08 déc. 2006, 22:12

Bonsoir,

dans un champs texte j aimerai que le joueurs puisse mettre une seul fois un numero exemple:


01 ou 02 si le numero y est deja que ca renvoie sur erreur ca je c est le faire mes le probleme et de savoir comment bloquer ceci.


Merci a vous :wink:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 déc. 2006, 00:31

C'est pas super clair, mais en gros il te suffit de comparer les différentes valeurs qui ont été saisies dans les champs lorsque tu reçois le formulaire : si champ2 == champ1, ou champ3 == champ1, ou champ3 == champ2, ou champ4 == champ1, etc. :)

De manière plus simple à coder, tu peux mettre au fur et à mesure tes valeurs dans un tableau et utiliser in_array() pour chaque nouvelle valeur afin de vérifier si elle n'est pas déjà présente...

Si c'est lors de la saisie ou avant soumission du formulaire que tu veux informer le visiteur qu'il s'est trompé, c'est en javascript qu'il faut le faire (mais cela ne dispense pas d'un véritable contrôle coté php vu qu'on peut toujours bidouiller avec du js :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 136 Messages

09 déc. 2006, 00:41

C est dans le meme chanp


donc si je met 01 une fois je ne veut pas qu il soit reinscrit une deuxieme fois... merci :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 déc. 2006, 00:51

Dans ce cas, en fonction du séparateur utilisé entre les nombres (probablement l'espace ?) tu peux par exemple utiliser la fonction explode() de la valeur de ton champ pour générer un tableau avec chaque nombre.

Il te suffit ensuite de regarder s'il existe des doublons (en comptant le nombre d'éléments après l'avoir passé à l'anti doublon, ou bien en bouclant sur les éléments du tableau pour les tester, ou autre.. y a plein de fonctions sur les tableaux à découvrir dans la doc ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...