Написал класс для фильтрации траффика на спам. А именно класс ищет в переменных передаваемых 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 ;
Вот и все. Теперь можете использовать класс при проверке своих форм.
Надежная герметизация межпанельных швов Петрозаводск, защитит ваш доб или офис от влаги и ветра.
Большое спасибо! Взяла себе тоже-пригодится.