Controle de répétition de caractères

5/5 (8 avis)

Snippet vu 4 044 fois - Téléchargée 19 fois

Contenu du snippet

Bonjour

Ce petit code permet de contôler les répétitions de caractères et aussi de l'interdire. Je l'ai fait suite à la demande d'un ami qui voulait éviter que les visiteurs de son site mettent des commentaires flooder en écrivant n'importe quoi.
Certes cela n'empechera pas les gens d'écrire n'importe quoi et n'importe comment, mais au moins il n'y aura pas de message type "aaaaaaaaaaaaaabbbbbbbbbbbbbbb".

Ma fonction ecrira "ab".

Pour l'instant, je n'ai traité que les minuscules, libre choix a vous de modifier le code pour traiter les majuscules aussi.

Source / Exemple :


<?
function antiflood ($chaine) {
for($cdascii=97;$cdascii<=123;$cdascii++) {
// le chiffre 3 permet de controler qu'il y a 3 fois de suite le meme caractère
// Il fait le changer pour controler la repetition des caractères et l'adapter a vos besoins
$chaine=ereg_replace(chr($cdascii)."{3,}",chr($cdascii),$chaine);
}
return $chaine;
}
$tflood = "aaaaaaaabbbbbbbcddddeefghijkllmmmmmmnnn";
echo "Valeur départ : ".$tflood."<br>";
echo "Nouvelle valeur : ".antiflood($tflood)."<br>";
?>

A voir également

Ajouter un commentaire Commentaires
Messages postés
239
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
3 juin 2010
1
tu n'as pas bien lu mon message on dirait...
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
le ban a ses raisons que la raison .... on s'arretera la...

ce code fait quelquechose de disons pas clean je m'explique :

la peu importe la chaine, tu appliques de nombreuses fois la regexp, alors qu'un array suffirait
peu importe la chaine, meme si les lettres ne sont pas dedans, la regexp tentera quand meme de remplacer... c'est inutile...

et une seconde boucle, suffirait pour remplacer ce genre de choses...

on ne relevera pas l'incoherence cote sprintf :) t'es pas en C mec...
Messages postés
369
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
20 octobre 2013

exact ;-) de l'autre coté aussi tu as des exceptions: -- > elle a creee une toile....

Pour un forum, je me vois mal hasher les posts de mes membres, je modere manuel ;-)
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

@ LaurentKOogar... ça dépend du forum... de nos jour les mots à rallonge genre looooooool sont courant sans pour autant être mal intentionnés... .. . ;o)

@ tchaOo°
Messages postés
369
Date d'inscription
samedi 4 septembre 2004
Statut
Membre
Dernière intervention
20 octobre 2013

perso un gars qui hack un form avec des:: "xxxxxxxxxaaaaaaaaaaaaaabbbbbbbbbbbbbbb". Ce n'est pas intentionnel, je lui remplace nada, je le banni !!

KOogar
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (LSGSERVAL)