Данный скрипт не позволяет пользователю отправлять больше одного сообщения за 30 секунд (тайм-аут можно изменить).
Удобная штука для форумов, но достает если форум активный.
Установка:
Все коды нужно ставить в общий вид форума.
Сначала подключим функции для работы с Cookies, поставив этот код в head:
Code
<?if($PAGE_ID$='threadpage')?>
<script type="text/javascript">
function getCookie(a){var b=document.cookie.match(new RegExp("(?:^|; )"+a.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return b?decodeURIComponent(b[1]):undefined}function setCookie(b,f,c){c=c||{};var i=c.expires;if(typeof i=="number"&&i){var h=new Date();h.setTime(h.getTime()+i*1000);i=c.expires=h}if(i&&i.toUTCString){c.expires=i.toUTCString()}f=encodeURIComponent(f);var a=b+"="+f;for(var e in c){a+="; "+e;var g=c[e];if(g!==true){a+="="+g}}document.cookie=a}function deleteCookie(a){setCookie(a,null,{expires:-1})};
</script>
<?endif?>
Затем — сам скрипт, после $ BODY$:
Code
<?if($PAGE_ID$='threadpage')?>
<script type="text/javascript">
/*
* uForum.AntiSpam by $USERNAME$ aka. exec
* 15:23 04.04.2010 ~ KRSK
*/
var bts = document.getElementById('frF16');
bts.onclick = 'setCookie("FrDs", "ddd", {expires: 30})';
if (!!getCookie("FrDs")) {
bts.disabled = true,
bts.value = 'Включена защита от спама',
bts.style.width = '200px',
btr = document.getElementById('frF17'),
er = document.createElement('div'),
er.align = 'center',
er.innerHTML = 'Минимальный интервал для отправки сообщений — 30 секунд! Подождите и обновите страницу.',
btr.parentNode.insertBefore(er, btr.nextSibling);
}
</script>
<?endif?>
автор $USERNAME$