Заставляем соглашаться с правилами сайта. Останавливаем спам-ботов.

+84
6.26K
Перед тем как зарегистрироваться, бывает необходимо получить согласие пользователя с правилами сайта.
Когда пользователь ставит галочку, что он согласен с правилами, это является как бы его электронной подписью, без которой кнопка "регистрация", в форме, не активна.
находим файл
\templates\ваш_шаблон\components\com_registration.tpl
либо, если вы не скопировали в папку своего шаблона, шаблоны компонентов, то ищем тут
\templates\_default_\components\com_registration.tpl

открываем файл и находим строку
  1.  
  2. <input name="save" type="submit" id="save" value="{$LANG.REGISTRATION}" />
  3.  
и заменяем её на код

  1.  
  2. <p><input type="checkbox" name="iagree" value="valeur" onClick="AuthorizeValidation(this.form)" /> Я ознакомился с <a title="правила" href="http://ссылка_на_правила" target="_blank">правилами</a> и согласен с ними </p>
  3. <input name="validation" type="submit" id="save" value="{$LANG.REGISTRATION}" disabled />
  4.  
далее открываем файл вашего шаблона, template.php и перед </head> вставляем следующий код

  1.  
  2. <script type="text/javascript">
  3. function AuthorizeValidation(regform) {
  4. if(regform.iagree.checked == true) {regform.validation.disabled = false }
  5. if(regform.iagree.checked == false) {regform.validation.disabled = true }
  6. }
  7. </script>
  8.  
Можно ссылку "Регистрация" направлять прямо на правила сайта, а из правил поставить ссылку на форму регистрации.
Ещё можно сделать как вариант, правила сайта в прокручивающемся окне, по всеми полями, которые нужно заполнить, для регистрации. Но первый вариант мне кажется лучше.

Кстати, возможно эта фишка немного затруднит автоматическую регистрацию спам-ботов
Можно таким образом заблокировать кнопку "отправить", при написании коментов и подписать типа "я не спам-бот" ))))
В сочитании с капчёй, это будет защита трудноватая для ботов)))

Иллюстрация

теперь делаем дополнительную защиту для коментариев
открываем
\templates\_default_\components\com_comments_add.tpl

находим код
  1.  
  2. <input class="cm_submit" type="submit" value="{$LANG.SEND}"/>
  3.  
и меняем его на
  1.  
  2. <p><input type="checkbox" name="iagree" value="valeur" onClick="AuthorizeValidation(this.form)" /> Я не спам-бот </p>
  3. <input name="validation" type="submit" id="save" value="{$LANG.SEND}" disabled />
  4.  
+1
alpik alpik 14 лет назад #
полезная штука, поставлю.
+1
14 лет назад #
Это тоже нужно добавить в 1.5.3
+1
14 лет назад #
+1 нужно очень
+1
14 лет назад #
Присоединяюсь.
0
14 лет назад #
Хотя, галочка "Я не спам-бот" не всегда сможет помочь
0
14 лет назад #
Ну хоть так 8)
+1
YuGiN YuGiN 14 лет назад #
а лучше чекбоксы, Да или Нет и по умолч. галочка на нет
0
14 лет назад #
Лучше добавить возможность одобрения регистрации админом, т.е. чтоб регистрация была возможна после одобрения администратором.
0
YuGiN YuGiN 14 лет назад #
А откуда админ узнает что это не бот? :)
0
Mafio Mafio 11 лет назад #
Все зависит от количества посещений..., если их будет хотя бы несколько сотен в день то админ должен круглыми сутками сидеть одобрять регистрацию и толку от этого будет мало.
+2
forlord forlord 14 лет назад #
зачем пихать в template.php можно это поставить в \templates\_default_\components\com_registration.tpl
через {literal}
0
TTT TTT 13 лет назад #
я тож так подумал)
вставил через {literal} в самый верх \templates\_default_\components\com_registration.tpl - все работает.
тока на ie7 не проверял. кто знает работает в нем?
+1
lezginka.ru lezginka.ru 13 лет назад #
+
0
Patriot Patriot 13 лет назад #
У меня почему то не получилось...Жму на "правилами" и браузер матюкаетсяsmileFirefox не может найти сервер xn--__-6kcbban2cljis2aoga4o.
Я ознакомился с правилами и согласен с ними

В чем причина подскажите плиз?
0
Patriot Patriot 13 лет назад #
Ответ не дождался, разобрался сам в чем была проблема. Спасибо автору! Фишка работает,полет нормальный!
0
Майкл Майкл 11 лет назад #
Видел у кого то
"Заставляем соглашаться с правилами сайта" в форме входа на плагине "Логинза"

Т.е. пока не поставишь галочку Логинзой не воспользуешься.
Поделитесь пжл как это сделано.
0
Mafio Mafio 11 лет назад #
От спама хорошо защищает ограничение на количество сообщений для новичков.
Например зарегестрированый может писать не более 3х сообщений в сутки.
Пример:
Новичек зарегился и написал сообщения
[02.03.2013 10:21:09] Новенький: Сообщение ххххх ххх1
[02.03.2013 12:21:12] Новенький: Сообщение ххххх ххх2
[02.03.2013 17:21:15] Новенький: Сообщение ххххх ххх3
(Лимит 3 сообщения в сутки)
тоесть следующее сообщение он может написать не ранее
[03.03.2013 10:21:09]
второе не ранее чем
[03.03.2013 12:21:12]
и третье сообщение не ранее чем
[03.03.2013 17:21:15]

После 10-15 сообщений ограничение снимается автоматически.
Как минимум бот не сможет спамить во всех темах, и не нужно будет следить за форумом круглосуточно.
(Видел подобную реализацию на одном из игровых форумов)
0
smm_grin smm_grin 11 лет назад #
а как это сделать бы? Кто подскажет?
0
Шадринец Шадринец 10 лет назад #
Тоже интересует для 1.10.3 есть такой вариант принятия правил?
0
Петр Петр 10 лет назад #
оно работает на 1.10.3
0
alegcool alegcool 10 лет назад #
Не фурычит(
0
Майкл Майкл 10 лет назад #
значит что-то неправильно сделали)
0
alegcool alegcool 10 лет назад #
)))
Понятное дело.
0
eoleg eoleg 10 лет назад #
В 1.10.3 с комментами не получается, подскажите пожалуйста как сделать.
0
scanread scanread 10 лет назад #
А вы в файл шаблона подключили скрипт ? Что описан в посте?
Спойлер
Может Вы просто решили не на регистрацию добавить, а только на комментарии. Только что проверил - работает на ура в 10.3
0
scanread scanread 10 лет назад #
Точнее вру. Чекбокс работает, отправка - нет...Надо поглядеть.
0
scanread scanread 10 лет назад #
Код PHP:
  1. <p><input type="checkbox" name="iagree" value="valeur" onClick="AuthorizeValidation(this.form)" /> Я не спам-бот </p>
  2. <input name="validation" type="button" id="submit_cmm" value="{$LANG.SEND}" disabled />
Вот так должно работать.
0
savin2002 savin2002 10 лет назад #
А как можно добавить "Я не спам-бот" в форму регистрации?
0
lolik lolik 10 лет назад #
А если спам боты научатся нажимать на чекбокс?
0
scanread scanread 10 лет назад #
Как по мне, то это уже второй вопрос. И если это будет - то придумает кто-то что-то еще. Лично мне этот метод нравится тем, что он минимальный, и много времени допилки не занимают.

И если бы и научились нажимать, то я думаю, что те, кто уже внедрял данное решение себе на сайт - отписались бы об этом. А пока увы, тишина.
0
Петр Петр 10 лет назад #
врядли боты будут замарачиваться на единицах кто этот хак поставит, сайтов на инстанте (и не только) достаточно чтобы спамить на других сайтах.
0
scanread scanread 10 лет назад #
Да, вряд ли. Вот сегодня только что поймал у себя бота. Этот антиспам прошел. За 1 минуту разместил постов 20 в блог. Пришлось такого активиста удалить, увы) Но факт записан. Надо карму на создание блога идти повышать в настройках, а то чувствую поналетают вскоре.
0
lncuk lncuk 9 лет назад #
А как сделать для форума Я не спам-бот?
+1
stealthdebuger stealthdebuger 9 лет назад #
Представленный здесь вариант, в качестве защиты от спама, вам не поможет. Причина довольно банальна... Здесь автор предлагает отключать сабмит, что влияет лишь на поведение формы в браузере, т.е. для "живого" человека. Если же кто-то будет скриптом отправлять POST-запрос на ваш сайт, то такой запрос будет успешно выполнен.
Для того, чтобы хотя бы попытаться ограничить потенциальный спам, необходимо какие-то проверки делать на стороне сервера, но уж никак не на стороне клиента.
0
Андрей Андрей 6 лет назад #
в чем проблема спамеру поставить галочку?

Еще от автора

Показываем ICQ статус, в профиле, с ссылкой на страничку юзера на icq.com
Показываем ICQ статус, в профиле пользователя с ссылкой на страничку пользователя на сайте icq.com заменяем файл http://сайт.
Вставка картинок  через BB коды, без закачки на сервер (сайт)
Сделал небольшую модификацию, прочитав этот пост, на форуме т.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.