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