Фильтруем POST и GET массивы на спам

Написал класс для фильтрации траффика на спам. А именно класс ищет в переменных передаваемых GEt-ом и POST-ом на запрещенные слова. Класс можно использовать при проверке форм.
Класс использует таблицу базы данных, как место хранения слов — запретов, которые нужно фильтровать.

add_keywords($keywords)

Эта функция выполняет непосредственное добавление ключевого слова в базу, если до этого его там небыло.


select_keywords()

Эта функция разделяет ключевые слова введенные через запятую и передает их в функцию


chech_data()

И наконец сама функция которая выполняет проверку массивов, на запрещенные слова и фразы.

Приведу листинг самого класса:

class stop_spam{
private $table='spam';
public $sqllink;
public $sql;

private function add_keywords($keywords){

$keywords = mysql_real_escape_string(strip_tags(trim($keywords)));

$sql = "SELECT * FROM ".$this->table." WHERE `keyword`='".$keywords."' LIMIT 1";

$query = mysql_query($sql,$this->sqllink);

$count = mysql_num_rows($query);

if ($count==0){

$sql = "INSERT INTO ".$this->table." SET `keyword`='".$keywords."'";

mysql_query($sql,$this->sqllink)? $result=true: $result=false;

return $result;

}else {

return false;

}

}

public function select_keywords(){

$keywords = explode(',',trim($_POST['keywords']));

foreach ($keywords as $key => $val){

$this->add_keywords($val);

}

}

public function chech_data(){

$sql = "SELECT * FROM ".$this->table;

$query = mysql_query($sql,$this->sqllink);

while ($result = mysql_fetch_object($query)){

foreach ($_POST as $key => $val ){

$val = 'str_'.$val;

if (strpos(trim($val),$result->keyword)>0){

return false;

}

}

foreach ($_GET as $key => $val ){

$val = 'str_'.$val;

if (strpos(trim($val),$result->keyword)>0){

return false;

}

}

}

return true;

}

}

И скрипт создания таблицы для ключевых слов:


CREATE TABLE `spam` (
`id` int(11) unsigned NOT NULL auto_increment,
`keyword` varchar(100) NOT NULL,
PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;

Вот и все. Теперь можете использовать класс при проверке своих форм.

Надежная герметизация межпанельных швов Петрозаводск, защитит ваш доб или офис от влаги и ветра.

Один ответ на “Фильтруем POST и GET массивы на спам”

Добавить комментарий