Помогите пожалуйста с обработкой комментов на сайте, сил больше нет (((

ККлава

Новичок
Здравствуйте.
Помогите пожалуйста обработать комментарии, переданные через форму.
Каждый день по 30-40 сообщений удаляю, а они все лезут и лезут, замучалась уже одно и то же удалять!
Вот что мне на сайт в комментах пишут:
Получается, что вставляют ссылки на другие сайты. Как прекратить этот беспредел?
Это мой код обработки формы
PHP:
if (
    isset($_POST['name']) && !empty($_POST['name']) &&
    isset($_POST['time']) && !empty($_POST['time']) &&
	isset($_POST['blok']) && !empty($_POST['blok']) &&
    isset($_POST['text']) && !empty($_POST['text'])
)
{
    // Обрабатываем данные
    $name = stripslashes(trim(htmlspecialchars($_POST['name'],ENT_QUOTES)));
    $time = stripslashes(trim(htmlspecialchars($_POST['time'],ENT_QUOTES)));
	$id = stripslashes(trim(htmlspecialchars($_POST['blok'],ENT_QUOTES)));
    $text = stripslashes(trim(htmlspecialchars($_POST['text'],ENT_QUOTES)));
	
	  $sql = "INSERT INTO
        comments (name, text, blok, date )
    VALUES
        ('$name','$text','$id','$time' )
    ";
    mysql_query($sql); 
	header('Location: ' . $_SERVER['PHP_SELF']. "?id=$id");
    exit;
}
 

ККлава

Новичок
Может ссылку дадите? Читать засяду, ткните носом, как исправить ошибки, пожалуйста...
 

Фанат

oncle terrible
Команда форума
Пока по вышеприведённой ссылке статья не обновлена, я бы порекомендовал новую версию - http://habrahabr.ru/post/148701/

По поводу защиты от ботов, для небольшой гостевой вполне подойдёт простенькая защита-обманка.

Добавить к форме одно поле, обозвать "email", в описании попросить ничего не писать, и проверять символ @
боты будут старательно заполнять это поле емейлом и будут отловлены.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Фанат
Я думаю, что сделать поле, но скрыть средствами CSS. Бот его должен заполнить.

Не стоит недооценивать глубину человеческой тупизны, бывает что пишешь - не заполнять, а люди не видят...
 

Фанат

oncle terrible
Команда форума
Да и фиг бы с ними. зачем нам комменты от тупиц?
Боты-то, как раз, куда умнее. Хотя, конечно, вряд ли парсят css файл.
 

ККлава

Новичок
Если поле email делать скрытым, то в таблице создать еще строку, и поставитm значение NULL? Или ничего не ставить, оставить как есть, т.е. по умолчанию-Нет. Я так понимаю, если это поле будет скрытым от обычных пользователей, то они его не смогут заполнить, а бот сможет?
 

ККлава

Новичок
Значит, в таблицу вообще ничего не должно заноситься из поля email? А нужно будет просто проверять заполнено это поле или нет? И если это поле заполнено, то редирект, или как? Или я опять ничего не поняла ((((
Вы уж извините за идиотские вопросы.
 

Фанат

oncle terrible
Команда форума
если это поле заполнено, то лучше всего имитировать нормальное поведение скрипта, за исключением записи комментария в базу.
ошибку никакую выдавать не надо. пусть бот думает, что сделал свое черное дело
 

Фанат

oncle terrible
Команда форума
в таблицу вообще ничего не должно заноситься.
наща цель - если её кто забыл - не записывать в таблицу спам комментарий. целиком, а не только одно поле емейл
 

ККлава

Новичок
Ничего умнее не придумала, кроме как добавить строчку:
PHP:
isset($_POST['email']) && empty($_POST['email']) &&
 

KOLANICH

Новичок
проверьте регуляркой присутствие url
если присутствуют - запрос фф топку
 

Здыхлик

Kohaner
Команда форума
Пришла в голову мысль - а если поменять местами name у полей "имя" и "email"? Т.е. лейблы (то, что видит пользователь) оставить правильными, а HTML-ные атрибуты поменять. Бот парсит name, и пытается отправить мыло вместо имени. Никаких стилей, скрытых полей и т.д. не надо. Естественно, в скрипте придется учитывать такой нелогичный размен :)
 
Сверху