Запрет ссылок в подписи для новичков (доработка напильником Anti Spam)

Автор crazyASD, 27 Октябрь 2012, 00:21:35

« назад - далее »

0 Пользователи и 1 Гость просматривают эту тему.

crazyASD

Есть вот такой замечательный мод:
http://custom.simplemachines.org/mods/index.php?mod=1095

Его код:
// Begin AntiSpam Links
function antiSpam($whoNoLink)
{
global $context;

if(preg_match('@(http://|https://|\[iurl=|\[url=|\[url\]|\[iurl\]|www\.|\[/url\]|\[/iurl\]|\[img\]|\[/img\])+@i',$_POST['message']))
$context['post_error'][$whoNoLink] = true;

}

function antiSpam2($whoNoLink)
{
$result = false;

if(preg_match('@(http://|https://|\[iurl=|\[url=|\[url\]|\[iurl\]|www\.|\[/url\]|\[/iurl\]|\[img\]|\[/img\])+@i',$_POST['message']))
$result = true;
if ($result === false)
$whoNoLink = null;
return  $whoNoLink;
}
// End AntiSpam Links
Его проверки:
// Begin AntiSpam Links
if (!allowedTo('add_links'))
if(!$user_info['is_guest'])
antiSpam("member_spam");
elseif($user_info['is_guest'])
antiSpam("guest_spam");
// End AntiSpam Links

и
// Begin AntiSpam Links
if(!allowedTo('add_links'))
if(!$posterIsGuest)
{
$result = antiSpam2("member_spam");
if(isset($result))
$post_errors[]=$result;
}
elseif ($posterIsGuest)
{
$result = antiSpam2("guest_spam");
if(isset($result))
$post_errors[]=$result;
}
// End AntiSpam Links


Я хочу внедрить эту проверку в поле подписи в профиле, для борьбы со спамерами.
Пробую вот так:
   
// Make sure the signature isn't too long.
if (isset($_POST['signature']))
{
require_once($sourcedir . '/Subs-Post.php');
//
if($context['user']['is_owner'] && !allowedTo('add_signature_links'))
antiSpam("member_spam");
if(isset($result))
$post_errors[]=$result;
//
if (!empty($modSettings['max_signatureLength']) && $func['strlen']($_POST['signature']) > $modSettings['max_signatureLength'])
$_POST['signature'] = addslashes($func['substr'](stripslashes($_POST['signature']), 0, $modSettings['max_signatureLength']));

if (strlen($_POST['signature']) > 65534)
$_POST['signature'] = addslashes($func['truncate'](stripslashes($_POST['signature']), 65534));

$_POST['signature'] = strtr($_POST['signature'], array('"' => '\\"', ''' => '\\'', ''' => '\\''));
preparsecode($_POST['signature']);
}

Но проверка не проходит, хоть и галочка, разрешающая линки в свойствах гостей снята. Весь код добавлен в Profile.php
Что я делаю не так?
Сон разума порождает монстров
Wordpress - рулит!  SMF 2.0.11