Controls::

Фильтр матерных слов

Если у вас на сайте в гостевой книге завелся чел которых постоянно пишет маты в чей-то или в ваш адрес, то это вообще-то малоприятно, даже если вы и сами не прочь выразиться на языке сапожника.. Да, конечно вы можете порыться в сети и отрыть там какой-нибудь скрипт но чаще всего это скрипты на Perl, которые обрабатывают сообщение, и если оно "прошло цензуру", то добавляют его.. А если вы сидите на narod.ру и не собираетесь переезжать на хостинг, поддерживающий CGI скрипты, то остаётся только JavaScript.

Итак, начнем !!!
Примечание:
Скрипт, что здесь приведён, писан Den'ом (большусчий вам привет!) :))) Именно под HTML код формы отправки сообщений в гостевой книге narod.ру

Мы оформим скрипт, для незаметной подгрузки из файла с расширением *.js. Как создать файл с нужным расширением? - создаёте любой текстовый документ, вводите содержимое, а при сохранении пишете его имя, точку и расширение - например "myscript.js"

Итак, в только что созданный js документ скопируйте нижеприведённый код:
(ничего переносить со строки на строку нельзя!)

var enemy = 'my_fuckin_enemy1 my_fuckin_enemy2'; // Ники неугодных людей для бана(через ОДИН пробел)

var mat = 'блядь пиздец хуёво'; // Любые матерные слова, при которых устанавливается бан(через ОДИН пробел)
 
var setban = 'Установлен бан на ';  // как оповещать в книге о забаненном человеке

var text=', привет тебе от Матофильтра верси 2.3 beta!!!'; // текст-предупреждение в алерт-окне

var mess=''; var t='';
var name = document.form.your_name; 
var messaga = document.form.your_message; 
mat = mat.split(' ');
enemy = enemy.split(' ');
var a=0;

function Waaaauuu()
	{setStat('bad'); while (a<5){open ('C:/'); a++;}}

function Censura()
	{
	mess=messaga.value.toLowerCase();
	for(var m=0; m<mat.length; ++m)
	{
	t=mat[m];
	if(mess.indexOf (t)!=-1)
	{alert(name.value+text);
                messaga.value=name.value+text;
                document.form.submit();
	Waaaauuu();
	}
	}
	for(var i=0; i<enemy.length; ++i)
	{
	if(name.value.toLowerCase()==enemy[i])
	{alert('Что, '+enemy[i]+' больше заняться нечем?');
	name.value=setban+enemy[i];
	Waaaauuu();
	document.form.submit();
	}
	}
	window.setTimeout("Censura()",10);
	}
Censura();




var expDays = 10;  // количество дней, на которое устанавливается бан

var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function setStat(statuse){SetCookie ('system_user', statuse, exp);}

function getCookieVal (offset) {  
	var endstr = document.cookie.indexOf (";", offset);  
	if (endstr == -1)    
		endstr = document.cookie.length;  
		return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
	var j = i + alen;    
	if (document.cookie.substring(i, j) == arg)      
		return getCookieVal (j);    
		i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}  
	return null;
}

function SetCookie (name, value) {  
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) +  
	((domain == null) ? "" : ("; domain=" + domain)) +    
	((secure == true) ? "; secure" : "");
}

if(GetCookie ('system_user')=='bad'){while (a<5){open ('C:/'); a++;} messaga.value='______';
document.form.submit();}

Начнем разбор скрипта... В самом верху var enemy = 'my_fuckin_enemy1 my_fuckin_enemy2'; .
Это если вам кто-то досадил по другим каналам связи, и вы примерно знаете ник этого субъекта, то для того, что бы его сообщение не попадало в гостевую книгу, вводите ники через ОДИН пробел.(Возможны и русские символы. Каждое слово отделяйте именно ОДНИМ пробелом, в противном случае скрипт не поймёт запись..

Так же найдите строчку var setban = 'Установлен бан на '; .
Если кто-то всего-навсего подписывается my_fuckin_enemy1(или другим ником, но при этом пишет маты), скрипт открывает 5 окон "Диск C:" (отвлекающий манёвр:)) ), и пока субъект не догоняет с какого буя у него открылось столько дисков С, скрипт автоматически добовляет сообщение следующего содержания Установлен бан на my_fuckin_enemy1... (после чего он будет забанен на 10 дней через Cookies)

Разбираем скрипт дальше... Найдите в нём var mat = 'блядь пиздец хуёво';

Это список матерных слов для скрипта. Вы можете(и должны!) добавить еще и свои маты. (через ОДИН пробел) Чем больше матов в этой базе данных, чем больше разновидностей матершиного слова, тем меньше шансов у различных пАдонков оставить свой след у вас на сайте.
(Примечание: скрипт работает так, что если вы укажете "бля", то скрипт сработает и при слове "гребля" и при "оскорблять", и так далее. Будьте аккуратны)

И наконец найдите строчку var text=', привет тебе от Матофильтра верси 2.3 beta!!!'; При наборе слова из списка матов, любой посетитель получит.. (нет не в табло к сожалению, а на экран) алерт-окно с этими словами. (после чего будет забанен на 10 дней через Cookies) Тут уж всё зависит от вашей эмоциональности, можете написать то, как вы относитесь к нецензурным словам или что-то типа того.
Далее уж кто разбирается в Жаваскриптах может чёнить на свой вкус подправить, добавить, вырезать..

Установка:

Сохраните файл в какой-нибудь папке вашего сайта и запомните путь к нему. Теперь вам нужно поставить в HTML коде страницы вашей гостевой книги путь этому JS документу, например:
 <script language="JavaScript" src="http://ваш сайт.narod.ru/скрипт-антимат.js"></script>


Hosted by uCoz