Én például így:
function isSpam($s,$e)
{
$black = array("<br>", "porn", "teen", "viagra","software","nice site","casino");
$white = array("zokni[kukac]mefi.be");
$point = 0;
foreach($black as $spam){
if(preg_match("#\b".$spam."\b#",$s)) { $point++; }
}
if(in_array($e,$white)){ $point - 5; }
if($point > 5){ return true; } else return false;
}
A fehér- és a feketelista elemeit természetesen adatbázisban tárolom, de maga a kezelés így működik.
Aki esetleg nem értené: a függvény egyesével végigzongorázza az összes tiltott szót, és ha a kommentben valamelyik szó egyezik a feketlistán szereplő elemek egyikével, akkor a feketepont értéke eggyel nő. Ha pedig a – jelen esetben &ndsah; e-mail cím szerepel a protekciós listán, akkor öt pontot levon a feketepontok összegéből. Ez értelmeszerűen azért van, hogy aki tíz éve itt kommentál, azt ne ellenőrizze ilyen szigorúan. Ha a feketepontok száma nagyobb, mint öt, visszatérési értéke igaz, ellenkező esetben hamis.
Eddig ez bevált, nem nagyon engedett be csak olyan szemeteket, amelyek tartalma egy e-mail volt, de már (úgy néz ki) azokat is szűri. Egyébként nekem a tiltott IP- és e-mail címeket és neveket is ezzel ellenőrzi, bár megjegyzendő, hogy nem sok ilyen van.
Még régebben ; ha még nem tettétek, olvassátok el azt is, minél többet lát az ember, annál jobb.
Egyébként a <code> elem helyett mért nem <pre>-t használok?

