Файл: inc/antispam.php
Строк: 54
<?php
if (!$user)
return;
$guardMsg = null;
function guardRetranslit ($text)
{
$rus = array ('(', ')', '=', '+', '|','_','-',"'",'`',',',' ',"Ё","Ж","Ч","Ш","Щ","Э","Ю","Я","ё","ж","ч","ш","щ","э","ю","я","А","Б","В","Г","Д","Е","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ь","Ы","а","б","в","г","д","е","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ь","ы");
$eng = array ('.', '.', '.', '.', '.', '.', '.', '.','.','.','.',"JO","ZH","CH","SH","SCH","Je","Jy","Ja","jo","zh","ch","sh","sch","je","jy","ja","A","B","V","G","D","E","Z","I","J","K","L","M","N","O","P","R","S","T","U","F","H","C","","Y","a","b","v","g","d","e","z","i","j","k","l","m","n","o","p","r","s","t","u","f","h","c","","y");
return str_replace ($rus, $eng, $text);
}
/* Функция определения переменных с сообщениями */
function guardMsg ()
{
global $_POST, $guardMsgTrans, $guard, $guardMsg;
$msgs = func_get_args ();
foreach ($msgs AS $key => $value)
{
if (isset ($_POST[$value]))
{
$guardMsg = $guard->filtText ($_POST[$value]);
$guardMsgTrans = strtolower (guardRetranslit ($guard->filtText ($_POST[$value])));
break;
}
}
}
/* Ищем отправленные сообщения для поиска СПАМа */
guardMsg ('msg', 'message', 'mess');
if (isset ($guardMsgTrans))
{
/* АнтиФлуд */
if ($guardSets['antiflood']['msgs_interval'] && ($time - $user['last_msg']) < $guardSets['antiflood']['msgs_interval'])
$err = 'Не пишите сообщения так часто. Попробуйте отправить через '.($time - $user['last_msg']).' секунд';
else
/* Для антифлуда. Последнее сообщение */
mysql_query ("UPDATE `user` SET `last_msg` = '$time' WHERE `id` = '$user[id]' LIMIT 1");
if ($guardSets['antispam']['type'] == 'full')
{
if (preg_match ('/(.ru)|(.ua)|(.com)|(.kom)|(.biz)|(.info)|(.mobi)|(.su)|(.us)|(.tk)/i', $guardMsgTrans))
{
$guard->dossier ('antispam', null, $guardMsg);
$guard->notific ('antispam');
$guard->punish ('antispam');
}
}
elseif ($guardSets['antispam']['type'] == 'selective')
{
$spamLinks = mysql_query ("SELECT * FROM `guard_black_list`");
while ($link = mysql_fetch_assoc ($spamLinks))
{
if (!$link['domains'])
$link['domains'] = 'ru,ua,com,kom,biz,info,mobi,su,us,tk';
$link['domains'] = explode (',', str_replace (' ', '', $link['domains']));
if (preg_match ("/$link[name].(".implode (')|(', $link['domains']).")/i", $guardMsgTrans))
{
$guard->dossier ('antispam', null, $guardMsg);
$guard->notific ('antispam');
$guard->punish ('antispam');
break;
}
}
}
}
?>