|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
FILTRE À GROS MOTS POUR LIVRE D'OR
Information sur la source
Description
J'ai 54 ans et c'est mon premier post, j'en tremble encore... C'est une fonction toute bête qui filtre les gros mots, à placer jute avant l'insert dans la page d'insertion d'un message d'un livre d'or ou d'un forum. Évidemment, là où l'anti-spam de Google se casse les dents, cette fonction se les casse aussi. Si le mot est dans la liste, le message sera interdit, mais s'il ne l'est pas ou orthographié différemment, il passera. Un ami à moi ne voulait pas entendre parler de son divorce sur son forum perso et tous les messages contenant ce mot ont été effectivement interdits, mais il a fallu qu'il rajoute séparation et le nom de son ex... Cependant en ce qui concerne les messages laissés sur les livres d'or et les forums par les robots spammeurs, c'est efficace à 100%
Source
- <?php
- function anti_grosmots($texte,$fichier,$rep) {
- //on mets en minuscules et on enlève les accents
- $texte = strtolower(OterAccents($texte));
- //on élimine d'office http (robots spammeurs) et les caractères éventuels laissés par htmlentities
- if(preg_match("/http/i", $texte || preg_match("/<b>/i", $texte))
- {
- header("Location:$rep");
- exit;
- }
- $liste = file_get_contents($fichier);
- $tab = explode("\r\n", $liste);
- foreach($tab as $mot)
- {
- if (preg_match("/^$mot$/i",$texte))
- {
- header("Location:$rep");
- exit;
- }
- }
- }
- ?>
<?php
function anti_grosmots($texte,$fichier,$rep) {
//on mets en minuscules et on enlève les accents
$texte = strtolower(OterAccents($texte));
//on élimine d'office http (robots spammeurs) et les caractères éventuels laissés par htmlentities
if(preg_match("/http/i", $texte || preg_match("/<b>/i", $texte))
{
header("Location:$rep");
exit;
}
$liste = file_get_contents($fichier);
$tab = explode("\r\n", $liste);
foreach($tab as $mot)
{
if (preg_match("/^$mot$/i",$texte))
{
header("Location:$rep");
exit;
}
}
}
?>
Conclusion
Quand les mises à jour seront finies, j'ajouterai le fichier d'insert, pour ceux qui ne savent pas (si, si, il y en a).
Historique
- 03 décembre 2007 12:06:16 :
- tentative d'améliorer la lisibilité du code (colorisation)
- 03 décembre 2007 12:07:05 :
- Re
- 03 décembre 2007 12:08:03 :
- Ben, pas trouvé comment...
- 03 décembre 2007 12:11:13 :
- encore un essai
- 03 décembre 2007 12:44:26 :
- j'avais oublié un mysql_query
- 03 décembre 2007 14:18:25 :
- corrections momentanées en attendant mieux
- 03 décembre 2007 14:19:22 :
- corrections momentanées en attendant mieux
- 03 décembre 2007 18:02:43 :
- mise à jour en suivant les conseils des gentils
- 03 décembre 2007 22:15:24 :
- rectification du code avec les derniers conseils
- 04 décembre 2007 11:10:32 :
- corrigé Location
- 04 décembre 2007 11:56:57 :
- correction dans explode, \n, comme on me l'avait conseillé, est incomplet (hexadécimal!!!)
- 04 décembre 2007 13:03:55 :
- enfin, introduction correcte du strpos, j'y ai brulé 5000 neurones, gagné 124 cheveux blancs, mais aussi une belle satisfaction, merci à tous
- 04 décembre 2007 13:48:52 :
- j'ai honte
- 05 décembre 2007 09:00:04 :
- ajout de preg_match pour la chaîne "http" et éviter ainsi les messages publicitaires avec liens
- 06 décembre 2007 10:04:07 :
- meilleur placement du preg_match
- 06 décembre 2007 10:54:54 :
- pour raccourcir la liste des gros mots qui ne sera ainsi qu'en minuscules et sans accent, on met le texte en minuscules et sans accents en utilisant le code fort utile donné par Arnotic
- 06 décembre 2007 12:40:26 :
- petits allègement. On appelle donc la fonction créée par Arnotic
- 07 décembre 2007 01:56:51 :
- strpos ne convient pas puisqu'il prend aussi une partie du mot, j'ai pensé que preg_match serait mieux, mais ça ne marche pas non plus...
- 07 décembre 2007 02:10:50 :
- corrigé, mais en dehors du manuel php, ça fonctionne, mais j'ai fait comme avec ereg...
- 07 décembre 2007 11:31:16 :
- rajout dans preg_match de balises js traduites en html provenant des attaques éventuelles faites par des petits plaisantins, attaques annulées par htmlentities, mais qui polluent quand même les messages.
- 08 décembre 2007 19:13:01 :
- complément de commentaire
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
PHP Mysql : la chaine la 'plus proche' d'une sous chaine. [ par irkiouak ]
Bonjour chers developpeurs,J'ai crée une formulaire de recherche d'un sujet (sur la table sujet) avec un champ texte critere.Ce que je
Couper une chaine tous les X mots [ par 3xodius55 ]
Bonjour (ou re-bonjour pour quelques uns^^),Est-ce que vous sauriez par hasard comment je pourrai couper une chaine tous les X mots.La chaîne en quest
Extraire les mots d'une chaine [ par footalex12 ]
Bonjour,Je souhaite extraire chaque mots d'une phrase ( j'ai des centaines de phrases à extraire )J'ai reussi une petite bidouille "pourrie" mais le
Trier une table [ par LaurentKOogar ]
Bonjour,Bonjour,Je re,Voila, c'est un algo de tri mais ca ne tri rien du toutle champ id_cat : INTle champ description : VARCHAR 
Analyser la page pour créer un filtre [ par tony4758 ]
Bonjour, je souhaiterai faire un code permettant d'analyser tous les mots de la page et dès qu'il trouve un mot comme "sexe" il affiche un texte
MOTEUR DE RECHERCHE [ par loupile ]
bonjour, j'ai fais un moteur de recherche, oui mais voila il ne fonctionne que sur une chaine ... normale je recupère la valeur de mon champ de reche
éliminercees mots d'une chaine et insere dans la base [ par hadjiphp ]
Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : j'ai une chaine de caract
fonction php + supprimer des mots dans une chaine [ par hadjiphp ]
Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : je cherche une fonction
récupérer des mots d'une chaine + insérer dans une base de données [ par hadjiphp ]
Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : j'ai une chaine de carac
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC Touch HD
Entre 25€ et 605€
|