Home / Posts / Web, PHP, HTML / Антиспам для комментариев, или как обойтись без капчи /


Антиспам для комментариев, или как обойтись без капчи



 Итак, речь пойдет о том, как сделать комментирование у себя на сайте максимально удобным и приятным для читателей. 

 Я считаю, что для того чтобы прокомментировать статью, читателю необходимо и достаточно всего лишь ввести свое имя и, собственно, комментарий. Для оповещения можно ввести почту, и адрес своего сайта для ссылки. А когда форма запрашивает, например, еще и какую-то тему, мою фамилию, телефон, город, каким лаком красила ногти моя бабушка, то это просто-напросто отталкивает.

 В качестве антиспама обычно применяется дедовский метод - капча, причем зачастую такая, что расшифровывать ее просто отпадает всякое желание. 

 

 антиспам для комментариев    антиспам для комментариев

 

 Применение таких вот проверочных средств - это, на мой взгляд, просто-напросто открытое неуважение как к самому читателю, так и к его личному времени. Иногда предлагают примерчик решить 2+2. Ну что, решил! Ма-ла-дец! А теперь, дружок, подожди премодерацию. А то ведь - кто знает, что ты там написал? Ну это вообще финиш. Просто насмешка какая-то, плевок. 

 Понятно, конечно, что все это делается против спама, но читатель все-таки, на мой взгляд, не должен помогать мне решать мои технические проблемы.

 Есть несколько методов борьбы со спамом, мне приглянулись два - первый с задержкой по времени, т.е. комментарий не публикуется, если время между заполнением формы и нажатием на кнопку слишком мало, а второй - проверяет поддержку javascript у клиента, и если ее нет (а у спам ботов ее нет, в отличие от большинства людей), то коммент отсеивается.

 Я все-таки использовал второй, поскольку там было меньше возни с кодом. Результат есть, поскольку до этого слали много спама на некоторые страницы, а теперь нет. Вот, на странице статистики видно, как спам-бот нудно и безуспешно долбится в форму.

 

 

 Все что нужно - немного изменить код кнопки формы.

 

<input type="submit" onclick="document.getElementById('check').value = 'stopSpam'" value="Add Comment" />

 

А в том php файле, куда форма отправляет данные - в начале добавить строчку

 

if ($_POST['check'] != 'stopSpam') exit('<center><strong>Ошибка</strong>: Защита от спама. Включите JavaScript.</center>');

 

 


,






Еще статьи по теме


Mysql. Нюанс работы с BLOB полями
Tinymce. Вставка примеров кода на страницу html
Tinymce. Вставка видео на сайт
Особенности моей CMS, или как я начинал писать сайт




Свежие статьи


Как сделать аппаратное сцепление
Педали для компьютера своими руками со сцеплением
Коробка передач для ПК своими руками
Светодиодный фонарик своими руками
Лабораторный блок питания на LM317 LM337 с предрегулятором



Главная



Комментарии (7)


Здравствуйте Евгений! Что-то не совсем понятно где этот код формы кнопки и где этот файл php :( я хоть и не новичок, но несмотря на это не понял, а что будет с новичками? Или речь идёт не о Вордпресс?


Игорь Черноморец, 2014-11-17 12:01:45

Да, здесь я не о Вордпресс пишу... ) В том случае, если человек сам поставит на сайт обычную форму он по-любому будет знать где ее код и исполняющий файл.


Евгений, 2014-11-19 22:21:13

Плохо, конечно, не в том, что капча есть, а в том, что она предлагается в обязательном порядке и сразу при попытке входа. Гораздо лучше, если капча будет требоваться после первого или второго неправильно введенного пароля.


Tredertinrof, 2015-07-15 12:18:17

Поэтому, уважаемые блоггеры, откажитесь от капчи в своих блогах раз и навсегда!


FontsDownloadFree, 2015-08-21 16:38:04

Здравствуйте, скажите а что мешает запрос отправить через правильный texarea? нужно просто пропарсить код выдернуть скрытый textarea и получит его имя или textarea найти по форме, ведь у вас на сайте одна форма где есть крытый textarea или я чего то не понял?


juliadiets.com, 2016-03-13 19:28:30

Таким методом отсекаете всех пользователей у кого отключен Яваскрипт. Их небольшой процент - но все же...


Art, 2016-06-05 20:56:30

Доброго времени суток, Евгений! У меня не работает данный код, javascript включен в браузере, а форма выдает ошибку. Можете подсказать, как исправить? 


Дмитрий, 2017-08-26 11:56:15









Поиск