Vous êtes ici Codes PHP et MySQL > Sécurité > Anti spam sur les listes de mots clés

 

Anti spam sur les listes de mots clés

Pour empêcher des listes de mots clés du genre (hello, salut, bonjour, hey) de pénétrer sur votre site, le seul moyen est de compter les séparateurs qui séparent les mots clés (,;:-_) et de faire une moyenne avec le nombre de mots que contient le texte. Dans un texte normalement constitué, nous devrions trouver 1 séparateur tous les 6-8 mots.

Dans le code ci dessous il est possible d'avoir un séparateur identifié (,;:-_) tous les 4 mots, car la variable $nombre_de_mots_par_separateur est par défaut à 4.

Dans le code ci dessous il est également possible d'avoir l'ensemble, cad le total des séparateurs (,;:-_) trouvés dans le texte tous les 6 mots, car la variable $nombre_de_mots_total est par défaut à 6.

En dessous de ces valeurs cela pose des problèmes et c'est très certainement du spam!!

Le code suivant fait plusieurs chose: il va dans un premier temps compter le nombre de mots puis compter le nombre de séparateur mais de manière indépendante . Il va faire l'analyse sur chaque séparateurs et renvoie par PRINT le résultat et ensuite fait l'analyse sur l'ensemble des séparateurs et renvoie par PRINT le résultat.
 
KOogar
Site de l'auteur voir
[65] sources en PHP voir
Code vu 2714 fois
Enregistré le 12 Juin 2009
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Anti spam sur les listes de mots clés
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Anti spam sur les listes de mots clés                     */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts516-PHP.htm              */
/* Auteur         : KOogar                                                    */
/* Date édition   : 12 Juin 2009                                              */
/* Website auteur : http://www.koogar.fr                                      */
/*                                                                            */
/******************************************************************************/



   // A PARAMETRER
   $texte "hello,; comment,; va-tu ? alors,; l'alien est,;: de -retour ?";
   $nombre_de_mots_par_separateur 4// autorise un séparateur tous les 4 mots
   $nombre_de_mots_total 6// autorise un séparateur tous les 6 mots pour le total
   $masque = array(',',';',':','-','_'); // Les séparateurs


   // DEBUT DU CODE
   $i=0;
   while ($i count($masque)) {
   $tab_resultat[] = preg_match_all("/([$masque[$i]]+?)/",$texte,$result_nombre)
;
   $i++;
   }

   // Place tous les mots d'une chaine dans un tableau
   $tab_mot preg_split("/[\s,.:\?-]+/"$texte);
   // compte le nombre de mots
   $nombre_mot count($tab_mot);

   $i=0;
   while ($i count($tab_resultat)) {
     
// commence par compter le nombre total de separateur que contient le texte
     $nbre_total_de_resultat $nbre_total_de_resultat $tab_resultat[$i];
     // pour eviter la division par Zéro
     if ($tab_resultat[$i] == 0$tab_resultat[$i] = 1;
     // divise le nombre de mots par le nombre de séparateur
     $resultat_mot $nombre_mot $tab_resultat[$i];
     // arrondi le résultat
     $resultat_mot round($resultat_mot);
     if ($resultat_mot <= $nombre_de_mots_par_separateur) {
     // PRINT
     echo '<b>SPAM</b> !! Il y a 1 séparateur <b>"'.$masque[$i].'"</b> tous les
           <b>'.$resultat_mot.'</b> mots
           et vous en autorisez que <b>'.$nombre_de_mots_par_separateur.
'</b><br />'; }
     else  {
     echo '<b>OK !!</b> Il y a 1 séparateur <b>"'.$masque[$i].'"</b> tous les
           <b>'.$resultat_mot.'</b> mots
           et vous autorisez <b>'.$nombre_de_mots_par_separateur.'</b><br />'; }
     $i++;
     }

     if ($nbre_total_de_resultat >= $nombre_de_mots_total)
     // PRINT
     echo 'Il y a un problème car il existe <b>'.$nbre_total_de_resultat.'</b>
     séparateurs dans le texte pour <b>'.$nombre_mot.'</b> mots
     et vous en autorisez que <b>'.$nombre_de_mots_total.'</b>';
     else
     echo 'Il y n\'a pas de problème car il existe que <b>'.
$nbre_total_de_resultat.'</b>
     séparateurs  dans le texte pour <b>'.$nombre_mot.'</b> mots
     et vous autorisez <b>'.$nombre_de_mots_total.'</b>';


// Affiche :

/*
   SPAM !! Il y a 1 séparateur "," tous les 4 mots et vous en autorisez que 4
   SPAM !! Il y a 1 séparateur ";" tous les 4 mots et vous en autorisez que 4
   OK !! Il y a 1 séparateur ":" tous les 14 mots et vous autorisez 4
   OK !! Il y a 1 séparateur "-" tous les 7 mots et vous autorisez 4
   OK !! Il y a 1 séparateur "_" tous les 14 mots et vous autorisez 4
   Il y a un problème car il existe 11 séparateurs dans le texte pour 14 mots et
 vous en autorisez que 6
*/

?>

 

Fonctions du code

: Crée un tableau - (PHP 4, PHP 5)
: Compte le nombre d'éléments d'un tableau ou le nombre de propriétés...
: Expression rationnelle globale - (PHP 4, PHP 5)
: Éclate une chaîne par expression rationnelle - (PHP 4, PHP 5)
: -
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Sécurité

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité