Bonjour,
Suite à ce post, j'ai mis en place une fonction sur mon forum, pour bloquer les ip des gens qui postent des messages avec des mots grossiers.
Cela fonctionne bien, mais il convient d'optimiser la liste des mots à bannir.
Je m'explique : Pour le moment le motAbannir va l'être si il est écrit comme je viens de l'écrire. Mais si le gars poste motAbannir, ou motAbannirs, ou ,moAbannir etc... donc si il n'y a pas un espace devant et derrière le motAbannir et bien le script ne le détecte pas et le laisse passer comme les analphabètes de Troie.
Pour le moment, la liste des mots interdit est ainsi faite:
Ensuite je remplace les mots à bannir par des * et je compare le message initial avec celui dans lequel se trouve éventuellement des *. Si les deux messages sont différents, c'est donc qu'il y a des * dans le second et par conséquents que des motAbannirs ont été postés :le pc du gars se met à planter et s'éteind automatiquement (bon ok seule l'ip est bloquée, le pc qui brule ça sera pour plus tard, quand je serais un pro).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $interdit=array( '#\bmotAbannir1\b#i', '#\bmotAbannir2\b#i', );
Donc bien sur je peux faire une liste qui inclu les , et . et s etc... dans le tableau ci dessous, mais c'est horriblement fastidieux.
Donc avez-vous une solution, chers confrères, pour résoudre ce modeste problème ?
(je précise que les accents et triples consonnes sont pris en comptes, le problème vient juste de la ponctuation qui peut entourer les mots et de leur éventuelle forme pluriel)
Merci d'avance.
Partager