Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Борьба со спамом в гостевых
 
 автор: Clocker   (24.06.2006 в 00:26)   письмо автору
 
 

есть массив спамовых слов, при обнаружении которых при отправке сообщения в гостевую спамеру выдается сообщение, что он написал спам и его перекидывает на главную страницу. Как реализовать? Проверка идет по textarea ($_POST['msg'])

массив

$spamword  = array ('valium', 
        'viagra', 
        'cilium', 
        'levitra', 
        'drugs', 
    'hydrocodone', 
        '<a href=', 
    '[url]' 
        ); 

foreach($spamword as $index=>$val) echo $val;


и должны быть проверка тут:

if (eregi('ЧТО ДОЛЖНО БЫТЬ ТУТ?', $_POST['msg']))
    {
    $error5 = 'No SPAM!';
    }
    if(isset($error5))
        {
        echo '<script>alert("'.$error5.'"); document.location.href="/"</script>';
        exit();
        }

   
 
 автор: cheops   (24.06.2006 в 12:25)   письмо автору
 
   для: Clocker   (24.06.2006 в 00:26)
 

Хм... а второй блок в цикле проходит?

   
 
 автор: Clocker   (24.06.2006 в 19:15)   письмо автору
 
   для: cheops   (24.06.2006 в 12:25)
 

Где перебор массива? GПроходит, но пишет все слова слитно в олну строку. Я и спрашиваю как реализовать

   
 
 автор: cheops   (24.06.2006 в 22:07)   письмо автору
 
   для: Clocker   (24.06.2006 в 19:15)
 

В смысле все слова в строчку?

   
 
 автор: Clocker   (24.06.2006 в 23:25)   письмо автору
 
   для: cheops   (24.06.2006 в 22:07)
 

В строчку это так:
valiumviagraciliumlevitradrugshydro codone<a href=[url]

Целью является перебор слов в массиве и сравнение с теми, что есть в сообщении. Т.е.., если слово из массива присутствует в сообщение, спамера перекидывает на главную страницу сайта и показывается сообщение No SPAM! Вроде все просто, но я запутался...

   
 
 автор: hell_riser   (25.06.2006 в 00:31)   письмо автору
 
   для: Clocker   (24.06.2006 в 23:25)
 

Попробейта так:

<?php
if(!empty($_POST['text']))
{
$text $_POST['text'];
$spam  = array ("valium""viagra""cilium""levitra""drugs""hydrocodone""<a href=""[url]");
foreach(
$spam AS $val);
    if(
eregi($val$text))
    {
        echo 
"NO SPAM";
    }

}else
{
    echo 
"Поле не заполнено";
}
?>

У меня работает

   
 
 автор: Clocker   (25.06.2006 в 01:35)   письмо автору
 
   для: hell_riser   (25.06.2006 в 00:31)
 

У меня тоже, благодарю. Это из серии "А ларчик просто открывался"-).
Спасибо.

   
 
 автор: valenok   (25.06.2006 в 09:23)   письмо автору
 
   для: hell_riser   (25.06.2006 в 00:31)
 

А нельзя

if(in_array($text,$spam))

   
 
 автор: Shura   (25.06.2006 в 10:26)   письмо автору
 
   для: Clocker   (24.06.2006 в 00:26)
 

Не советую пытаться избавиться от спама таким примитивным образом...бесполезно, замучаетесь добавлять в массив список ключнвых слов, ктороми спамят гесты. Только пиктокоды... и то... но это 90% успеха решения задачи.

   
 
 автор: valenok   (25.06.2006 в 10:48)   письмо автору
 
   для: Shura   (25.06.2006 в 10:26)
 

Полностью согласен.
Просто модераторов на сайте держите..

   
 
 автор: Владимир22   (09.07.2006 в 04:27)   письмо автору
 
   для: valenok   (25.06.2006 в 10:48)
 

А можно ли как-то список спамовых слов держать в отдельном текстовом файле (spam.txt) и сверять посланные данные с ним? Если да, то как это лучше сделать?

   
 
 автор: cheops   (09.07.2006 в 11:12)   письмо автору
 
   для: Владимир22   (09.07.2006 в 04:27)
 

Лучше сразу помещайте их в массив, а файл подключайте при помощи конструкции include() - так быстрее получится, не понадобится тратить время на разбор файла.

   
 
 автор: valenok   (09.07.2006 в 22:19)   письмо автору
 
   для: cheops   (09.07.2006 в 11:12)
 

А зачем массив в отдельный файл?
Бстрее получится если не подключать что либо.

   
 
 автор: cheops   (09.07.2006 в 22:29)   письмо автору
 
   для: valenok   (09.07.2006 в 22:19)
 

Обновлять отдельный файл с фильтром удобнее - не нужно каждый раз затрагивать и загружать код.

   
 
 автор: valenok   (09.07.2006 в 22:20)   письмо автору
 
   для: Владимир22   (09.07.2006 в 04:27)
 

Вам уже посоветовали не пытаться избавиться таким образом от спама?

   
 
 автор: BAHO   (10.07.2006 в 11:24)   письмо автору
 
   для: Clocker   (24.06.2006 в 00:26)
 

была такая же проблема с гостевой, но мудрить что то и создавать анти-спам на подобие анти-мата я не стал.
Есть 2 способа:
1. Добалять сообщения в гостевую после просмотра их модером или админом. Сообщения добавляются в базу (текстовую или sql), а потом новые мессаги смотрит админ или модер, удаляет ненужные и показывает нормальные. Тут минус - человеческий фактор. Человек может полениться делать эту процедуру, да или вовсе забыть.
2. Добавлять сообщения с вводом случайного числа, генерируемого скрипта. Тут человеческий фактор роли не играет. Да ис криптов-спамеров, которые бы читали цифры, буквы и символы с генерируемой картинки очень мало. На моей памяти - ни одного. Главное картинку генерируемую сделать посложнее, с шумом, цветными символами и различными наклонами. Этот способ почти не имеет минусов.

   
 
 автор: Loki   (10.07.2006 в 12:55)   письмо автору
 
   для: BAHO   (10.07.2006 в 11:24)
 

Имеет - я в подобных формах сообщений не оставляю. Если человек ленится модерировать собственный ресурс, то я не буду напрягаться ради него.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования