PHP, boucle de tests anti-spam

Fermé
Mirax - 20 sept. 2009 à 11:40
 Mirax - 1 janv. 2010 à 13:32
Bonjour,

Je cherche à simplifier le code PHP suivant, que j'utilise dans un forum, afin d'éviter l'intrusion de messages de spam. Actuellement, je procède à des tests à la suite, pour voir si des mots-clés "interdits" apparaissent dans les messages postés. Si un test repère un mot-clé considéré comme spam, la variable "$spamhtml" prend alors la valeur "1", ce qui indique alors à mon forum de ne pas enregistrer le message dans la base de données.

J'imagine qu'il doit être possible de simplifier cette succession de tests par une sorte de boucle. Cela réduirait le nombre de lignes de mon code, et me simplifierait l'ajout de nouveaux mots-clés "interdits".

D'avance merci pour votre aide !

Voici un exemple du code PHP que j'utilise, et que je cherche donc à simplifier (boucle ?) :

$codehtml1 = 'viagra';
if (eregi($codehtml1, $message)) {
$spamhtml = '1';
}


$codehtml2 = 'porno video';
if (eregi($codehtml2, $message)) {
$spamhtml = '1';
}


$codehtml3 = 'buy cigarettes online';
if (eregi($codehtml3, $message)) {
$spamhtml = '1';
}
A voir également:

1 réponse

Bonjour

Oui c'est possible de faire une boucle.

$mots_interdits= array('viagra','porno video','buy cigarettes online');
foreach ($mots_interdits as $unmot) {
  if (eregi($unmot, $message)) { $spamhtml = '1'; break;} // break pour arrêter recherche au 1er mot trouvé
} // foreach


De là à dire que la méthode est efficace...
0
Parfait, un grand merci pour le coup de mains, cela fonctionne parfaitement.

Mirax
0